Terima kasih telah mengirimkan pertanyaan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Terima kasih telah mengirimkan pemesanan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Kerangka Materi
Pendahuluan
- Apa itu ROCm?
- Apa itu HIP?
- ROCm vs CUDA vs OpenCL: perbandingan utama.
- Gambaran umum mengenai fitur dan arsitektur ROCm serta HIP.
- Penyiapan Lingkungan Pengembangan
Pengenalan Dasar
- Membuat proyek ROCm baru menggunakan Visual Studio Code.
- Mempelajari struktur dan isi berkas-berkas dalam proyek tersebut.
- Mengkompilasi serta menjalankan program untuk pertama kalinya.
- Menampilkan output dengan bantuan fungsi printf dan fprintf.
API ROCm
- Fungsi utama API ROCm dalam program host.
- Menggunakan API ROCm untuk menanyakan spesifikasi perangkat.
- Alokasi dan pelepasan memori perangkat via API ROCm.
- Penerimaan/penyimpanan data antar host dan device dengan bantuan API ini.
- Peluncuran kernel serta pengaturan sinkronisasi thread melalui API ROCm.
- Penanganan kesalahan/ekecuali dalam program menggunakan API ROCm.
Bahasa HIP
- Fungsi utama bahasa HIP dalam implementasi kode device.
- Membuat kernel dengan bahasa HIP yang mampu memproses data secara efisien di GPU.
- Penggunaan tipe data, operator, serta ekspresi pada HIP.
- Menerapkan fungsi bawaan, variabel, dan pustaka HIP guna menyelesaikan tugas-tugas umum.
Model Memori ROCm dan HIP
- Perbedaan mendasar antara model memori host dan device.
- Pemanfaatan area penyimpanan seperti global, shared, constant, local dalam kode program.
- Implementasi objek-objek memori termasuk pointer, array, texture, maupun surface.
- Penentuan mode akses seperti read-only, write-only, atau read-write terhadap memori.
- Mengerti prinsip konsistensi data dan mekanisme sinkronisasi dalam penggunaan memori.
Model Eksekusi ROCm dan HIP
- Pemahaman perbedaan antara eksekusi di host maupun device.
- Pengaturan jumlah thread, block, grid untuk mewujudkan paralelisasi yang tepat.
- Memanggil fungsi-fungsi terkait thread seperti hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x.
- Penerapan perintah sinkronisasi blok melalui __syncthreads atau __threadfence_block.
- Mengelola konfigurasi grid via hipGridDim_x, mekanisme koordinasi antar blok, serta cooperative groups.
Debugging
- Pendeteksian kesalahan umum dan hambatan kinerja pada program ROCm/HIP.
- Menggunakan debugger Visual Studio Code guna menginspeksi variabel, breakpoint, serta tumpukan pemanggilan fungsi.
- Memanfaatkan ROCm Debugger sebagai alat utama untuk memecahkan masalah kode pada GPU AMD.
- Mengukur performa program dengan bantuan ROCm Profiler secara mendalam.
Optimisasi
- Faktor-faktor utama yang berpengaruh terhadap kecepatan eksekusi kode ROCm/HIP.
- Penerapan teknik coalescing dalam pengelolaan data untuk meningkatkan throughput memori.
- Meminimalisir latensi akses memori lewat strategi caching dan prefetching yang tepat.
- Optimalisasi pemanfaatan shared memory maupun local memory demi efisiensi penggunaan bandwidth.
- Menggunakan alat profilisasi guna memperbaiki waktu eksekusi serta memaksimalkan penggunaan sumber daya komputasi.
Penutup dan Langkah Selanjutnya
Persyaratan
- Pemahaman dasar terhadap bahasa C/C++ serta konsep pemrograman paralel
- Pengetahuan ringkas mengenai arsitektur komputer dan hirarki memori
- Pengalaman menggunakan alat baris perintah serta editor kode
Target Peserta
- Developer yang ingin menguasai penggunaan ROCm dan HIP dalam pemrograman GPU AMD serta memanfaatkan potensi paralelisasinya.
- Pengembang yang bermaksud menciptakan kode berkinerja tinggi dan dapat dijalankan secara efektif pada ragam perangkat AMD.
- Programmer yang ingin mendalami aspek teknis dalam pemrograman GPU serta cara meningkatkan kecepatan eksekusi program mereka.
28 Jam