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
Pengenalan
- Apakah itu pemrograman GPU?
- Mengapa menggunakan pemrograman GPU?
- Apa saja tantangan dan kompromi dalam pemrograman GPU?
- Apa saja kerangka kerja dan alat-alat untuk pemrograman GPU?
- Memilih kerangka kerja dan alat yang tepat untuk aplikasi Anda
OpenCL
- Apakah itu OpenCL?
- Apa saja kelebihan dan kekurangan OpenCL?
- Menyiapkan lingkungan pengembangan untuk OpenCL
- Membuat program OpenCL dasar yang melaksanakan penjumlahan vektor
- Menggunakan API OpenCL untuk mengkueri informasi perangkat, mengalokasikan dan membebaskan memori perangkat, menyalin data antara host dan perangkat, meluncurkan kernel, dan menyinkronkan thread
- Menggunakan bahasa OpenCL C untuk menulis kernel yang dieksekusi pada perangkat dan memanipulasi data
- Menggunakan fungsi, variabel, dan library bawaan OpenCL untuk melaksanakan tugas dan operasi umum
- Menggunakan ruang memori OpenCL, seperti global, lokal, konstanta, dan pribadi, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi OpenCL untuk mengontrol work-items, work-groups, dan ND-ranges yang mendefinisikan paralelisme
- Membuat debug dan menguji program OpenCL menggunakan alat-alat seperti CodeXL
- Mengoptimalkan program OpenCL menggunakan teknik seperti coalescing, caching, prefetching, dan profiling
CUDA
- Apakah itu CUDA?
- Apa saja kelebihan dan kekurangan CUDA?
- Menyiapkan lingkungan pengembangan untuk CUDA
- Membuat program CUDA dasar yang melaksanakan penjumlahan vektor
- Menggunakan API CUDA untuk mengkueri informasi perangkat, mengalokasikan dan membebaskan memori perangkat, menyalin data antara host dan perangkat, meluncurkan kernel, dan menyinkronkan thread
- Menggunakan bahasa CUDA C/C++ untuk menulis kernel yang dieksekusi pada perangkat dan memanipulasi data
- Menggunakan fungsi, variabel, dan library bawaan CUDA untuk melaksanakan tugas dan operasi umum
- Menggunakan ruang memori CUDA, seperti global, shared, konstanta, dan lokal, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi CUDA untuk mengontrol thread, blocks, dan grids yang mendefinisikan paralelisme
- Membuat debug dan menguji program CUDA menggunakan alat-alat seperti CUDA-GDB, CUDA-MEMCHECK, dan NVIDIA Nsight
- Mengoptimalkan program CUDA menggunakan teknik seperti coalescing, caching, prefetching, dan profiling
ROCm
- Apakah itu ROCm?
- Apa saja kelebihan dan kekurangan ROCm?
- Menyiapkan lingkungan pengembangan untuk ROCm
- Membuat program ROCm dasar yang melaksanakan penjumlahan vektor
- Menggunakan API ROCm untuk mengkueri informasi perangkat, mengalokasikan dan membebaskan memori perangkat, menyalin data antara host dan perangkat, meluncurkan kernel, dan menyinkronkan thread
- Menggunakan bahasa ROCm C/C++ untuk menulis kernel yang dieksekusi pada perangkat dan memanipulasi data
- Menggunakan fungsi, variabel, dan library bawaan ROCm untuk melaksanakan tugas dan operasi umum
- Menggunakan ruang memori ROCm, seperti global, lokal, konstanta, dan pribadi, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi ROCm untuk mengontrol thread, blocks, dan grids yang mendefinisikan paralelisme
- Membuat debug dan menguji program ROCm menggunakan alat-alat seperti ROCm Debugger dan ROCm Profiler
- Mengoptimalkan program ROCm menggunakan teknik seperti coalescing, caching, prefetching, dan profiling
HIP
- Apakah itu HIP?
- Apa saja kelebihan dan kekurangan HIP?
- Menyiapkan lingkungan pengembangan untuk HIP
- Membuat program HIP dasar yang melaksanakan penjumlahan vektor
- Menggunakan bahasa HIP untuk menulis kernel yang dieksekusi pada perangkat dan memanipulasi data
- Menggunakan fungsi, variabel, dan library bawaan HIP untuk melaksanakan tugas dan operasi umum
- Menggunakan ruang memori HIP, seperti global, shared, konstanta, dan lokal, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi HIP untuk mengontrol thread, blocks, dan grids yang mendefinisikan paralelisme
- Membuat debug dan menguji program HIP menggunakan alat-alat seperti ROCm Debugger dan ROCm Profiler
- Mengoptimalkan program HIP menggunakan teknik seperti coalescing, caching, prefetching, dan profiling
Perbandingan
- Membandingkan fitur, kinerja, dan kompatibilitas OpenCL, CUDA, ROCm, dan HIP
- Menevaluasi program GPU menggunakan benchmark dan metrik
- Belajar praktik terbaik dan tips untuk pemrograman GPU
- Meng eksplorasi tren dan tantangan masa kini serta masa depan dalam pemrograman GPU
Ringkasan dan Langkah Selanjutnya
Persyaratan
- Pengertian bahasa C/C++ dan konsep pemrograman paralel
- Pengetahuan dasar tentang arsitektur komputer dan hierarki memori
- Pengalaman dengan alat baris perintah dan editor kode
Publik Target
- Pengembang yang ingin mempelajari dasar pemrograman GPU dan kerangka kerja serta alat utama untuk mengembangkan aplikasi GPU
- Pengembang yang ingin menulis kode yang dapat dipindah dan skalabel yang dapat berjalan di berbagai platform dan perangkat
- Programmer yang ingin mempelajari manfaat dan tantangan pemrograman dan optimasi GPU
21 Jam