Hubungi Kami

Kerangka Materi

Pendahuluan

  • Apa itu pemrograman GPU?
  • Mengapa perlu menggunakan pemrograman GPU?
  • Apa saja tantangan dan kompromi dalam penerapan pemrograman GPU?
  • Kerangka kerja apa saja yang dapat digunakan untuk pemrograman GPU?
  • Bagaimana cara memilih kerangka kerja yang tepat sesuai aplikasi yang akan dibuat?

OpenCL

  • Apa itu OpenCL?
  • Apa saja keunggulan dan keterbatasan dari OpenCL?
  • Mengatur lingkungan pengembangan untuk memulai pemrograman dengan OpenCL
  • Membuat program OpenCL dasar yang melakukan operasi penjumlahan vektor
  • Memanfaatkan API OpenCL untuk menanyakan informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data antara host dan perangkat, menjalankan kernel, serta menyelaraskan eksekusi thread
  • Menggunakan bahasa pemrograman OpenCL C untuk menulis kernel yang dieksekusi pada GPU sekaligus mengolah data di sana
  • Memanfaatkan fungsi, variabel, dan pustaka bawaan OpenCL guna melaksanakan operasi komputasi umum
  • Menggunakan ruang memori dalam OpenCL seperti global, local, constant, dan private untuk mengoptimalkan alur data serta akses terhadap memori perangkat
  • Memanfaatkan model eksekusi OpenCL untuk mengatur pengelompokkan work-items, work-groups, dan ND-ranges yang menentukan mekanisme paralelisme pada GPU
  • Melakukan debugging serta pengujian program OpenCL menggunakan alat seperti CodeXL
  • Mengoptimalkan kinerja program OpenCL melalui teknik seperti coalescing, caching, prefetching, dan analisis profil eksekusi

CUDA

  • Apa itu CUDA?
  • Apa saja keunggulan dan keterbatasan dari CUDA?
  • Mengatur lingkungan pengembangan agar dapat memulai pemrograman dengan CUDA
  • Membuat program CUDA dasar yang melakukan operasi penjumlahan vektor
  • Memanfaatkan API CUDA untuk menanyakan informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data antara host dan perangkat, menjalankan kernel, serta menyelaraskan eksekusi thread
  • Menggunakan bahasa pemrograman CUDA C/C++ untuk menulis kernel yang dieksekusi pada GPU sekaligus mengolah data di sana
  • Memanfaatkan fungsi, variabel, dan pustaka bawaan CUDA guna melaksanakan operasi komputasi umum
  • Menggunakan ruang memori dalam CUDA seperti global, shared, constant, dan local untuk mengoptimalkan alur data serta akses terhadap memori perangkat
  • Memanfaatkan model eksekusi CUDA untuk mengatur pengelompokkan thread, blok, dan grid yang menjadi dasar mekanisme paralelisme pada GPU
  • Melakukan debugging serta pengujian program CUDA menggunakan alat seperti CUDA-GDB, CUDA-MEMCHECK, dan NVIDIA Nsight
  • Mengoptimalkan kinerja program CUDA melalui teknik seperti coalescing, caching, prefetching, dan analisis profil eksekusi

ROCm

  • Apa itu ROCm?
  • Apa saja keunggulan dan keterbatasan dari ROCm?
  • Mengatur lingkungan pengembangan agar dapat memulai pemrograman dengan ROCm
  • Membuat program ROCm dasar yang melakukan operasi penjumlahan vektor
  • Memanfaatkan API ROCm untuk menanyakan informasi perangkat, mengalokasikan serta melepaskan memori, mentransfer data antara host dan perangkat, menjalankan kernel, serta menyelaraskan eksekusi thread
  • Menggunakan bahasa pemrograman ROCm C/C++ untuk menulis kernel yang dieksekusi pada GPU sekaligus mengolah data di sana
  • Memanfaatkan fungsi, variabel, dan pustaka bawaan ROCm guna melaksanakan operasi komputasi umum
  • Menggunakan ruang memori dalam ROCm seperti global, local, constant, dan private untuk mengoptimalkan alur data serta akses terhadap memori perangkat
  • Memanfaatkan model eksekusi ROCm untuk mengatur pengelompokkan thread, blok, dan grid yang menjadi dasar mekanisme paralelisme pada GPU
  • Melakukan debugging serta pengujian program ROCm menggunakan alat seperti ROCm Debugger dan ROCm Profiler
  • Mengoptimalkan kinerja program ROCm melalui teknik seperti coalescing, caching, prefetching, dan analisis profil eksekusi

Perbandingan Antar Kerangka Kerja

  • Membandingkan fitur, kinerja, dan tingkat kompatibilitas dari OpenCL, CUDA, serta ROCm
  • Mengevaluasi kualitas program GPU dengan menggunakan metrik dan standar pengujian yang umum digunakan
  • Memahami praktik terbaik serta tips dalam pemrograman GPU
  • Mengenal tren dan tantangan mutakhir dalam perkembangan teknologi pemrograman GPU di masa kini maupun mendatang

Penutup dan Langkah Selanjutnya

Persyaratan

  • Pemahaman mendasar mengenai bahasa pemrograman C/C++ serta konsep-konsep dasar pemrograman paralel
  • Pengetahuan dasar terkait arsitektur komputer dan hierarki memori
  • Pengalaman menggunakan alat perintah baris serta editor kode program

Target Peserta

  • Para pengembang yang ingin mempelajari cara menggunakan berbagai kerangka kerja dalam pemrograman GPU serta membandingkan fitur, kinerja, dan tingkat kompatibilitasnya
  • Para pengembang yang menginginkan kode program yang portabel serta dapat berjalan di berbagai platform dan perangkat
  • Para programmer yang ingin memahami secara mendalam kompromi dan tantangan dalam pemrograman GPU maupun optimalisasinya
 28 Jam

Jumlah Peserta


Harga per Peserta

Kursus Mendatang

Kategori Terkait