Zkuste nás kontaktovat

Návrh Školení

Výpočty na GPU a architektura CUDA

  • Rozdíly v architektuře CPU a GPU
  • Model proudících multiprocessorů GPU společnosti NVIDIA
  • Přehled modelu programování CUDA
  • Heterogenní výpočty a paradigma host-device

Nastavení vývojového prostředí CUDA

  • Instalace balíku CUDA Toolkit 13.x
  • Kompilátor NVCC a pracovní postup sestavování
  • Ověření prostředí pomocí dotazů na zařízení
  • Integrace IDE a vývojářské nástroje

Psaní a spouštění kernelů CUDA

  • Syntaxe kvalifikátorů funkce kernelu
  • Konfigurace spuštění a provádění
  • Sčítání vektorů a základní vzory paralelismu dat
  • Makra pro kontrolu chyb CUDA

Hierarchie vláken CUDA a model provádění

  • Organizace mřížky, bloku a vlákna
  • Indexování vláken a výpočet globálního ID
  • Vykonyvání warpů a model SIMT
  • Využití obsazenosti a zdrojů

Architektura paměti GPU a její správa

  • Typy paměti: globální, sdílená, konstantní, registry
  • Alokace a uvolňování paměti zařízení
  • Přenosy mezi hostitelem a zařízením (host-to-device a device-to-host)
  • Sdílená paměť pro spolupráci uvnitř bloku

Sdílená paměť a migrace dat

  • Model sdílené paměti a spravované alokace
  • Migrace stránek a stránkování na vyžádání
  • Asynchronní přednačítání pomocí funkce cudaMemPrefetchAsync
  • Doporučení pro přístupové vzory paměti

Systémové profilování pomocí Nsight Systems

  • Analýza časové osy v nástroji Nsight Systems
  • Identifikace bodů synchronizace CPU-GPU
  • Visualizace provedení kernelu a přenosu paměti
  • Interpretace dat o výkonu na úrovni systému

Optimalizace kernelů pomocí Nsight Compute

  • Interaktivní profilování kernelů v nástroji Nsight Compute
  • Analýza propustnosti paměti a pásma
  • Využití výpočetních prostředků a statistiky stavu warpů
  • Průvodce analýzou a pravidla pro optimalizaci

Paralelní streamy a asynchronní operace

  • Streamy CUDA a výchozí stream
  • Překrývání provádění kernelu s přenosy dat
  • Synchronizace streamů a události CUDA
  • Vzorové návrhy vícekanálového pipeline

Zpracování chyb a ladící nástroje

  • Řídící kódy API CUDA a strategie obnovy
  • Nástroj Compute-sanitizer pro kontrolu přístupu do paměti
  • Ladění kernelů pomocí cuda-gdb
  • Assert příkazy a synchronní detekce chyb

Pracovní postup optimalizace řízený profilováním

  • Iterativní metodika profilování
  • Identifikace a priorizace úzkých míst výkonu
  • Testování regresí výkonu
  • Dokumentování rozhodnutí při optimalizaci

Kompletní projekt aplikace zrychlené na GPU

  • Návrh kompletního řešení akcelerovaného na GPU
  • Integrace profilování během celého vývoje
  • Benchmarky výkonu a reporting
  • Zohlednění nasazení pro produkční prostředí

Požadavky

  • Základní kompetence v programování C/C++ včetně typů proměnných, cyklů, podmínkových příkazů, funkcí a manipulace s poli
  • Povědomí o kompilaci a spouštění programů z příkazového řádku
  • Předchozí zkušenosti s GPU nebo programováním CUDA nejsou vyžadovány

Cílová skupina

  • Vývojáři softwaru a inženýři, kteří chtějí zrychlit aplikace C/C++ pomocí grafických procesorů (GPU)
  • Vědečtí výzkumníci a odborníci na HPC přecházející z čistě CPU-based výpočtů do heterogenních výpočetních systémů
  • Techničtí vedoucí hodnotící akceleraci GPU pro produkční úlohy
 8 Hodiny

Počet účastníků


Cena za účastníka

Nadcházející kurzy

Související kategorie