Návrh Školení

Úvod

  • Co je GPU programování?
  • Proč používat programování GPU?
  • Jaké jsou výzvy a kompromisy GPU programování?
  • Jaké jsou rámce pro GPU programování?
  • Výběr správného rámce 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 OpenCL programu, který provádí sčítání vektorů
  • Použití OpenCL API k dotazování na informace o zařízení, alokaci a uvolnění paměti zařízení, kopírování dat mezi hostitelem a zařízením, spouštění jader a synchronizaci vláken
  • Použití OpenCL jazyka C k zápisu jader, která se spouštějí na zařízení a manipulují s daty
  • Použití OpenCL vestavěných funkcí, proměnných a knihoven k provádění běžných úloh a operací
  • Použití OpenCL paměťových prostorů, jako je globální, místní, konstantní a soukromý, k optimalizaci přenosů dat a přístupů k paměti
  • Použití prováděcího modelu OpenCL k řízení pracovních položek, pracovních skupin a rozsahů ND, které definují paralelismus
  • Ladění a testování OpenCL programů pomocí nástrojů, jako je CodeXL
  • Optimalizace OpenCL programů pomocí technik, jako je slučování, ukládání do mezipaměti, předběžné načítání a profilování

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í sčítání vektorů
  • Použití CUDA API k dotazování na informace o zařízení, alokaci a uvolnění paměti zařízení, kopírování dat mezi hostitelem a zařízením, spouštění jader a synchronizaci vláken
  • Použití jazyka CUDA C/C++ k zápisu jader, která se spouštějí na zařízení a manipulují s daty
  • Použití vestavěných funkcí, proměnných a knihoven CUDA k provádění běžných úkolů a operací
  • Použití paměťových prostorů CUDA, jako jsou globální, sdílené, konstantní a místní, k optimalizaci přenosů dat a přístupů k paměti
  • Použití modelu provádění CUDA k řízení vláken, bloků a mřížek, které definují rovnoběžnost
  • Ladění a testování programů CUDA pomocí nástrojů jako CUDA-GDB, CUDA-MEMCHECK a NVIDIA Nsight
  • Optimalizace programů CUDA pomocí technik, jako je slučování, ukládání do mezipaměti, předběžné načítání a profilování

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í sčítání vektorů
  • Použití ROCm API k dotazování na informace o zařízení, alokaci a uvolnění paměti zařízení, kopírování dat mezi hostitelem a zařízením, spouštění jader a synchronizaci vláken
  • Použití jazyka ROCm C/C++ k zápisu jader, která se spouštějí na zařízení a manipulují s daty
  • Použití vestavěných funkcí, proměnných a knihoven ROCm k provádění běžných úloh a operací
  • Použití paměťových prostorů ROCm, jako jsou globální, místní, konstantní a soukromé, k optimalizaci přenosů dat a přístupů k paměti
  • Použití modelu provádění ROCm k řízení vláken, bloků a mřížek, které definují rovnoběžnost
  • Ladění a testování programů ROCm pomocí nástrojů jako ROCm Debugger a ROCm Profiler
  • Optimalizace programů ROCm pomocí technik, jako je slučování, ukládání do mezipaměti, předběžné načítání a profilování

Srovnání

  • Porovnání funkcí, výkonu a kompatibility OpenCL, CUDA a ROCm
  • Hodnocení GPU programů pomocí benchmarků a metrik
  • Naučte se osvědčené postupy a tipy pro GPU programování
  • Zkoumání současných a budoucích trendů a výzev GPU programování

Shrnutí a další kroky

Požadavky

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

Publikum

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

Počet účastníků



Price per participant

Reference (1)

Související kurzy

ROCm for Windows

21 hodiny

Související kategorie