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
Pengantar
- Apa itu pemrograman GPU?
- Mengapa menggunakan pemrograman GPU?
- Apa tantangan dan trade-off dari pemrograman GPU?
- Apa framework untuk pemrograman GPU?
- Memilih framework yang tepat untuk aplikasi Anda
OpenCL
- Apa itu OpenCL?
- Apa kelebihan dan kekurangan OpenCL?
- Mengatur lingkungan pengembangan untuk OpenCL
- Membuat program OpenCL dasar yang melakukan penjumlahan vektor
- Menggunakan API OpenCL untuk menanyakan 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 dijalankan pada perangkat dan memanipulasi data
- Menggunakan fungsi bawaan, variabel, dan pustaka OpenCL untuk melakukan tugas dan operasi umum
- Menggunakan ruang memori OpenCL, seperti global, lokal, konstanta, dan privat, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi OpenCL untuk mengontrol work-items, work-groups, dan ND-ranges yang mendefinisikan paralelisme
- Mendebug dan menguji program OpenCL menggunakan alat seperti CodeXL
- Mengoptimalkan program OpenCL menggunakan teknik seperti penggabungan, caching, prefetching, dan profiling
CUDA
- Apa itu CUDA?
- Apa kelebihan dan kekurangan CUDA?
- Mengatur lingkungan pengembangan untuk CUDA
- Membuat program CUDA dasar yang melakukan penjumlahan vektor
- Menggunakan API CUDA untuk menanyakan 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 dijalankan pada perangkat dan memanipulasi data
- Menggunakan fungsi bawaan, variabel, dan pustaka CUDA untuk melakukan tugas dan operasi umum
- Menggunakan ruang memori CUDA, seperti global, shared, constant, dan local, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi CUDA untuk mengontrol thread, blok, dan grid yang mendefinisikan paralelisme
- Mendebug dan menguji program CUDA menggunakan alat seperti CUDA-GDB, CUDA-MEMCHECK, dan NVIDIA Nsight
- Mengoptimalkan program CUDA menggunakan teknik seperti penggabungan, caching, prefetching, dan profiling
ROCm
- Apa itu ROCm?
- Apa kelebihan dan kekurangan ROCm?
- Mengatur lingkungan pengembangan untuk ROCm
- Membuat program ROCm dasar yang melakukan penjumlahan vektor
- Menggunakan API ROCm untuk menanyakan 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 dijalankan pada perangkat dan memanipulasi data
- Menggunakan fungsi bawaan, variabel, dan pustaka ROCm untuk melakukan tugas dan operasi umum
- Menggunakan ruang memori ROCm, seperti global, lokal, konstanta, dan privat, untuk mengoptimalkan transfer data dan akses memori
- Menggunakan model eksekusi ROCm untuk mengontrol thread, blok, dan grid yang mendefinisikan paralelisme
- Mendebug dan menguji program ROCm menggunakan alat seperti ROCm Debugger dan ROCm Profiler
- Mengoptimalkan program ROCm menggunakan teknik seperti penggabungan, caching, prefetching, dan profiling
Perbandingan
- Membandingkan fitur, kinerja, dan kompatibilitas OpenCL, CUDA, dan ROCm
- Mengevaluasi program GPU menggunakan benchmark dan metrik
- Mempelajari praktik terbaik dan tips untuk pemrograman GPU
- Menjelajahi tren dan tantangan saat ini dan masa depan dari pemrograman GPU
Ringkasan dan Langkah Selanjutnya
Persyaratan
- Pemahaman tentang bahasa C/C++ dan konsep pemrograman paralel
- Pengetahuan dasar arsitektur komputer dan hierarki memori
- Pengalaman dengan alat baris perintah dan editor kode
Audience
- Pengembang yang ingin belajar cara menggunakan berbagai framework untuk pemrograman GPU dan membandingkan fitur, kinerja, dan kompatibilitasnya
- Pengembang yang ingin menulis kode yang portable dan skalabel yang dapat dijalankan pada platform dan perangkat yang berbeda
- Programmer yang ingin mengeksplorasi trade-off dan tantangan pemrograman GPU serta optimasinya
28 Jam