Návrh Školení

Úvod

  • Co je programování pomocí GPU?
  • Proč používat CUDA s Python?
  • Klíčové pojmy: vlákna, bloky, síť

Přehled funkcí a architektury CUDA

  • GPU vs CPU architektura
  • Porozumění SIMT (jedna instrukce, několik vláken)
  • CUDA programovací model

Nastavení vývojového prostředí

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

Základy paralelního programování pomocí Programming

  • Vstup do paralelního spuštění
  • Porozumění vláknům a vlastnostem hierarchie vláken
  • Práce s warpami a synchronizací

Práce se sestavovatelem Numba

  • Vstup do Numba
  • Napsání CUDA jádrov pomocí Numba
  • Porozumění dekorátorem @cuda.jit

Sestavení vlastního CUDA jádra

  • Napsání a spuštění základního jádra
  • Využití vláken pro prvkové operace
  • Řízení rozměrů síťových bloků

Paměť Management

  • Druhy paměti GPU (globální, sdílená, lokální, konstantní)
  • Prevod paměti mezi hostitelem a zařízením
  • Optimalizace využití paměti a vyhnutí se omezujícím hrdinám

Pokročilé téma akcelerace pomocí GPU

  • Sdílená paměť a synchronizace
  • Využití proudů pro asynchronní spuštění
  • Základy programování s více GPU

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

  • Hloubkové profilování kódu CPU
  • Identifikace paralelně spustitelných částí
  • Přesun logiky do CUDA jádrov

Výsledná diagnostika a řešení problémů

  • Léčba chyb v aplikacích CUDA
  • Běžné chyby a jejich odstranění
  • Nástroje a techniky pro testování a ověřování

Závěr a další kroky

  • Recap klíčových pojmů
  • Nejlepší praktiky v programování pomocí GPU
  • Zdroje pro pokračující učení

Požadavky

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

Publikum

  • Vývojáři
 14 hodiny

Počet účastníků


Price per participant

Reference (1)

Upcoming Courses

Související kategorie