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 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
Reference (2)
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
Trenéři energii a humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurz - NVIDIA GPU Programming - Extended
Machine Translated