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

Jumlah Peserta


Biaya per Peserta

Kursus Mendatang

Kategori Terkait