Kurzusleírás

Bevezetés

  • Mi az GPU programozás?
  • Miért használjuk az GPU programozást?
  • Mi az GPU programozás kihívásai és kompromisszumai?
  • Milyen keretrendszerek léteznek az GPU programozáshoz?
  • A megfelelő keretrendszer kiválasztása az alkalmazáshoz

OpenCL

  • Mi az OpenCL?
  • Mi az OpenCL előnyei és hátrányai?
  • Az OpenCL fejlesztői környezet beállítása
  • Egy alapvető OpenCL program létrehozása, amely vektorösszeadásra képes
  • Az OpenCL API használata az eszközinformáció lekérdezéséhez, az eszközmemória foglalásához és felszabadításához, az adatok másolásához a host és az eszköz között, a kernel indításához, és a szálak szinkronizálásához
  • Az OpenCL C nyelv használata a kernel írásához, amely az eszközön fut és az adatokat manipulálja
  • Az OpenCL beépített funkciók, változók és könyvtárak használata a közönséges feladatok és műveletek végrehajtásához
  • Az OpenCL memóriaterületek használata, például globális, helyi, állandó és privát, az adatátvitel és a memóriahozzáférés optimalizálásához
  • Az OpenCL végrehajtási modell használata a munkaelemek, munka-csoportok és ND-rangok kontrolljához, amelyek a párhuzamosítást határozzák meg
  • Az OpenCL programok hibakeresése és tesztelése eszközök használatával, például CodeXL
  • Az OpenCL programok optimalizálása technikákkal, például csoportosítás, gyorsítótár-használat, előzetes betöltés és profilozás

CUDA

  • Mi az CUDA?
  • Mi az CUDA előnyei és hátrányai?
  • Az CUDA fejlesztői környezet beállítása
  • Egy alapvető CUDA program létrehozása, amely vektorösszeadásra képes
  • Az CUDA API használata az eszközinformáció lekérdezéséhez, az eszközmemória foglalásához és felszabadításához, az adatok másolásához a host és az eszköz között, a kernel indításához, és a szálak szinkronizálásához
  • Az CUDA C/C++ nyelv használata a kernel írásához, amely az eszközön fut és az adatokat manipulálja
  • Az CUDA beépített funkciók, változók és könyvtárak használata a közönséges feladatok és műveletek végrehajtásához
  • Az CUDA memóriaterületek használata, például globális, közös, állandó és helyi, az adatátvitel és a memóriahozzáférés optimalizálásához
  • Az CUDA végrehajtási modell használata a szálak, blokkok és rácsok kontrolljához, amelyek a párhuzamosítást határozzák meg
  • A CUDA programok hibakeresése és tesztelése eszközökkel, például CUDA-GDB, CUDA-MEMCHECK és NVIDIA Nsight
  • A CUDA programok optimalizálása technikákkal, például csoportosítás, gyorsítótár-használat, előzetes betöltés és profilozás

ROCm

  • Mi az ROCm?
  • Mi az ROCm előnyei és hátrányai?
  • Az ROCm fejlesztői környezet beállítása
  • Egy alapvető ROCm program létrehozása, amely vektorösszeadásra képes
  • Az ROCm API használata az eszközinformáció lekérdezéséhez, az eszközmemória foglalásához és felszabadításához, az adatok másolásához a host és az eszköz között, a kernel indításához, és a szálak szinkronizálásához
  • Az ROCm C/C++ nyelv használata a kernel írásához, amely az eszközön fut és az adatokat manipulálja
  • Az ROCm beépített funkciók, változók és könyvtárak használata a közönséges feladatok és műveletek végrehajtásához
  • Az ROCm memóriaterületek használata, például globális, helyi, állandó és privát, az adatátvitel és a memóriahozzáférés optimalizálásához
  • Az ROCm végrehajtási modell használata a szálak, blokkok és rácsok kontrolljához, amelyek a párhuzamosítást határozzák meg
  • A ROCm programok hibakeresése és tesztelése eszközökkel, például ROCm Debugger és ROCm Profiler
  • A ROCm programok optimalizálása technikákkal, például csoportosítás, gyorsítótár-használat, előzetes betöltés és profilozás

Összehasonlítás

  • Az OpenCL, CUDA és ROCm tulajdonságainak, teljesítményének és kompatibilitásának összehasonlítása
  • Az GPU programok értékelése benchmarkek és mérőszámok alapján
  • Az GPU programozás legjobban gyakorolt módszerei és tanácsok
  • Az GPU programozás jelenlegi és jövőbeli trendjeinek és kihívásainak feltárása

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

Követelmények

  • Az C/C++ programozási nyelv és a párhuzamos programozás alapjai megértése
  • Alapvető ismeretek a számítógép architektúrájáról és a memóriahierarchiáról
  • Tapasztalat parancssori eszközökkel és kódszerkesztőkkel

Célközönség

  • Fejlesztők, akik meg akarnak tanulni, hogy különböző keretrendszereket használjanak GPU programozásra, és összehasonlítsák azok funkcióit, teljesítményét és kompatibilitását
  • Fejlesztők, akik portable és skalálható kódot szeretnének írni, amely különböző platformokon és eszközöken futtatható
  • Programozók, akik meg akarnak tanulni a GPU programozás és optimalizálás kihívásairól és kompromisszumairól
 28 Órák

Résztvevők száma


Ár résztvevőnként

Közelgő kurzusok

Rokon kategóriák