Zkuste nás kontaktovat

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

Počet účastníků


Cena za účastníka

Nadcházející kurzy

Související kategorie