Kurzusleírás

Bevezetés

  • Mi az GPU programozás?
  • Miért érdemes az GPU programozást használni?
  • Melyek a GPU programozás kihívásai és kompromisszumai?
  • Melyek a GPU programozás keretei?
  • A megfelelő keret kiválasztása az alkalmazáshoz

OpenCL

  • Mi az a OpenCL?
  • Melyek a OpenCL előnyei és hátrányai?
  • A OpenCL fejlesztői környezetének beállítása
  • Vektor összeadást végrehajtó alap OpenCL program készítése
  • OpenCL API használata eszközinformációk lekérdezésére, eszközmemória lefoglalására és felszabadítására, adatok másolására a gazdagép és az eszköz között, kernelek indítására és szálak szinkronizálására
  • A OpenCL C nyelv használata olyan kernelek írásához, amelyek az eszközön futnak és adatokat kezelnek
  • OpenCL 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
  • OpenCL memóriaterületek, például globális, lokális, állandó és privát memóriaterületek használata az adatátvitel és a memóriaelérés optimalizálására
  • A OpenCL végrehajtási modell használata a párhuzamosságot meghatározó munkaelemek, munkacsoportok és ND-tartományok vezérlésére
  • Programok hibakeresése és tesztelése OpenCL olyan eszközökkel, mint a CodeXL
  • Programok optimalizálása OpenCL olyan technikák használatával, mint az összevonás, gyorsítótár, előzetes letöltés és profilalkotás

CUDA

  • Mi az a CUDA?
  • Mik a CUDA előnyei és hátrányai?
  • A CUDA fejlesztői környezetének beállítása
  • Alapvető CUDA program létrehozása, amely vektor összeadást végez
  • CUDA API használata eszközinformációk lekérdezésére, eszközmemória lefoglalására és felszabadítására, adatok másolására a gazdagép és az eszköz között, kernelek indítására és szálak szinkronizálására
  • A CUDA C/C++ nyelv használata olyan kernelek írásához, amelyek az eszközön futnak és adatokat kezelnek
  • CUDA 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
  • CUDA memóriaterületek, például globális, megosztott, állandó és helyi memóriaterületek használata az adatátvitel és a memóriaelérés optimalizálására
  • CUDA végrehajtási modell használata a párhuzamosságot meghatározó szálak, blokkok és rácsok vezérlésére
  • CUDA programok hibakeresése és tesztelése olyan eszközökkel, mint a CUDA-GDB, CUDA-MEMCHECK és az NVIDIA Nsight
  • CUDA programok optimalizálása olyan technikák használatával, mint az összevonás, gyorsítótár, előletöltés és profilalkotás

ROCm

  • Mi az a ROCm?
  • Melyek a ROCm előnyei és hátrányai?
  • A ROCm fejlesztői környezetének beállítása
  • Alapvető ROCm program létrehozása, amely vektorösszeadást végez
  • A ROCm API használata eszközinformációk lekérdezésére, eszközmemória lefoglalására és felszabadítására, adatok másolására a gazdagép és az eszköz között, kernelek indítására és szálak szinkronizálására
  • A ROCm C/C++ nyelv használata olyan kernelek írásához, amelyek az eszközön futnak és adatokat kezelnek
  • ROCm 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 memóriaterületek, például globális, lokális, állandó és privát memóriaterületek használata az adatátvitel és a memóriaelérés optimalizálására
  • ROCm végrehajtási modell használata a párhuzamosságot meghatározó szálak, blokkok és rácsok vezérlésére
  • 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ák használatával, mint az összevonás, gyorsítótár, előletöltés és profilalkotás

Összehasonlítás

  • A OpenCL, a CUDA és a ROCm szolgáltatásainak, teljesítményének és kompatibilitásának összehasonlítása
  • GPU programok kiértékelése benchmarkok és metrikák segítségével
  • A legjobb gyakorlatok és tippek elsajátítása a GPU programozáshoz
  • A GPU programozás jelenlegi és jövőbeli trendjeinek és kihívásainak feltárása

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

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, hogyan használhatnak különböző keretrendszereket GPU programozáshoz, és hasonlítsák össze szolgáltatásaikat, teljesítményüket és kompatibilitásukat
  • Fejlesztők, akik hordozható és méretezhető kódot szeretnének írni, amely különböző platformokon és eszközökön futhat
  • Programozók, akik szeretnék felfedezni a GPU programozás és optimalizálás kompromisszumait és kihívásait
 28 Órák

Résztvevők száma


Ár résztvevőnként

Vélemények (2)

Közelgő kurzusok

Rokon kategóriák