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 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

AMD GPU Programming

28 Hours

ROCm for Windows

21 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with OpenACC

28 Hours

Rokon kategóriák