Köszönjük, hogy elküldte érdeklődését! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
Köszönjük, hogy elküldte foglalását! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
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