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í
Výpočty na GPU a architektura CUDA
- Rozdíly v architektuře CPU a GPU
- Model proudících multiprocessorů GPU společnosti NVIDIA
- Přehled modelu programování CUDA
- Heterogenní výpočty a paradigma host-device
Nastavení vývojového prostředí CUDA
- Instalace balíku CUDA Toolkit 13.x
- Kompilátor NVCC a pracovní postup sestavování
- Ověření prostředí pomocí dotazů na zařízení
- Integrace IDE a vývojářské nástroje
Psaní a spouštění kernelů CUDA
- Syntaxe kvalifikátorů funkce kernelu
- Konfigurace spuštění a provádění
- Sčítání vektorů a základní vzory paralelismu dat
- Makra pro kontrolu chyb CUDA
Hierarchie vláken CUDA a model provádění
- Organizace mřížky, bloku a vlákna
- Indexování vláken a výpočet globálního ID
- Vykonyvání warpů a model SIMT
- Využití obsazenosti a zdrojů
Architektura paměti GPU a její správa
- Typy paměti: globální, sdílená, konstantní, registry
- Alokace a uvolňování paměti zařízení
- Přenosy mezi hostitelem a zařízením (host-to-device a device-to-host)
- Sdílená paměť pro spolupráci uvnitř bloku
Sdílená paměť a migrace dat
- Model sdílené paměti a spravované alokace
- Migrace stránek a stránkování na vyžádání
- Asynchronní přednačítání pomocí funkce cudaMemPrefetchAsync
- Doporučení pro přístupové vzory paměti
Systémové profilování pomocí Nsight Systems
- Analýza časové osy v nástroji Nsight Systems
- Identifikace bodů synchronizace CPU-GPU
- Visualizace provedení kernelu a přenosu paměti
- Interpretace dat o výkonu na úrovni systému
Optimalizace kernelů pomocí Nsight Compute
- Interaktivní profilování kernelů v nástroji Nsight Compute
- Analýza propustnosti paměti a pásma
- Využití výpočetních prostředků a statistiky stavu warpů
- Průvodce analýzou a pravidla pro optimalizaci
Paralelní streamy a asynchronní operace
- Streamy CUDA a výchozí stream
- Překrývání provádění kernelu s přenosy dat
- Synchronizace streamů a události CUDA
- Vzorové návrhy vícekanálového pipeline
Zpracování chyb a ladící nástroje
- Řídící kódy API CUDA a strategie obnovy
- Nástroj Compute-sanitizer pro kontrolu přístupu do paměti
- Ladění kernelů pomocí cuda-gdb
- Assert příkazy a synchronní detekce chyb
Pracovní postup optimalizace řízený profilováním
- Iterativní metodika profilování
- Identifikace a priorizace úzkých míst výkonu
- Testování regresí výkonu
- Dokumentování rozhodnutí při optimalizaci
Kompletní projekt aplikace zrychlené na GPU
- Návrh kompletního řešení akcelerovaného na GPU
- Integrace profilování během celého vývoje
- Benchmarky výkonu a reporting
- Zohlednění nasazení pro produkční prostředí
Požadavky
- Základní kompetence v programování C/C++ včetně typů proměnných, cyklů, podmínkových příkazů, funkcí a manipulace s poli
- Povědomí o kompilaci a spouštění programů z příkazového řádku
- Předchozí zkušenosti s GPU nebo programováním CUDA nejsou vyžadovány
Cílová skupina
- Vývojáři softwaru a inženýři, kteří chtějí zrychlit aplikace C/C++ pomocí grafických procesorů (GPU)
- Vědečtí výzkumníci a odborníci na HPC přecházející z čistě CPU-based výpočtů do heterogenních výpočetních systémů
- Techničtí vedoucí hodnotící akceleraci GPU pro produkční úlohy
8 Hodiny