Kerangka Materi

Pendahuluan

  • Apa itu ROCm?
  • Apa itu HIP?
  • ROCm vs CUDA vs OpenCL
  • Overview of ROCm and HIP features and architecture
  • Pengaturan Lingkungan Pengembangan

Mulai

  • Membuat proyek ROCm baru menggunakan Visual Studio Code
  • Menjelajahi struktur proyek dan file
  • Mengompilasi dan menjalankan program
  • Menampilkan output menggunakan printf dan fprintf

API ROCm

  • Memahami peran API ROCm dalam program host
  • Menggunakan API ROCm untuk meminta informasi dan kemampuan perangkat
  • Menggunakan API ROCm untuk mengalokasikan dan membebaskan memori perangkat
  • Menggunakan API ROCm untuk menyalin data antara host dan perangkat
  • Menggunakan API ROCm untuk meluncurkan kernel dan mengsinkronkan thread
  • Menggunakan API ROCm untuk menangani kesalahan dan pengecualian

Bahasa HIP

  • Memahami peran bahasa HIP dalam program perangkat
  • Menggunakan bahasa HIP untuk menulis kernel yang dieksekusi pada GPU dan memanipulasi data
  • Menggunakan tipe data HIP, kualifikasi, operator, dan ekspresi
  • Menggunakan fungsi bawaan HIP, variabel, dan perpustakaan untuk melaksanakan tugas dan operasi yang umum

Model Memori ROCm dan HIP

  • Memahami perbedaan antara model memori host dan perangkat
  • Menggunakan ruang memori ROCm dan HIP, seperti global, shared, constant, dan local
  • Menggunakan objek memori ROCm dan HIP, seperti pointer, array, textures, dan surfaces
  • Menggunakan mode akses memori ROCm dan HIP, seperti read-only, write-only, read-write, dll.
  • Menggunakan model konsistensi memori ROCm dan HIP dan mekanisme sinkronisasi

Model Eksekusi ROCm dan HIP

  • Memahami perbedaan antara model eksekusi host dan perangkat
  • Menggunakan ROCm dan HIP threads, blocks, dan grids untuk mendefinisikan paralelisme
  • Menggunakan fungsi thread ROCm dan HIP, seperti hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, dll.
  • Menggunakan fungsi block ROCm dan HIP, seperti __syncthreads, __threadfence_block, dll.
  • Menggunakan fungsi grid ROCm dan HIP, seperti hipGridDim_x, hipGridSync, cooperative groups, dll.

Debugging

  • Memahami kesalahan dan bug umum dalam program ROCm dan HIP
  • Menggunakan debugger Visual Studio Code untuk memeriksa variabel, breakpoint, call stack, dll.
  • Menggunakan ROCm Debugger untuk mengdebug program ROCm dan HIP pada perangkat AMD
  • Menggunakan ROCm Profiler untuk menganalisis program ROCm dan HIP pada perangkat AMD

Optimisasi

  • Memahami faktor-faktor yang mempengaruhi kinerja program ROCm dan HIP
  • Menggunakan teknik ROCm dan HIP coalescing untuk meningkatkan throughput memori
  • Menggunakan teknik caching dan prefetching ROCm dan HIP untuk mengurangi latensi memori
  • Menggunakan teknik shared memory dan local memory ROCm dan HIP untuk mengoptimasi akses dan bandwidth memori
  • Menggunakan profil dan alat profil ROCm dan HIP untuk mengukur dan meningkatkan waktu eksekusi dan penggunaan sumber daya

Ringkasan dan Langkah Selanjutnya

Persyaratan

  • Pengertian tentang bahasa C/C++ dan konsep pemrograman parallel
  • Pengetahuan dasar tentang arsitektur komputer dan hierarki memori
  • Pengalaman dengan alat baris perintah dan editor kode

Penonton

  • Pengembang yang ingin mempelajari cara menggunakan ROCm dan HIP untuk memprogram AMD GPU dan mengoptimalkan paralelisme
  • Pengembang yang ingin menulis kode kinerja tinggi dan skalabel yang dapat berjalan di berbagai perangkat AMD
  • Programmer yang ingin menjelajahi aspek rendah level pemrograman GPU dan mengoptimalkan kinerja kode
 28 Jam

Jumlah Peserta


Biaya per Peserta

Kursus Mendatang

Kategori Terkait