Hubungi Kami

Kerangka Materi

Pengantar Komputasi Dipercepat GPU

  • Komputasi heterogen dan arsitektur CPU-GPU
  • Ruang eksekusi dan memori CUDA
  • Mengompilasi CUDA C++ dengan nvcc dan CMake
  • Memverifikasi lingkungan pengembangan GPU

Algoritma Paralel dengan Thrust dan CUB

  • Pengurutan (sort), reduksi, dan transformasi yang dipercepat GPU
  • Refaktorisasi algoritma STL untuk eksekusi GPU
  • Vektor perangkat Thrust dan kebijakan eksekusi
  • Primitif perangkat CUB untuk pipeline kustom

Arsitektur dan Manajemen Memori GPU

  • Jenis memori global, konstan, dan tekstur
  • Alokasi eksplisit dan transfer memori perangkat
  • Unified Memory untuk akses data yang lebih sederhana
  • Koalesensi memori dan optimasi pola akses

Ekskusi Asinkron dengan Stream CUDA

  • Membuat dan mengelola stream CUDA
  • Menindih eksekusi kernel dengan transfer data
  • Event CUDA untuk manajemen dependensi
  • Prioritas stream dan tuning konkurensi

Menulis Kernel CUDA Kustom

  • Model pemrograman SIMT dan eksekusi warp
  • Konfigurasi peluncuran kernel dan loop grid-stride
  • Pengindeksan thread dan grid multidimensi
  • Penanganan error dan pemeriksaan API runtime CUDA

Hierarki Thread dan Model Eksekusi

  • Grid, blok, dan thread dalam kode perangkat
  • Primitif level warp dan operasi ballot
  • Sinkronisasi level blok dan barriers
  • Analisis occupancy dan pemanfaatan sumber daya

Cooperative Groups untuk Paralelisme Fleksibel

  • API cooperative_groups dan jenis group
  • Tiling blok thread dan tiled_partition
  • Peluncuran kooperatif level grid
  • Pola sinkronisasi multi-grid

Teknik Optimasi Shared Memory

  • Bank shared memory dan penghindaran konflik bank
  • Strategi tiling untuk operasi matriks
  • Shared memory sebagai cache yang dikelola pengguna
  • cuda::shared_memory_mdspan untuk tampilan multidimensi

Fusi Kernel dan Pola Paralel Lanjutan

  • Mefusi beberapa kernel untuk mengurangi overhead peluncuran
  • Scan, reduce-by-key, dan algoritma segmentasi
  • Operasi atomik dan struktur data tanpa kunci (lock-free)
  • Atomic agregat level warp untuk meningkatkan throughput

Profiling dan Optimasi dengan Nsight Systems

  • Analisis timeline aktivitas CPU dan GPU
  • Identifikasi hambatan transfer memori
  • Profiling kinerja dan occupancy kernel
  • Optimasi iteratif dengan Nsight Compute

Fitur C++ Modern dalam Kode Perangkat CUDA

  • Lambdas, constexpr, dan auto dalam kernel
  • Algoritma paralel C++17 dan kebijakan eksekusi
  • Konsep dan range C++20 pada perangkat
  • Dukungan C++23 dalam nvcc dan CCCL 3.x

Grafik CUDA dan Asinkronisasi Lanjutan

  • Mendefinisikan dan meluncurkan grafik CUDA
  • Pengambilan (capture) grafik dari eksekusi stream
  • Update grafik dan node eksekusi kondisional
  • Mengurangi latensi peluncuran untuk beban kerja iteratif

Pola Integrasi untuk Aplikasi yang Sudah Ada

  • Membungkus kode GPU di balik antarmuka C++
  • Mengelola sistem multi-GPU dan NUMA
  • Integrasi build system dengan CMake dan CUDA
  • Debugging kode perangkat dengan cuda-gdb

Ringkasan dan Praktik Terbaik

  • Memilih antara Thrust, CUB, dan kernel kustom
  • Portabilitas kinerja melintasi arsitektur GPU
  • Penyelenggaraan kode dan RAII untuk sumber daya CUDA
  • Langkah selanjutnya dan jalur pembelajaran CUDA lanjutan

Persyaratan

  • Kompetensi dasar C++ termasuk ekspresi lambda, template, dan STL
  • Kepahaman terhadap algoritma standar, container, dan iterator
  • Kenyamanan dengan loop, kondisi (conditionals), dan fungsi
  • Tidak memerlukan pengetahuan sebelumnya tentang CUDA atau pemrograman GPU

Audience

  • Developer C++ yang berupaya mempercepat aplikasi intensif komputasi dengan GPU
  • Insinyur perangkat lunak yang beralih dari pemrograman paralel eksklusif CPU ke pemrograman paralel heterogen
  • Insinyur kinerja dan developer kuantitatif yang bekerja dengan dataset berskala besar
 8 Jam

Jumlah Peserta


Harga per Peserta

Testimoni (3)

Kursus Mendatang

Kategori Terkait