Hubungi Kami

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

Jumlah Peserta


Harga per Peserta

Kursus Mendatang

Kategori Terkait