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 menggunakan pemrograman GPU?
- Apa saja tantangan dan pertimbangan dalam penggunaannya?
- Kerangka kerja serta alat bantu apa saja yang tersedia untuk pemrograman GPU?
- Cara memilih kerangka kerja dan alat bantu yang sesuai dengan aplikasi Anda.
OpenCL
- Apa itu OpenCL?
- Keunggulan serta keterbatasan OpenCL adalah apa saja?
- Cara menyiapkan lingkungan pengembangan OpenCL.
- Menulis program OpenCL sederhana untuk melakukan penjumlahan vektor.
- Menggunakan API OpenCL guna mengakses informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data, menjalankan kernel, dan menyinkronkan thread.
- Memanfaatkan bahasa pemrograman OpenCL C untuk menulis kernel yang akan dijalankan di perangkat serta memanipulasi data.
- Menggunakan fungsi bawaan, variabel, serta perpustakaan OpenCL dalam penyelesaian tugas umum.
- Menerapkan ruang memori global, lokal, konstan, dan privat untuk mengoptimalkan transfer dan akses data.
- Mengatur model eksekusi menggunakan work-items, work-groups, serta ND-ranges demi kontrol paralelisme yang efektif.
- Memeriksa dan menguji program OpenCL dengan alat seperti CodeXL.
- Mengoptimalkan program OpenCL melalui teknik coalescing, caching, prefetching, dan profiling.
CUDA
- Apa itu CUDA?
- Keunggulan serta keterbatasan CUDA adalah apa saja?
- Cara menyiapkan lingkungan pengembangan CUDA.
- Menulis program CUDA dasar untuk melakukan penjumlahan vektor.
- Menggunakan API CUDA dalam mengakses informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data, menjalankan kernel, dan menyinkronkan thread.
- Memanfaatkan bahasa pemrograman C/C++ khusus CUDA untuk menulis kernel serta manipulasi data di perangkat.
- Menggunakan fungsi bawaan, variabel, dan perpustakaan CUDA guna menyelesaikan tugas-tugas rutin secara efisien.
- Menerapkan ruang memori global, shared, konstan, serta lokal untuk mengoptimalkan penggunaan memori.
- Mengatur model eksekusi melalui thread, blocks, dan grids demi kontrol paralelisme yang maksimal.
- Memeriksa dan menguji program CUDA menggunakan alat seperti CUDA-GDB, CUDA-MEMCHECK, serta NVIDIA Nsight.
- Mengoptimalkan kinerja program CUDA melalui teknik coalescing, caching, prefetching, dan profiling.
ROCm
- Apa itu ROCm?
- Keunggulan serta keterbatasan ROCm adalah apa saja?
- Cara menyiapkan lingkungan pengembangan ROCm.
- Menulis program ROCm sederhana untuk melakukan penjumlahan vektor.
- Menggunakan API ROCm guna mengakses informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data, menjalankan kernel, dan menyinkronkan thread.
- Memanfaatkan bahasa pemrograman C/C++ khusus ROCm untuk menulis kernel serta manipulasi data di perangkat.
- Menggunakan fungsi bawaan, variabel, serta perpustakaan ROCm dalam penyelesaian tugas-tugas rutin.
- Menerapkan ruang memori global, lokal, konstan, dan privat untuk mengoptimalkan penggunaan memori serta transfer data.
- Mengatur model eksekusi melalui thread, blocks, dan grids guna kontrol paralelisme yang efektif.
- Memeriksa dan menguji program ROCm dengan alat seperti ROCm Debugger dan ROCm Profiler.
- Mengoptimalkan kinerja program ROCm menggunakan teknik coalescing, caching, prefetching, dan profiling.
HIP
- Apa itu HIP?
- Keunggulan serta keterbatasan HIP adalah apa saja?
- Cara menyiapkan lingkungan pengembangan HIP.
- Menulis program HIP sederhana untuk melakukan penjumlahan vektor.
- Memanfaatkan bahasa pemrograman HIP dalam penulisan kernel serta manipulasi data di perangkat.
- Menggunakan fungsi bawaan, variabel, serta perpustakaan HIP untuk menyelesaikan tugas-tugas rutin secara efisien.
- Menerapkan ruang memori global, shared, konstan, serta lokal guna optimalisasi penggunaan memori dan transfer data.
- Mengatur model eksekusi melalui thread, blocks, dan grids demi kontrol paralelisme yang maksimal.
- Memeriksa dan menguji program HIP dengan alat seperti ROCm Debugger dan ROCm Profiler.
- Mengoptimalkan kinerja program HIP menggunakan teknik coalescing, caching, prefetching, dan profiling.
Perbandingan
- Membandingkan fitur, performa, serta kompatibilitas antara OpenCL, CUDA, ROCm, dan HIP.
- Mengevaluasi program GPU berdasarkan tolok ukur dan metrik kinerja tertentu.
- Mempelajari praktik terbaik dan kiat-kiat dalam pemrograman GPU.
- Menjelajahi tren saat ini serta tantangan di masa depan dalam pengembangan aplikasi berbasis GPU.
Penutup dan Langkah Selanjutnya
Persyaratan
- Pemahaman mengenai bahasa C/C++ serta konsep pemrograman paralel
- Pengetahuan dasar tentang arsitektur komputer dan hirarki memori
- Pengalaman menggunakan alat baris perintah maupun editor kode
Target Peserta
- Pengembang yang ingin mengetahui dasar-dasar pemrograman GPU serta kerangka kerja utama dalam pengembangan aplikasi GPU.
- Pengembang yang menginginkan penulisan kode yang portabel dan dapat dijalankan pada berbagai platform serta perangkat.
- Programmer yang ingin memahami manfaat serta tantangan dalam pemrograman dan pengoptimalan GPU.
21 Jam