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 keretrendszerei és eszközei?
  • Az alkalmazáshoz megfelelő keret és eszköz kiválasztása

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

CSÍPŐ

  • Mi az a HIP?
  • Mik a HIP előnyei és hátrányai?
  • A HIP fejlesztői környezetének beállítása
  • Alapvető HIP program készítése, amely vektorösszeadást végez
  • HIP nyelv használata olyan kernelek írásához, amelyek az eszközön futnak és adatokat kezelnek
  • 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
  • HIP memóriaterületek, például globális, megosztott, állandó és lokális memóriaterületek használata az adatátvitel és a memóriaelérés optimalizálására
  • HIP végrehajtási modell használata a párhuzamosságot meghatározó szálak, blokkok és rácsok vezérlésére
  • HIP programok hibakeresése és tesztelése olyan eszközökkel, mint a ROCm Debugger és ROCm Profiler
  • HIP 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, a ROCm és a HIP funkcióinak, 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és

 21 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

AMD GPU Programming

28 Hours

ROCm for Windows

21 Hours

GPU Programming with OpenACC

28 Hours

Rokon kategóriák