Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
Reference (1)
Velmi interaktivní s různými příklady, s dobrým postupem ve složitosti mezi začátkem a koncem školení.
Jenny - Andheo
Kurz - GPU Programming with CUDA and Python
Machine Translated