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 GPU programování?
- Jaké jsou výzvy a obchodní kompromisy GPU programování?
- Jaké jsou rámce pro GPU programování?
- Volba 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 programu OpenCL, který provádí vektorové sčítání
- Použití API OpenCL k dotazování informací o zařízení, alokaci a dealokaci paměti na zařízení, kopírování dat mezi hostitelským systémem a zařízením, spouštění jáder a synchronizace vláken
- Použití jazyka OpenCL C k psaní jader, která se provádějí na zařízení a manipulují s daty
- Použití vestavěných funkcí, proměnných a knihoven OpenCL k provádění běžných úkolů a operací
- Použití paměťových prostorů OpenCL, jako jsou globální, lokální, konstantní a soukromé, k optimalizaci přenosů dat a přístupů do paměti
- Použití modelu provádění OpenCL k řízení pracovních položek, pracovních skupin a ND-rozměrů, které definují paralelnost
- Ladić a testovat programy OpenCL pomocí nástrojů jako CodeXL
- Optimalizovat programy OpenCL pomocí technik jako kovalence, ukládání do mezipaměti, předzpracování a profilace
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í vektorové sčítání
- Použití API CUDA k dotazování informací o zařízení, alokaci a dealokaci paměti na zařízení, kopírování dat mezi hostitelským systémem a zařízením, spouštění jáder a synchronizace vláken
- Použití jazyka CUDA C/C++ k psaní jader, která se provádě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 lokální, k optimalizaci přenosů dat a přístupů do paměti
- Použití modelu provádění CUDA k řízení vláken, bloků a mřížek, které definují paralelnost
- Ladić a testovat programy CUDA pomocí nástrojů jako CUDA-GDB, CUDA-MEMCHECK a NVIDIA Nsight
- Optimalizovat programy CUDA pomocí technik jako kovalence, ukládání do mezipaměti, předzpracování a profilace
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í vektorové sčítání
- Použití API ROCm k dotazování informací o zařízení, alokaci a dealokaci paměti na zařízení, kopírování dat mezi hostitelským systémem a zařízením, spouštění jáder a synchronizace vláken
- Použití jazyka ROCm C/C++ k psaní jader, která se provádě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 úkolů a operací
- Použití paměťových prostorů ROCm, jako jsou globální, lokální, konstantní a soukromé, k optimalizaci přenosů dat a přístupů do paměti
- Použití modelu provádění ROCm k řízení vláken, bloků a mřížek, které definují paralelnost
- Ladić a testovat programy ROCm pomocí nástrojů jako ROCm Debugger a ROCm Profiler
- Optimalizovat programy ROCm pomocí technik jako kovalence, ukládání do mezipaměti, předzpracování a profilace
Porovnání
- Porovnání funkcí, výkonu a kompatibility OpenCL, CUDA a ROCm
- Posouzení GPU programů pomocí benchmarků a metrik
- Naučit se nejlepším praktikám a tipům pro GPU programování
- Prozkoumat aktuální a budoucí trendy a výzvy GPU programování
Shrnutí a další kroky
Požadavky
- Chápání jazyka C/C++ a koncepty paralelního programování
- Základní znalost počítačové architektury a hierarchie paměti
- Zkušenosti s příkazovými nástroji a editory kódu
Cílová Skupina
- Vývojáři, kteří chtějí naučit se používat různé rámy 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ódy, které se mohou spouštět na různých platformách a zařízeních
- Programátoři, kteří chtějí prozkoumat obchodní kompromisy a výzvy GPU programování a optimalizace
28 hodiny