Kurzusleírás

Bevezetés

  • Mi a ROCm?
  • Mi a HIP?
  • ROCm vs CUDA vs OpenCL
  • A ROCm és HIP funkciók és architektúra áttekintése
  • Fejlesztői környezet beállítása

Első lépések

  • Új ROCm projekt létrehozása a Visual Studio Code segítségével
  • A projekt szerkezetének és fájljainak felfedezése
  • A program fordítása és futtatása
  • Kimenet megjelenítése printf és fprintf használatával

ROCm API

  • A ROCm API szerepének megértése a hoszt programban
  • ROCm API használata eszköz információk és képességek lekérdezésére
  • ROCm API használata eszköz memória lefoglalására és felszabadítására
  • ROCm API használata adatok másolására a hoszt és az eszköz között
  • ROCm API használata kernel indítására és szálak szinkronizálására
  • ROCm API használata hibák és kivételek kezelésére

HIP nyelv

  • A HIP nyelv szerepének megértése az eszköz programban
  • HIP nyelv használata kernel írására, amelyek a GPU-n futnak és adatokat manipulálnak
  • HIP adattípusok, minősítők, operátorok és kifejezések használata
  • HIP beépített függvények, változók és könyvtárak használata gyakori feladatok és műveletek elvégzésére

ROCm és HIP memóriamodell

  • A hoszt és eszköz memóriamodell közötti különbség megértése
  • ROCm és HIP memóriaterületek, például globális, megosztott, konstans és lokális memória használata
  • ROCm és HIP memória objektumok, például mutatók, tömbök, textúrák és felületek használata
  • ROCm és HIP memória hozzáférési módok, például csak olvasható, csak írható, olvasható-írható stb. használata
  • ROCm és HIP memória konzisztencia modell és szinkronizációs mechanizmusok használata

ROCm és HIP végrehajtási modell

  • A hoszt és eszköz végrehajtási modell közötti különbség megértése
  • ROCm és HIP szálak, blokkok és rácsok használata a párhuzamosság meghatározására
  • ROCm és HIP szál függvények, például hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x stb. használata
  • ROCm és HIP blokk függvények, például __syncthreads, __threadfence_block stb. használata
  • ROCm és HIP rács függvények, például hipGridDim_x, hipGridSync, kooperatív csoportok stb. használata

Hibakeresés

  • A ROCm és HIP programokban előforduló gyakori hibák és hibák megértése
  • Visual Studio Code hibakereső használata változók, töréspontok, hívási verem stb. ellenőrzésére
  • ROCm Debugger használata ROCm és HIP programok hibakeresésére AMD eszközökön
  • ROCm Profiler használata ROCm és HIP programok elemzésére AMD eszközökön

Optimalizálás

  • A ROCm és HIP programok teljesítményét befolyásoló tényezők megértése
  • ROCm és HIP coalescing technikák használata a memória átviteli sebesség javítására
  • ROCm és HIP gyorsítótárazási és előzetes betöltési technikák használata a memória késleltetés csökkentésére
  • ROCm és HIP megosztott és lokális memória technikák használata a memória hozzáférés és sávszélesség optimalizálására
  • ROCm és HIP profilozási és profilozási eszközök használata a végrehajtási idő és erőforrás kihasználtság mérésére és javítására

Összefoglalás és következő lépések

Követelmények

  • A C/C++ nyelv és a párhuzamos programozás alapjainak ismerete
  • Alapvető ismeretek a számítógép architektúráról és a memória hierarchiáról
  • Tapasztalat parancssori eszközökkel és kódszerkesztőkkel

Célközönség

  • Fejlesztők, akik szeretnének megtanulni, hogyan használják a ROCm és HIP rendszereket AMD GPU-k programozására és párhuzamosítási lehetőségeik kihasználására
  • Fejlesztők, akik szeretnének nagy teljesítményű és skálázható kódot írni, amely különböző AMD eszközökön futtatható
  • Programozók, akik szeretnék felfedezni a GPU programozás alacsony szintű aspektusait és optimalizálni kódjuk teljesítményét
 28 Órák

Résztvevők száma


Ár per résztvevő

Közelgő kurzusok

Rokon kategóriák