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 pemrograman GPU?
- Mengapa perlu menggunakan pemrograman GPU?
- Apa saja tantangan dan kompromi dalam penerapan pemrograman GPU?
- Kerangka kerja apa saja yang dapat digunakan untuk pemrograman GPU?
- Bagaimana cara memilih kerangka kerja yang tepat sesuai aplikasi yang akan dibuat?
OpenCL
- Apa itu OpenCL?
- Apa saja keunggulan dan keterbatasan dari OpenCL?
- Mengatur lingkungan pengembangan untuk memulai pemrograman dengan OpenCL
- Membuat program OpenCL dasar yang melakukan operasi penjumlahan vektor
- Memanfaatkan API OpenCL untuk menanyakan informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data antara host dan perangkat, menjalankan kernel, serta menyelaraskan eksekusi thread
- Menggunakan bahasa pemrograman OpenCL C untuk menulis kernel yang dieksekusi pada GPU sekaligus mengolah data di sana
- Memanfaatkan fungsi, variabel, dan pustaka bawaan OpenCL guna melaksanakan operasi komputasi umum
- Menggunakan ruang memori dalam OpenCL seperti global, local, constant, dan private untuk mengoptimalkan alur data serta akses terhadap memori perangkat
- Memanfaatkan model eksekusi OpenCL untuk mengatur pengelompokkan work-items, work-groups, dan ND-ranges yang menentukan mekanisme paralelisme pada GPU
- Melakukan debugging serta pengujian program OpenCL menggunakan alat seperti CodeXL
- Mengoptimalkan kinerja program OpenCL melalui teknik seperti coalescing, caching, prefetching, dan analisis profil eksekusi
CUDA
- Apa itu CUDA?
- Apa saja keunggulan dan keterbatasan dari CUDA?
- Mengatur lingkungan pengembangan agar dapat memulai pemrograman dengan CUDA
- Membuat program CUDA dasar yang melakukan operasi penjumlahan vektor
- Memanfaatkan API CUDA untuk menanyakan informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data antara host dan perangkat, menjalankan kernel, serta menyelaraskan eksekusi thread
- Menggunakan bahasa pemrograman CUDA C/C++ untuk menulis kernel yang dieksekusi pada GPU sekaligus mengolah data di sana
- Memanfaatkan fungsi, variabel, dan pustaka bawaan CUDA guna melaksanakan operasi komputasi umum
- Menggunakan ruang memori dalam CUDA seperti global, shared, constant, dan local untuk mengoptimalkan alur data serta akses terhadap memori perangkat
- Memanfaatkan model eksekusi CUDA untuk mengatur pengelompokkan thread, blok, dan grid yang menjadi dasar mekanisme paralelisme pada GPU
- Melakukan debugging serta pengujian program CUDA menggunakan alat seperti CUDA-GDB, CUDA-MEMCHECK, dan NVIDIA Nsight
- Mengoptimalkan kinerja program CUDA melalui teknik seperti coalescing, caching, prefetching, dan analisis profil eksekusi
ROCm
- Apa itu ROCm?
- Apa saja keunggulan dan keterbatasan dari ROCm?
- Mengatur lingkungan pengembangan agar dapat memulai pemrograman dengan ROCm
- Membuat program ROCm dasar yang melakukan operasi penjumlahan vektor
- Memanfaatkan API ROCm untuk menanyakan informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data antara host dan perangkat, menjalankan kernel, serta menyelaraskan eksekusi thread
- Menggunakan bahasa pemrograman ROCm C/C++ untuk menulis kernel yang dieksekusi pada GPU sekaligus mengolah data di sana
- Memanfaatkan fungsi, variabel, dan pustaka bawaan ROCm guna melaksanakan operasi komputasi umum
- Menggunakan ruang memori dalam ROCm seperti global, local, constant, dan private untuk mengoptimalkan alur data serta akses terhadap memori perangkat
- Memanfaatkan model eksekusi ROCm untuk mengatur pengelompokkan thread, blok, dan grid yang menjadi dasar mekanisme paralelisme pada GPU
- Melakukan debugging serta pengujian program ROCm menggunakan alat seperti ROCm Debugger dan ROCm Profiler
- Mengoptimalkan kinerja program ROCm melalui teknik seperti coalescing, caching, prefetching, dan analisis profil eksekusi
Perbandingan Antar Kerangka Kerja
- Membandingkan fitur, kinerja, dan tingkat kompatibilitas dari OpenCL, CUDA, serta ROCm
- Mengevaluasi kualitas program GPU dengan menggunakan metrik dan standar pengujian yang umum digunakan
- Memahami praktik terbaik serta tips dalam pemrograman GPU
- Mengenal tren dan tantangan mutakhir dalam perkembangan teknologi pemrograman GPU di masa kini maupun mendatang
Penutup dan Langkah Selanjutnya
Persyaratan
- Pemahaman mendasar mengenai bahasa pemrograman C/C++ serta konsep-konsep dasar pemrograman paralel
- Pengetahuan dasar terkait arsitektur komputer dan hierarki memori
- Pengalaman menggunakan alat perintah baris serta editor kode program
Target Peserta
- Para pengembang yang ingin mempelajari cara menggunakan berbagai kerangka kerja dalam pemrograman GPU serta membandingkan fitur, kinerja, dan tingkat kompatibilitasnya
- Para pengembang yang menginginkan kode program yang portabel serta dapat berjalan di berbagai platform dan perangkat
- Para programmer yang ingin memahami secara mendalam kompromi dan tantangan dalam pemrograman GPU maupun optimalisasinya
28 Jam