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

Počet účastníků



Price per participant

Reference (1)

Související kurzy

GPU Programming - OpenCL vs CUDA vs ROCm

28 hodiny

ROCm for Windows

21 hodiny

Související kategorie