Návrh Školení

Úvod

  • Co je GPU programování?
  • Proč používat GPU programování?
  • Jaké jsou výzvy a obchodní nároky spojené s GPU programováním?
  • Jaké jsou frameworky pro GPU programování?
  • Zvolení správného frameworku pro vaši aplikaci

OpenCL

  • Co je OpenCL?
  • Jaké jsou výhody a nevýhody OpenCL?
  • Nastavení vývojového prostředí pro OpenCL
  • Vytvoření základního programu OpenCL, který provádí vektorovou součtu
  • Použití API OpenCL pro dotaz na informace o zařízení, alokaci a uvolňování paměti zařízení, kopírování dat mezi hostitelem a zařízením, spouštění jádrových funkcí a synchronizací vláken
  • Použití jazyka OpenCL C k vytvoření jádrových funkcí, které se vykonají na zařízení a manipulují s daty
  • Použití integrovaných funkcí, proměnných a knihoven OpenCL k provedení běžných úloh a operací
  • Používání paměťových prostorů v OpenCL, jako jsou globální, místní, konstantní a privátní pro optimalizaci datových přenosů a přístupu k paměti
  • Použití modelu spuštění v OpenCL k řízení pracovních prvků, skupin práce a ND rozsahů, které definují paralelismus
  • Ladění a testování programů OpenCL pomocí nástrojů jako je CodeXL
  • Optimalizace programů OpenCL pomocí technik jako jsou splynutí, časování, prefetching a profilaci

CUDA

  • Co je CUDA?
  • Jaké jsou výhody a nevýhody CUDA?
  • Nastavení vývojového prostředí pro CUDA
  • Vytvoření základního programu CUDA, který provádí vektorovou součtu
  • Použití API CUDA k dotazům na informace o zařízení, alokaci a uvolňování paměti zařízení, kopírování dat mezi hostitelem a zařízením, spouštění jádrových funkcí a synchronizacích vláken
  • Použití jazyka CUDA C/C++ k vytvoření jádrových funkcí, které se vykonají na zařízení a manipulují s daty
  • Použití integrovaných funkcí, proměnných a knihoven CUDA k provedení běžných úloh a operací
  • Používání paměťových prostorů v CUDA, jako jsou globální, sdílené, konstantní a místní pro optimalizaci datových přenosů a přístupu k paměti
  • Použití modelu spuštění CUDA k řízení vláken, bloků a sítí, které definují paralelismus
  • Ladění a testování programů CUDA pomocí nástrojů jako je CUDA-GDB, CUDA-MEMCHECK a NVIDIA Nsight
  • Optimalizace programů CUDA pomocí technik jako jsou splynutí, časování, prefetching a profilaci

ROCm

  • Co je ROCm?
  • Jaké jsou výhody a nevýhody ROCm?
  • Nastavení vývojového prostředí pro ROCm
  • Vytvoření základního programu ROCm, který provádí vektorovou součtu
  • Použití API ROCm k dotazům na informace o zařízení, alokaci a uvolňování paměti zařízení, kopírování dat mezi hostitelem a zařízením, spouštění jádrových funkcí a synchronizacích vláken
  • Použití jazyka ROCm C/C++ k vytvoření jádrových funkcí, které se vykonají na zařízení a manipulují s daty
  • Použití integrovaných funkcí, proměnných a knihoven ROCm k provedení běžných úloh a operací
  • Používání paměťových prostorů v ROCm, jako jsou globální, místní, konstantní a privátní pro optimalizaci datových přenosů a přístupu k paměti
  • Použití modelu spuštění ROCm k řízení vláken, bloků a sítí, které definují paralelismus
  • Ladění a testování programů ROCm pomocí nástrojů jako je ROCm Debugger a ROCm Profiler
  • Optimalizace programů ROCm pomocí technik jako jsou splynutí, časování, prefetching a profilaci

Srovnání

  • Srovnání funkcí, výkonu a kompatibility OpenCL, CUDA a ROCm
  • Hodnocení programů GPU pomocí benchmarků a metrik
  • Zjišťování nejlepších praxí a tipů pro programování v GPU
  • Prozkoumávání aktuálních a budoucích trendy a výzev v oblasti GPU programování

Shrnutí a další kroky

Požadavky

  • Přehled jazyka C/C++ a konceptů paralelního programování
  • Základní znalost architektury počítače a hierarchie paměti
  • Zkušenosti s nástroji příkazového řádku a kódovacími editory

Cílová skupina

  • Vývojáři, kteří chtějí naučit se používat různé frameworky pro GPU programování a porovnat jejich vlastnosti, výkon a kompatibilitu
  • Vývojáři, kteří chtějí psát portabilní a škálující se kód, který může běžet na různých platformách a zařízeních
  • Programátoři, kteří chtějí prozkoumat obchodní výhody a výzvy GPU programování a optimalizace
 28 hodiny

Počet účastníků


Price per participant

Upcoming Courses

Související kategorie