Kurzusleírás

Bevezetés

  • Mi az a ROCm?
  • Mi az a HIP?
  • ROCm vs CUDA vs OpenCL
  • A ROCm és HIP funkciók és architektúra áttekintése
  • A Fejlesztési Környezet kialakítása

Elkezdeni

  • Új ROCm projekt létrehozása Visual Studio kóddal
  • A projekt szerkezetének és fájljainak feltárása
  • A program összeállítása és futtatása
  • A kimenet megjelenítése a printf és fprintf használatával

ROCm API

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

HIP nyelv

  • A HIP nyelv szerepének megértése az eszközprogramban
  • HIP nyelv használata olyan kernelek írásához, amelyek a GPU-on futnak és adatokat kezelnek
  • 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 általános feladatok és műveletek végrehajtására

ROCm és HIP memória modell

  • A gazdagép és az eszközmemória modellek közötti különbség megértése
  • ROCm és HIP memóriaterületek használata, például globális, megosztott, állandó és helyi
  • ROCm és HIP memóriaobjektumok, 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 használata, például csak olvasható, csak írható, írás-olvasás stb.
  • ROCm és HIP memória konzisztencia modell és szinkronizálási mechanizmusok használata

ROCm és HIP végrehajtási modell

  • A gazdagép és az eszköz végrehajtási modelljei 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ához
  • ROCm és HIP szálfüggvények használata, például hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x stb.
  • ROCm és HIP blokkfüggvények használata, például __syncthreads, __threadfence_block stb.
  • ROCm és HIP grid funkciók használata, például hipGridDim_x, hipGridSync, együttműködő csoportok stb.

Hibakeresés

  • A ROCm és HIP programok gyakori hibáinak és hibáinak megértése
  • A Visual Studio kódhibakereső használata változók, töréspontok, veremhívás stb. vizsgálatához.
  • A ROCm Debugger használata ROCm és HIP programok hibakereséséhez AMD eszközökön
  • A ROCm Profiler használata ROCm és HIP programok elemzéséhez 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 összevonási technikák használata a memória átviteli sebességének javítására
  • ROCm és HIP gyorsítótárazási és előzetes letöltési technikák használata a memória késleltetésének csökkentése érdekében
  • ROCm és HIP megosztott memória és helyi memória technikák használata a memóriaelérések és a sávszélesség optimalizálására
  • ROCm és HIP profilkészítő és profilkészítő eszközök használata a végrehajtási idő és az erőforrás-kihasználás mérésére és javítására

Összegzés és a következő lépés

Követelmények

  • A C/C++ nyelv és a párhuzamos programozási fogalmak megértése
  • Számítógép-architektúra és memóriahierarchia alapismeretei
  • Parancssori eszközökben és kódszerkesztőkben szerzett tapasztalat

Közönség

  • Fejlesztők, akik szeretnék megtanulni a ROCm és a HIP használatát az AMD GPU programozására és a párhuzamosságuk kihasználására
  • Fejlesztők, akik nagy teljesítményű és méretezhető kódot szeretnének írni, amely különböző AMD eszközökön futhat
  • Programozók, akik szeretnék felfedezni a GPU programozás alacsony szintű aspektusait, és optimalizálni szeretnék kódteljesítményüket
 28 Hours

Résztvevők száma



Ár per résztvevő

Vélemények (1)

Rokon tanfolyam

GPU Programming with OpenCL

28 Hours

GPU Programming with CUDA

28 Hours

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

ROCm for Windows

21 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with OpenACC

28 Hours

Rokon kategóriák