Kurzusleírás

Bevezetés

  • Mivel a GPU programozás?
  • Miért érdemes GPU programozást használni?
  • Mi a kihívás és kompromisszum a GPU programozásban?
  • Milyen keretrendszerek léteznek a GPU programozáshoz?
  • Melyik keretrendszer a legalkalmasabb alkalmazásra?

OpenCL

  • Mi az OpenCL?
  • Milyen előnyei és hátrányai vannak az OpenCL-nek?
  • Fejlesztői környezet beállítása az OpenCL-hez
  • Alapvető OpenCL program létrehozása vektorszámlálás elvégzéséhez
  • OpenCL API használata az eszköz információinak lekérdezéséhez, a memóriahely foglalásához és felszabadításához, az adatok másolásához a gazdagétról az eszközhöz, kernel indításához és szálak szinkronizálásához
  • OpenCL C nyelv használata kernel létrehozásához, amelyek a készülékön futnak és az adatokkal működnek
  • OpenCL beépített függvényeinek, változóinak és könyvtárainak használata a gyakori feladatok és műveletek elvégzéséhez
  • OpenCL memóriaterületeinek, mint például globális, helyi, állandó és privát használata adataik áthelyezésének és memóriahozzáférésük optimalizálásához
  • OpenCL végrehajtási modell használata a munkaelemek, munkacsoportok és ND-intervallumok irányításához, amelyek meghatározzák a párhuzamosságot
  • OpenCL programok hibakeresése és tesztelése olyan eszközökkel, mint például CodeXL
  • OpenCL programok optimalizálása technikákkal, mint például a kötegelt olvasás, gyorsítótár használata, előbetöltés és profilozás.

CUDA

  • Mi a CUDA?
  • Milyen előnyei és hátrányai vannak a CUDA-nak?
  • Fejlesztői környezet beállítása a CUDA-hoz
  • Alapvető CUDA program létrehozása vektorszámlálás elvégzéséhez
  • CUDA API használata az eszköz információinak lekérdezéséhez, a memóriahely foglalásához és felszabadításához, az adatok másolásához a gazdagétról az eszközhöz, kernel indításához és szálak szinkronizálásához
  • CUDA C/C++ nyelv használata kernel létrehozásához, amelyek a készülékön futnak és az adatokkal működnek
  • CUDA beépített függvényeinek, változóinak és könyvtárainak használata a gyakori feladatok és műveletek elvégzéséhez
  • CUDA memóriaterületeinek, mint például globális, megosztott, állandó és helyi használata adataik áthelyezésének és memóriahozzáférésük optimalizálásához
  • CUDA végrehajtási modell használata a szálak, blokkok és rácsok irányításához, amelyek meghatározzák a párhuzamosságot
  • CUDA programok hibakeresése és tesztelése olyan eszközökkel, mint például CUDA-GDB, CUDA-MEMCHECK és NVIDIA Nsight
  • CUDA programok optimalizálása technikákkal, mint például a kötegelt olvasás, gyorsítótár használata, előbetöltés és profilozás.

ROCm

  • Mi az ROCm?
  • Milyen előnyei és hátrányai vannak a ROCm-nak?
  • Fejlesztői környezet beállítása az ROCm-hoz
  • Alapvető ROCm program létrehozása vektorszámlálás elvégzéséhez
  • ROCm API használata az eszköz információinak lekérdezéséhez, a memóriahely foglalásához és felszabadításához, az adatok másolásához a gazdagétról az eszközhöz, kernel indításához és szálak szinkronizálásához
  • ROCm C/C++ nyelv használata kernel létrehozásához, amelyek a készülékön futnak és az adatokkal működnek
  • ROCm beépített függvényeinek, változóinak és könyvtárainak használata a gyakori feladatok és műveletek elvégzéséhez
  • ROCm memóriaterületeinek, mint például globális, helyi, állandó és privát használata adataik áthelyezésének és memóriahozzáférésük optimalizálásához
  • ROCm végrehajtási modell használata a szálak, blokkok és rácsok irányításához, amelyek meghatározzák a párhuzamosságot
  • ROCm programok hibakeresése és tesztelése olyan eszközökkel, mint például ROCm Debugger és ROCm Profiler
  • ROCm programok optimalizálása technikákkal, mint például a kötegelt olvasás, gyorsítótár használata, előbetöltés és profilozás.

Összehasonlítás

  • Az OpenCL, CUDA és ROCm jellemzőinek, teljesítményüknek és kompatibilitásuknak összehasonlítása
  • GPU programok értékelése benchmark-ek és mérőszámok segítségével
  • A legjobb gyakorlatok és tippek megtanulása a GPU programozás szempontjából
  • A GPU programozás aktuális és jövőbeli trendjeinek és kihívásaik ismerete

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

Követelmények

  • C/C++ programozási nyelv és párhuzamos programozási fogalmak ismerete
  • Alapvető ismeret a számítógép architektúrájáról és memóriaszintekről
  • Tapasztalat parancssori eszközökkel és kód szerkesztőkkel

Célcsoport

  • Fejlesztők, akik különböző keretrendszereket szeretnének használni a GPU programozásban és összehasonlítani azok előnyeit, teljesítményüket és kompatibilitásukat
  • Fejlesztők, akik portálható és skálázható kódot szeretnének írni, amely különböző platformokon és eszközökön fut le
  • Programozók, akik a GPU programozás és optimalizálás kihívásait és kompromisszumait szeretnének megérteni
 28 Órák

Résztvevők száma


Ár résztvevőnként

Közelgő kurzusok

Rokon kategóriák