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 ROCm?
- Co je HIP?
- ROCm vs CUDA vs OpenCL
- Přehled funkcí a architektury ROCm a HIP
- Nastavení vývojového prostředí
Začínáme
- Vytvoření nového projektu ROCm pomocí kódu Visual Studio
- Prozkoumání struktury projektu a souborů
- Kompilace a spuštění programu
- Zobrazení výstupu pomocí printf a fprintf
ROCm API
- Pochopení role ROCm API v hostitelském programu
- Použití rozhraní ROCm API k dotazování na informace a možnosti zařízení
- Použití ROCm API k alokaci a uvolnění paměti zařízení
- Použití ROCm API ke kopírování dat mezi hostitelem a zařízením
- Použití ROCm API ke spouštění jader a synchronizaci vláken
- Použití ROCm API ke zpracování chyb a výjimek
Jazyk HIP
- Pochopení role jazyka HIP v programu zařízení
- Použití jazyka HIP k zápisu jader, která se spouštějí na GPU a manipulují s daty
- Použití datových typů, kvalifikátorů, operátorů a výrazů HIP
- Použití vestavěných funkcí, proměnných a knihoven HIP k provádění běžných úloh a operací
ROCm a HIP paměťový model
- Pochopení rozdílu mezi modely paměti hostitele a zařízení
- Použití paměťových prostorů ROCm a HIP, jako jsou globální, sdílené, konstantní a místní
- Použití paměťových objektů ROCm a HIP, jako jsou ukazatele, pole, textury a povrchy
- Použití režimů přístupu k paměti ROCm a HIP, jako je pouze čtení, pouze zápis, čtení-zápis atd.
- Použití ROCm a HIP modelu konzistence paměti a synchronizačních mechanismů
ROCm a model provedení HIP
- Pochopení rozdílu mezi modely provádění hostitele a zařízení
- Použití ROCm a HIP vláken, bloků a mřížek k definování rovnoběžnosti
- Použití funkcí ROCm a HIP vláken, jako je hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x atd.
- Použití funkcí ROCm a HIP bloků, jako jsou __syncthreads, __threadfence_block atd.
- Používání funkcí ROCm a HIP grid, jako je hipGridDim_x, hipGridSync, kooperativní skupiny atd.
Ladění
- Pochopení běžných chyb a chyb v programech ROCm a HIP
- Použití Visual Studio Code debugger ke kontrole proměnných, zarážek, zásobníku volání atd.
- Použití ROCm Debugger k ladění ROCm a HIP programů na zařízeních AMD
- Použití ROCm Profiler k analýze programů ROCm a HIP na zařízeních AMD
Optimalizace
- Pochopení faktorů, které ovlivňují výkon programů ROCm a HIP
- Použití technik ROCm a HIP ke zlepšení propustnosti paměti
- Použití ROCm a HIP caching a prefetching technik ke snížení latence paměti
- Použití ROCm a HIP sdílené paměti a technik místní paměti k optimalizaci přístupu k paměti a šířky pásma
- Použití ROCm a HIP profilovacích a profilovacích nástrojů k měření a zlepšení doby provádění a využití zdrojů
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 používat ROCm a HIP k programování AMD GPU a využívat jejich paralelismus
- Vývojáři, kteří chtějí psát vysoce výkonný a škálovatelný kód, který lze spustit na různých zařízeních AMD
- Programátoři, kteří chtějí prozkoumat nízkoúrovňové aspekty GPU programování a optimalizovat výkon svého kódu
28 hodiny