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 – srovnání technologií
- Přehled vlastností a architektury ROCm a HIP
- Rozdíly mezi ROCm pro Windows a ROCm pro Linux
Instalace
- Postup instalace platformy ROCm na systém Windows
- Ověření správné instalace a kontrola kompatibility zařízení
- Aktualizace nebo odinstalace platformy ROCm z Windows
- Řešení běžných problémů při instalaci<\/li>
Základy práce
- Vytvoření nového projektu v ROCm pomocí Visual Studio Code na Windows
- Přehled struktury a souborů projektu
- Kompilace a spuštění programu
- Zobrazení výstupních informací pomocí funkcí printf a fprintf<\/li>
API platformy ROCm
- Používání API ROCm v hostitelském programu
- Zjišťování informací o zařízení a jeho možnostech
- Alokace a uvolňování paměti na grafickém procesoru
- Přenos dat mezi hostitelem a GPU
- Spuštění instrukcí a synchronizace vláken
- Ošetření chyb a výjimek v programech<\/li>
Jazyk HIP
- Používání jazyka HIP při tvorbě kódu určeného k provádění na grafickém procesoru
- Psaní programů, které manipulují s daty a spouštějí se na GPU.
- Pracovní s datovými typy, specifikátory, operátory i výrazy v HIP
- Využití vestavěných funkcí, proměnných a knihoven jazyka HIP<\/li>
Paměťový model v ROCm a HIP
- Používání různých typů paměti – globální, sdílená, konstantní či lokální<
- Práce s různými objekty v paměti jako jsou ukazatele, pole, textury a povrchy
- Aplikace jednotlivých režimů přístupu k paměti – pouze čtení, pouze zápis, čtení i zápis atd.
- Zajištění konzistence dat a vhodné mechanismy synchronizace
Modely provádění v ROCm a HIP
- Definování jednotlivých modelů provádění – vlákna, bloky i mřížky
- Používání funkcí určených k práci s vlákny, např. hipThreadIdx_x, hipBlockIdx_x či hipBlockDim_x<
- Manipulace s blokovými strukturami prostřednictvím funkcí jako __syncthreads či __threadfence_block
- Řízení celých skupin výpočtů pomocí funkcí typu hipGridDim_x, hipGridSync nebo kooperativních skupin<\/li>
Ladění
- Ladění programů napsaných v ROCm a HIP na platformě Windows<
- Používání debuggeru Visual Studio Code k prohlížení proměnných, nastavování breakpointů či kontrole call stacku
- Využití nástroje ROCm Debugger pro ladění aplikací na grafických procesorech AMD<
- Analýza výkonnosti programů pomocí nástroje ROCm Profiler u zařízení s procesory AMD<\/li>
Optimalizace
- Postupy vedoucí k vylepšení výkonu programů napsaných v ROCm a HIP na Windows<
- Aplikace techniky sloučení přístupů k paměti za účelem zvýšení její propustnosti
- Využití mezipaměti a prediktivního načítání dat ke snížení latence při přístupu k paměti<
- Optimalizace přenosů dat díky efektivnějšímu využívání sdílené i lokální paměti
- Použití profilovacích nástrojů pro měření doby provádění a využití systémových zdrojů<\/li>
Závěr a další kroky
Požadavky
- Znalost programovacího jazyka C/C++ a základů paralelního programování
- Elementární porozumění počítačové architektuře a hierarchii pamětí
- Zkušenosti s prací v terminálu a v editorech kódu
- Orientace v operačním systému Windows a nástroji PowerShell
Cílová skupina
- Vývojáři, kteří se chtějí naučit instalovat a používat ROCm ve Windows pro programování grafických procesorů AMD a využití jejich paralelních schopností.
- Vývojáři s cílem vytvářet vysoce výkonný kód, který bude spolehlivě fungovat na různých zařízeních od AMD.
- Programátoři toužící proniknout do hlubších aspektů programování GPU a zdokonalit výkon svých aplikací.
21 Hodiny