Kurzusleírás

Bevezetés

  • Mi a GPU programozás?
  • Miért érdemes GPU programozást használni?
  • Mik a GPU programozás kihívásai és kompromisszumai?
  • Mik a GPU programozás keretrendszerei?
  • A megfelelő keretrendszer kiválasztása az alkalmazás számára

OpenCL

  • Mi az OpenCL?
  • Mik az OpenCL előnyei és hátrányai?
  • Fejlesztői környezet beállítása OpenCL-hez
  • Alapvető OpenCL program létrehozása, amely vektorösszeadást végez
  • OpenCL API használata eszközadatok lekérdezéséhez, eszközmemória lefoglalásához és felszabadításához, adatok másolásához a gazda és az eszköz között, kernel indításához és szálak szinkronizálásához
  • OpenCL C nyelv használata kernel írásához, amely az eszközön fut és adatokat kezel
  • OpenCL beépített függvények, változók és könyvtárak használata gyakori feladatok és műveletek végrehajtásához
  • OpenCL memóriaterületek, például globális, lokális, konstans és privát használata az adatátvitel és memória-hozzáférés optimalizálásához
  • OpenCL végrehajtási modell használata a munkaegységek, munkacsoportok és ND-tartományok szabályozásához, amelyek meghatározzák a párhuzamosságot
  • OpenCL programok hibakeresése és tesztelése olyan eszközökkel, mint a CodeXL
  • OpenCL programok optimalizálása olyan technikákkal, mint a coalescing, gyorsítótárazás, előzetes betöltés és profilozás

CUDA

  • Mi a CUDA?
  • Mik a CUDA előnyei és hátrányai?
  • Fejlesztői környezet beállítása CUDA-hoz
  • Alapvető CUDA program létrehozása, amely vektorösszeadást végez
  • CUDA API használata eszközadatok lekérdezéséhoz, eszközmemória lefoglalásához és felszabadításához, adatok másolásához a gazda és az eszköz között, kernel indításához és szálak szinkronizálásához
  • CUDA C/C++ nyelv használata kernel írásához, amely az eszközön fut és adatokat kezel
  • CUDA beépített függvények, változók és könyvtárak használata gyakori feladatok és műveletek végrehajtásához
  • CUDA memóriaterületek, például globális, megosztott, konstans és lokális használata az adatátvitel és memória-hozzáférés optimalizálásához
  • CUDA végrehajtási modell használata a szálak, blokkok és rácsok szabályozásához, amelyek meghatározzák a párhuzamosságot
  • CUDA programok hibakeresése és tesztelése olyan eszközökkel, mint a CUDA-GDB, CUDA-MEMCHECK és NVIDIA Nsight
  • CUDA programok optimalizálása olyan technikákkal, mint a coalescing, gyorsítótárazás, előzetes betöltés és profilozás

ROCm

  • Mi a ROCm?
  • Mik a ROCm előnyei és hátrányai?
  • Fejlesztői környezet beállítása ROCm-hez
  • Alapvető ROCm program létrehozása, amely vektorösszeadást végez
  • ROCm API használata eszközadatok lekérdezéséhez, eszközmemória lefoglalásához és felszabadításához, adatok másolásához a gazda és az eszköz között, kernel indításához és szálak szinkronizálásához
  • ROCm C/C++ nyelv használata kernel írásához, amely az eszközön fut és adatokat kezel
  • ROCm beépített függvények, változók és könyvtárak használata gyakori feladatok és műveletek végrehajtásához
  • ROCm memóriaterületek, például globális, lokális, konstans és privát használata az adatátvitel és memória-hozzáférés optimalizálásához
  • ROCm végrehajtási modell használata a szálak, blokkok és rácsok szabályozásához, amelyek meghatározzák a párhuzamosságot
  • ROCm programok hibakeresése és tesztelése olyan eszközökkel, mint a ROCm Debugger és ROCm Profiler
  • ROCm programok optimalizálása olyan technikákkal, mint a coalescing, gyorsítótárazás, előzetes betöltés és profilozás

Összehasonlítás

  • Az OpenCL, CUDA és ROCm funkcióinak, teljesítményének és kompatibilitásának összehasonlítása
  • GPU programok értékelése benchmarkok és metrikák segítségével
  • A GPU programozás legjobb gyakorlatainak és tippjeinek megismerése
  • A GPU programozás aktuális és jövőbeli trendjeinek és kihívásainak feltárása

Ö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álhatnak különböző keretrendszereket a GPU programozásban, és össze szeretnék hasonlítani azok funkcióit, teljesítményét és kompatibilitását
  • Fejlesztők, akik hordozható és skálázható kódot szeretnének írni, amely különböző platformokon és eszközökön fut
  • Programozók, akik szeretnék felfedezni a GPU programozás és optimalizálás kihívásait és kompromisszumait
 28 Órák

Résztvevők száma


Ár per résztvevő

Közelgő kurzusok

Rokon kategóriák