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