Köszönjük, hogy elküldte érdeklődését! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
Köszönjük, hogy elküldte foglalását! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
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