Hubungi Kami

Kerangka Materi

Pendahuluan Komputasi Tercepat Berbasis GPU

  • Konsep komputasi heterogen serta arsitektur CPU-GPU
  • Proses eksekusi dan tipe memori dalam CUDA
  • Cara mengkompilasi kode CUDA C++ menggunakan nvcc maupun CMake
  • Pengujian lingkungan pengembangan GPU yang benar

Algoritma Paralel dengan Thrust dan CUB

  • Proses sortir, reduksi, dan transformasi secara paralel di GPU
  • Cara merombak algoritma STL agar dapat dieksekusi pada GPU
  • Vektor perangkat Thrust serta kebijakan eksekusinya
  • Primitive CUB untuk mendukung pipelin komputasi kustom

Arsitektur serta Manajemen Memori GPU

  • Tipe memori global, konstan, dan tekstur dalam GPU
  • Metode alokasi memori perangkat secara manual serta transfer data terkait
  • Penggunaan Memori Unifikasi untuk akses data yang lebih sederhana
  • Optimisasi pola akses data agar selaras dengan sistem penyimpanan GPU

Eksekusi Asinkron Melalui Aliran CUDA

  • Pembuatan serta manajemen aliran data (stream) CUDA
  • Cara melakukan eksekusi kernel sekaligus mentransfer data secara simultan
  • Manfaat Event CUDA dalam pengaturan ketergantungan operasi
  • Pengaturan prioritas aliran serta penyetelan konkurensi secara efektif

Pembuatan Kernel CUDA Khusus

  • Pahami model pemrograman SIMT dan mekanisme eksekusi warps
  • Konfigurasi peluncuran kernel serta implementasi perulangan berdasarkan ukuran grid
  • Pendefinisian indeks thread maupun pembentukan grid multidimensi
  • Teknik penanganan kesalahan beserta verifikasi via API Runtime CUDA

Hierarki Thread serta Model Eksekusi GPU

  • Definisi grid, blok, dan thread dalam kode perangkat
  • Primitif tingkat Warps beserta operasi pemungutan suara (ballot)
  • Teknik sinkronisasi antar blok serta pemanfaatan penghalang eksekusi
  • Analisis tingkat pemanfaatan sumber daya dan kemampuan GPU dalam menangani sejumlah thread<

Kelompok Kolaboratif untuk Pola Paralel Fleksibel

  • Pemahaman API cooperative_groups serta tipe-tipe kelompoknya
  • Pembentukan bagian-bagian grid dan pembagian wilayah kerja secara tile-wise menggunakan tiled_partition
  • Cara meluncurkan operasi paralel di tingkat grid sekaligus memicu koordinasi kelompoknya
  • Pola sinkronisasi antar beberapa grid dalam satu urutan eksekusi<

Teknik Optimisasi Memori Bersama (Shared Memory)

  • Analisis struktur bank memori bersama serta upaya menghindari konflik akses<
  • Penerapan strategi tiling khusus dalam operasi matriks dengan memanfaatkan shared memory
  • Mengoptimalkan pemanfaatan shared memory sebagai cache manajemen pengguna<
  • Pemakaian alat cuda::shared_memory_mdspan untuk merepresentasikan data multidimensi dalam kernel<

Integrasi Kernel serta Pola Paralel Tingkat Lanjut

  • Penggabungan beberapa kernel menjadi satu operasi demi menekan biaya peluncuran per komponen<
  • Implementasi algoritma scan, reduksi berdasarkan kunci tertentu, serta operasi segmental lainnya<
  • Pemanfaatan operasi atomik beserta struktur data tanpa penyegelan (lock-free) dalam komputasi intensif<
  • Optimisasi throughput melalui mekanisme atomik berbasis Warps<

Profiling serta Optimisasi dengan Nsight Systems

  • Pengamatan jadwal aktivitas CPU dan GPU lewat alat ini secara timeline-based<
  • Pendeteksian titik kemacetan terkait proses transfer memori antar perangkat<
  • Analisis performa kernel maupun tingkat efisiensi dalam penggunaan sumber daya GPU secara mendalam<
  • Tahapan pemutakhiran algoritma bertahap melalui alat Nsight Compute<

Fleksibilitas Fitur C++ Modern dalam Kode Perangkat CUDA

  • Pemanfaatan ekspresi lambda, kata kunci constexpr, serta tipe data otomatis dalam kernel<
  • Aplikasi algoritma paralel modern versi C++17 beserta kebijakan eksekusinya<
  • Integrasi konsep baru seperti ranges dan konsep di level bahasa versi C++20 untuk penggunaan GPU<
  • Ketersediaan dukungan C++23 dalam alat nvcc maupun keluarga perangkat lunak CCCL 3.x<

Grafik CUDA serta Pola Eksekusi Asinkron Tingkat Lanjut

  • Cara merancang dan meluncurkan grafik komputasi berbasis ekosistem CUDA<
  • Rekaman aktivitas aliran data menjadi representasi grafis lewat fitur capture<
  • Teknik pembaruan struktur grafis beserta pengaturan node yang dipicu kondisional<
  • Pemanfaatan strategi ini untuk mengatasi keterlambatan peluncuran kernel dalam situasi komputasi iteratif<

Strategi Integrasi Teknologi GPU ke Aplikasi yang Sudah Ada

  • Pembentukan antarmuka bahasa C++ untuk mengemas logika komputasi perangkat GPU<
  • Cara menangani sistem multi-GPU dan konfigurasi NUMA secara efisien<
  • Integrasi alat bantu pembuatan proyek menggunakan CMake serta CUDA <
  • Pemanfaatan tool debugger cuda-gdb guna menganalisis kesalahan kode perangkat GPU<

Rangkuman dan Panduan Terbaik dalam Pengembangan Aplikasi GPU

  • Pertimbangan memilih antara Thrust, CUB, atau pengembangan kernel secara mandiri<
  • Cara mengejar portabilitas kinerja pada beragam arsitektur GPU<
  • Strategi pembentukan struktur kode yang bersih dengan menerapkan prinsip RAII untuk objek sumber daya CUDA<
  • Rekomendasi selanjutnya guna mengakses materi pembelajaran tingkat lanjut terkait ekosistem CUDA<

Persyaratan

  • Pemahaman dasar tentang pemrograman C++, termasuk ekspresi lambda, template, serta STL
  • Pengetahuan umum mengenai algoritma standar, kontainer, dan iterator
  • Dapat membuat iterasi dengan perulangan, kondisi, serta fungsi secara mandiri
  • Tak diperlukan pengetahuan awal soal CUDA maupun pemrograman GPU

Target Peserta

  • Pengembang C++ yang ingin mempercepat aplikasi komputasi intensif lewat GPU
  • Insinyur perangkat lunak yang beralih dari model pemrograman sepenuhnya berbasis CPU ke ekosistem paralel heterogen
  • Insinyur kinerja sistem serta pengembang analisis data skala besar
 8 Jam

Jumlah Peserta


Harga per Peserta

Testimoni (3)

Kursus Mendatang

Kategori Terkait