Hubungi Kami

Kerangka Materi

Pendahuluan

  • Apa itu CUDA?
  • CUDA dibandingkan dengan OpenCL dan SYCL
  • Gambaran umum fitur dan arsitektur CUDA
  • Mengatur Lingkungan Pengembangan

Pelajaran Dasar

  • Membuat proyek CUDA baru dengan Visual Studio Code.
  • Menjelajahi struktur proyek dan berbagai berkasnya.
  • Mengkompilasi serta menjalankan program yang dibuat.
  • Menampilkan hasil eksekusi lewat fungsi printf dan fprintf.

API CUDA

  • Fungsi API CUDA dalam mekanisme host program.
  • Penggunaan API CUDA untuk memperoleh informasi perangkat serta kapabilitasnya.
  • Proses alokasi dan pelepasan memori perangkat menggunakan API CUDA.
  • Mentransfer data antara host dan perangkat melalui API tersebut.
  • Peluncuran kernel dan proses sinkronisasi thread diatur dengan API CUDA.
  • Penanganan error serta pengecualian lewat fitur yang tersedia pada API CUDA.

Bahasa CUDA C/C++

  • Paparan peran bahasa CUDA C/C++ dalam implementasi program yang berjalan di GPU.
  • Pembuatan kernel menggunakan CUDA C/C++ untuk mengelola manipulasi data secara langsung di GPU.
  • Penjelasan mengenai tipe data, modifier, operator, serta ekspresi dalam bahasa ini.
  • Fungsi bawaan seperti fungsi matematika, operasi atomik, atau warp yang tersedia dalam CUDA C/C++.
  • Penggunaan variabel bawaan seperti threadIdx, blockIdx, dan blockDim pada implementasi program.
  • Integrasi pustaka umum seperti cuBLAS, cuFFT, maupun cuRAND ke dalam program.

Model Memori CUDA

  • Perbedaan mendasar antara model memori host dan perangkat.
  • Penerapan ruang memori spesifik seperti global, shared, constant, maupun local untuk optimisasi performa.
  • Pemahaman mengenai objek memori seperti pointer, array, texture, serta surface dalam konteks CUDA.
  • Konfigurasi modus akses memori: hanya baca, hanya tulis, atau keduanya sekaligus.
  • Mengatur kekonsistenan data dan mekanisme sinkronisasi antar elemen memori GPU.

Model Eksekusi CUDA

  • Pembedaan antara logika eksekusi host dan perangkat dalam konteks penggunaannya.
  • Definisi serta struktur kerja thread, blok, dan grid sebagai unsur pembentuk proses paralelisasi GPU.
  • Penerapan variabel fungsional seperti threadIdx maupun blockIdx untuk mengelola komponen tersebut.
  • Pemanfaatan fungsi pada tingkat blok seperti __syncthreads dan __threadfence_block demi sinkronisasi data.
  • Konteks pengaturan grid melalui parameter seperti gridDim, mekanisme koordinasi grup kerja (cooperative groups), serta cara menjalankannya.

Proses Debugging

  • Pengenalan jenis error serta bug yang umum muncul dalam implementasi program CUDA.
  • Pemanfaatan debugger Visual Studio Code untuk memeriksa nilai variabel, titik henti, serta struktur pemanggilan fungsi.
  • Instruksi dasar penggunaan CUDA-GDB sebagai alat utama debug di lingkungan Linux.
  • Pendeteksian kebocoran memori dan anomali sistem dengan CUDA-MEMCHECK.
  • Analisis program GPU di Windows menggunakan NVIDIA Nsight.

Teknik Optimisasi

  • Faktor-faktor kunci yang menentukan performa akhir program CUDA.
  • Penerapan teknik coalescing guna meningkatkan kecepatan aliran memori ke dalam GPU.
  • Optimasi latensi memori dengan menerapkan caching dan prefetching secara cermat.
  • Mengelola ruang shared memory serta local memory demi efisiensi akses memori yang maksimal.
  • Pemanfaatan alat profiling untuk mengukur waktu eksekusi dan penggunaan sumber daya perangkat secara presisi.

Penutup dan Langkah Selanjutnya

Persyaratan

  • Pemahaman dasar mengenai bahasa pemrograman C/C++ serta konsep pemrograman paralel
  • Pengetahuan dasar tentang arsitektur komputer dan struktur memori
  • Pengalaman dalam menggunakan alat baris perintah maupun editor kode

Target Peserta

  • Pengembang yang ingin menguasai penggunaan CUDA untuk pemrograman GPU NVIDIA serta memaksimalkan kemampuan paralelisasinya.
  • Pengembang yang hendak menciptakan kode berkinerja tinggi dan skalabel yang dapat dijalankan pada berbagai perangkat dengan dukungan CUDA.
  • Programmer yang tertarik mempelajari aspek mendalam pemrograman GPU serta cara mengoptimalkan kinerja program mereka.
 28 Jam

Jumlah Peserta


Harga per Peserta

Kursus Mendatang

Kategori Terkait