Kerangka Materi

Pendahuluan

  • Apa itu GPU programming?
  • Mengapa menggunakan GPU programming?
  • Apa tantangan dan trade-offs dari GPU programming?
  • Apa framework yang tersedia untuk GPU programming?
  • Memilih framework yang tepat untuk aplikasi Anda

OpenCL

  • Apa itu OpenCL?
  • Apa kelebihan dan kekurangan dari OpenCL?
  • Mengatur lingkungan pengembangan untuk OpenCL
  • Membuat program OpenCL dasar yang melakukan penjumlahan vektor
  • Menggunakan API OpenCL untuk mengambil informasi perangkat, alokasikan dan dealokasikan memori perangkat, salin data antara host dan perangkat, luncurkan kernel, dan sinkronisasikan thread
  • Menggunakan bahasa C OpenCL untuk menulis kernel yang dieksekusi di perangkat dan memanipulasi data
  • Menggunakan fungsi bawaan, variabel, dan library dari OpenCL untuk melakukan tugas dan operasi umum
  • Menggunakan ruang memori OpenCL, seperti global, local, constant, dan private, untuk mengoptimalkan transfer data dan akses memori
  • Menggunakan model eksekusi OpenCL untuk mengontrol work-items, work-groups, dan ND-ranges yang mendefinisikan paralelisme
  • Debugging dan pengujian program OpenCL menggunakan alat seperti CodeXL
  • Optimasi program OpenCL dengan teknik seperti coalescing, caching, prefetching, dan profiling

CUDA

  • Apa itu CUDA?
  • Apa kelebihan dan kekurangan dari CUDA?
  • Mengatur lingkungan pengembangan untuk CUDA
  • Membuat program CUDA dasar yang melakukan penjumlahan vektor
  • Menggunakan API CUDA untuk mengambil informasi perangkat, alokasikan dan dealokasikan memori perangkat, salin data antara host dan perangkat, luncurkan kernel, dan sinkronisasikan thread
  • Menggunakan bahasa C/CUDA untuk menulis kernel yang dieksekusi di perangkat dan memanipulasi data
  • Menggunakan fungsi bawaan, variabel, dan library 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
  • Debugging dan pengujian program CUDA menggunakan alat seperti CUDA-GDB, CUDA-MEMCHECK, dan NVIDIA Nsight
  • Optimasi program CUDA dengan teknik seperti coalescing, caching, prefetching, dan profiling

ROCm

  • Apa itu ROCm?
  • Apa kelebihan dan kekurangan dari ROCm?
  • Mengatur lingkungan pengembangan untuk ROCm
  • Membuat program ROCm dasar yang melakukan penjumlahan vektor
  • Menggunakan API ROCm untuk mengambil informasi perangkat, alokasikan dan dealokasikan memori perangkat, salin data antara host dan perangkat, luncurkan kernel, dan sinkronisasikan thread
  • Menggunakan bahasa C/ROCm untuk menulis kernel yang dieksekusi di perangkat dan memanipulasi data
  • Menggunakan fungsi bawaan, variabel, dan library ROCm untuk melakukan tugas dan operasi umum
  • Menggunakan ruang memori ROCm, seperti global, local, constant, dan private, untuk mengoptimalkan transfer data dan akses memori
  • Menggunakan model eksekusi ROCm untuk mengontrol thread, blok, dan grid yang mendefinisikan paralelisme
  • Debugging dan pengujian program ROCm menggunakan alat seperti ROCm Debugger dan ROCm Profiler
  • Optimasi program ROCm dengan teknik seperti coalescing, caching, prefetching, dan profiling

Perbandingan

  • Membandingkan fitur, kinerja, dan kompatibilitas dari OpenCL, CUDA, dan ROCm
  • Evaluasi program GPU menggunakan benchmark dan metrik
  • Mempelajari best practices dan tips untuk programming GPU
  • Menjelajahi tren dan tantangan saat ini serta masa depan dari programming GPU

Ringkasan dan Langkah Berikutnya

Persyaratan

  • Pemahaman tentang bahasa C/C++ dan konsep pemrograman paralel
  • Pengetahuan dasar tentang arsitektur komputer dan hierarki memori
  • Pengalaman dengan alat baris perintah dan pengedit kode

Audiens

  • Pembuat perangkat lunak yang ingin belajar bagaimana menggunakan kerangka kerja yang berbeda untuk pemrograman GPU dan membandingkan fitur, kinerja, dan kompatibilitasnya
  • Pembuat perangkat lunak yang ingin menulis kode portabel dan dapat diperluas yang dapat dijalankan di berbagai platform dan perangkat
  • Pengembang program yang ingin mengeksplorasi trade-offs dan tantangan dari pemrograman GPU dan optimisasi
 28 Jam

Jumlah Peserta


Biaya per Peserta

Kursus Mendatang

Kategori Terkait