Děkujeme za vaši dotaz! Jeden z našich pracovníků vás brzy kontaktuje.
Děkujeme za rezervaci! Jeden z našich pracovníků vás brzy kontaktuje.
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 a nástroje pro GPU programování?
- Výběr správného rámce a nástroje 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í
BOKY
- Co je HIP?
- Jaké jsou výhody a nevýhody HIP?
- Nastavení vývojového prostředí pro HIP
- Vytvoření základního programu HIP, který provádí sčítání vektorů
- Použití jazyka HIP 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 HIP k provádění běžných úloh a operací
- Použití paměťových prostorů HIP, jako jsou globální, sdílené, konstantní a místní, k optimalizaci datových přenosů a přístupů k paměti
- Použití modelu provádění HIP k řízení vláken, bloků a mřížek, které definují paralelismus
- Ladění a testování programů HIP pomocí nástrojů jako ROCm Debugger a ROCm Profiler
- Optimalizace programů HIP 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, ROCm a HIP
- 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ší krok
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 základy GPU programování a hlavní rámce a nástroje pro vývoj GPU aplikací
- 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 výhody a výzvy GPU programování a optimalizace
21 hodiny