Návrh Školení

Úvod

  • Co je programování GPU?
  • Proč používat CUDA s Pythonem?
  • Klíčová pojmutí: vlákna, bloky, síťce

Přehled funkcí a architektury CUDA

  • Porovnání architektury GPU a CPU
  • Srozumitní SIMT (Single Instruction, Multiple Threads)
  • CUDA programovací model

Nastavení vývojového prostředí

  • Instalace CUDA Toolkit a ovladačů
  • Instalace Pythonu a Numba
  • Nastavení a ověření prostředí

Základy paralelního programování

  • Úvod do paralelního provádění
  • Srozumitní vláken a hierarchie vláken
  • Práce s warpami a synchronizací

Práce s kompilátorem Numba

  • Úvod do Numbu
  • Napsání CUDA jádra pomocí Numbu
  • Srozumitní dekorátorů @cuda.jit

Vytvoření vlastního CUDA jádra

  • Napsání a spuštění základního jádra
  • Použití vláken pro elementární operace
  • Správa dimenzí síťce a bloku

Správa paměti

  • Druhy paměti GPU (globální, sdílené, místní, konstantní)
  • Přenos dat mezi hostitelským systémem a zařízením
  • Optimalizace využívání paměti a odstranění bottle necků

Pokročilé témata v GPU akceleraci

  • Sdílená paměť a synchronizace
  • Využití streamů pro asynchronní provádění
  • Základy programování více GPU

Převod CPU založených aplikací do GPU

  • Profilace kódu CPU
  • Identifikace paralelních částí
  • Přenesení logiky do CUDA jáder

Řešení problémů

  • Ladění CUDA aplikací
  • Běžné chyby a jejich řešení
  • Nástroje a techniky pro testování a validaci

Souhrn a další kroky

  • Revize klíčových konceptů
  • Doporučené postupy v programování GPU
  • Zdroje pro dálejší učení

Požadavky

  • Zkušenosti s programováním v Pythonu
  • Zkušenosti s NumPy (ndarrays, ufuncs atd.)

Cílová skupina

  • Programátoři
 14 hodiny

Počet účastníků


Cena za účastníka

Reference (1)

Nadcházející kurzy

Související kategorie