Kembali ke Kursus
AI022 Professional

Panduan Pemrograman AMD HIP

Panduan teknis komprehensif untuk Heterogeneous-compute Interface for Portability (HIP). Menyediakan C++ Runtime API dan bahasa kernel yang memungkinkan pengembang membuat aplikasi portabel untuk GPU AMD dan NVIDIA dari satu kode sumber. Panduan ini mencakup instalasi, konfigurasi lingkungan, model pemrograman, alokasi memori, serta alat untuk mengonversi kode CUDA ke HIP.

4.9
12.0h
841 siswa
0 suka
Kecerdasan Buatan
Mulai Belajar

Gambaran Umum Kursus

📚 Ringkasan Konten

Panduan teknis komprehensif untuk Heterogeneous-compute Interface for Portability (HIP). Panduan ini menyediakan API Runtime C++ dan bahasa kernel yang memungkinkan pengembang membuat aplikasi portabel untuk GPU AMD dan NVIDIA dari satu kode sumber. Panduan ini mencakup instalasi, konfigurasi lingkungan, model pemrograman, alokasi memori, serta alat untuk menyesuaikan kode CUDA ke HIP.

Kelola pemrograman GPU portabel: Satu kode sumber untuk platform AMD dan NVIDIA.

Penulis: Advanced Micro Devices, Inc. (AMD)

Ucapan Terima Kasih: AMD, logo AMD Arrow, AMD Instinct, Radeon, ROCm, dan kombinasi-kombinasinya adalah merek dagang milik Advanced Micro Devices, Inc. Linux adalah merek dagang terdaftar dari Linus Torvalds. PCIe adalah merek dagang terdaftar dari PCI-SIG Corporation.

🎯 Tujuan Pembelajaran

  1. Menjelaskan fitur utama dan nilai tambah dari kerangka kerja HIP.
  2. Menunjukkan cara mengakses dan memeriksa lingkungan HIP menggunakan alat sistem.
  3. Menjelaskan hubungan arsitektural antara portabilitas HIP dan teknologi kompilatornya.
  4. Melaksanakan instalasi khusus platform untuk lingkungan NVIDIA dan AMD.
  5. Mengkoordinasikan proses pembuatan multi-repositori untuk mengompilasi HIP dari kode sumber.
  6. Memvalidasi instalasi yang berhasil menggunakan alat konfigurasi sistem dan verifikasi.
  7. Mengonfigurasi dan mengelola memori GPU menggunakan alokasi HIP, kontrol koherensi, dan visibilitas memori host zero-copy.
  8. Mengembangkan kernel berkinerja tinggi menggunakan kualifikasi fungsi/variabel khusus HIP, tipe vektor, dan primitif sinkronisasi.
  9. Menerapkan algoritma paralel lanjutan menggunakan fungsi shuffle warp, vote, ballot, dan kelompok kooperatif.
  10. Mengotomatisasi konversi kode CUDA ke HIP menggunakan alat HIPIFY dan mengelola konversi proyek secara langsung.

🔹 Pelajaran 1: Pengantar Portabilitas dan Arsitektur HIP

Ringkasan: Pelajaran ini membahas aspek dasar dari Heterogeneous-compute Interface for Portability (HIP). Fokusnya pada fitur inti yang mendefinisikan HIP, metode utama untuk mengakses lingkungan HIP, serta teknologi kompilator di bawahnya yang memungkinkan portabilitas mulus di berbagai arsitektur GPU (AMD dan NVIDIA).

Hasil Pembelajaran:

  • Menjelaskan fitur utama dan nilai tambah dari kerangka kerja HIP.
  • Menunjukkan cara mengakses dan memeriksa lingkungan HIP menggunakan alat sistem.
  • Menjelaskan hubungan arsitektural antara portabilitas HIP dan teknologi kompilatornya.

🔹 Pelajaran 2: Instalasi dan Verifikasi Lingkungan HIP

Ringkasan: Pelajaran ini memberikan panduan teknis untuk mengatur lingkungan HIP (Heterogeneous-compute Interface for Portability) di berbagai platform perangkat keras. Ini mencakup langkah instalasi khusus untuk backend AMD dan NVIDIA, proses kompleks pembuatan runtime HIP dari repositori kode sumber, serta prosedur verifikasi akhir untuk memastikan kesiapan sistem dalam pengembangan GPU.

Hasil Pembelajaran:

  • Melaksanakan instalasi khusus platform untuk lingkungan NVIDIA dan AMD.
  • Mengkoordinasikan proses pembuatan multi-repositori untuk mengompilasi HIP dari kode sumber.
  • Memvalidasi instalasi yang berhasil menggunakan alat konfigurasi sistem dan verifikasi.

🔹 Pelajaran 3: Model Pemrograman HIP dan Penjelasan Mendalam API

Ringkasan: Pelajaran ini memberikan eksplorasi komprehensif terhadap model pemrograman Heterogeneous-Compute Interface for Portability (HIP). Ini mencakup API dasar untuk manajemen memori dan eksekusi kernel, nuansa bahasa kernel HIP (termasuk kualifikasi dan variabel bawaan), serta fitur lanjutan seperti primitif tingkat warp, grup kooperatif, dan intrinsik matematika khusus.

Hasil Pembelajaran:

  • Mengonfigurasi dan mengelola memori GPU menggunakan alokasi HIP, kontrol koherensi, dan visibilitas memori host zero-copy.
  • Mengembangkan kernel berkinerja tinggi menggunakan kualifikasi fungsi/variabel khusus HIP, tipe vektor, dan primitif sinkronisasi.
  • Menerapkan algoritma paralel lanjutan menggunakan fungsi shuffle warp, vote, ballot, dan fungsi kelompok kooperatif.

🔹 Pelajaran 4: Migrasi dan Porting Aplikasi CUDA ke HIP

Ringkasan: Pelajaran ini membahas proses sistematis migrasi kode sumber CUDA ke kerangka kerja HIP (Heterogeneous-Compute Interface for Portability). Ini menjelaskan penggunaan alat otomasi seperti HIPIFY, strategi konversi proyek, identifikasi perilaku kompiler khusus platform (HIP-Clang vs. NVIDIA), serta pengelolaan perbedaan arsitektur.

Hasil Pembelajaran:

  • Mengotomatisasi konversi kode CUDA ke HIP menggunakan alat HIPIFY dan mengelola konversi proyek secara langsung.
  • Membedakan antara platform tujuan AMD dan NVIDIA serta kompiler menggunakan makro pra-pemrosesan dan pemindaian lingkungan.
  • Menerapkan pemeriksaan fitur arsitektur (HIP_ARCH) dan menerapkan solusi sementara untuk fungsi CUDA khusus seperti memcpyToSymbol.