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
- Mivel a GPU programozás?
- Miért érdemes GPU programozást használni?
- Mi a kihívás és kompromisszum a GPU programozásban?
- Milyen keretrendszerek léteznek a GPU programozáshoz?
- Melyik keretrendszer a legalkalmasabb alkalmazásra?
OpenCL
- Mi az OpenCL?
- Milyen előnyei és hátrányai vannak az OpenCL-nek?
- Fejlesztői környezet beállítása az OpenCL-hez
- Alapvető OpenCL program létrehozása vektorszámlálás elvégzéséhez
- OpenCL API használata az eszköz információinak lekérdezéséhez, a memóriahely foglalásához és felszabadításához, az adatok másolásához a gazdagétról az eszközhöz, kernel indításához és szálak szinkronizálásához
- OpenCL C nyelv használata kernel létrehozásához, amelyek a készülékön futnak és az adatokkal működnek
- OpenCL beépített függvényeinek, változóinak és könyvtárainak használata a gyakori feladatok és műveletek elvégzéséhez
- OpenCL memóriaterületeinek, mint például globális, helyi, állandó és privát használata adataik áthelyezésének és memóriahozzáférésük optimalizálásához
- OpenCL végrehajtási modell használata a munkaelemek, munkacsoportok és ND-intervallumok irányításához, amelyek meghatározzák a párhuzamosságot
- OpenCL programok hibakeresése és tesztelése olyan eszközökkel, mint például CodeXL
- OpenCL programok optimalizálása technikákkal, mint például a kötegelt olvasás, gyorsítótár használata, előbetöltés és profilozás.
CUDA
- Mi a CUDA?
- Milyen előnyei és hátrányai vannak a CUDA-nak?
- Fejlesztői környezet beállítása a CUDA-hoz
- Alapvető CUDA program létrehozása vektorszámlálás elvégzéséhez
- CUDA API használata az eszköz információinak lekérdezéséhez, a memóriahely foglalásához és felszabadításához, az adatok másolásához a gazdagétról az eszközhöz, kernel indításához és szálak szinkronizálásához
- CUDA C/C++ nyelv használata kernel létrehozásához, amelyek a készülékön futnak és az adatokkal működnek
- CUDA beépített függvényeinek, változóinak és könyvtárainak használata a gyakori feladatok és műveletek elvégzéséhez
- CUDA memóriaterületeinek, mint például globális, megosztott, állandó és helyi használata adataik áthelyezésének és memóriahozzáférésük optimalizálásához
- CUDA végrehajtási modell használata a szálak, blokkok és rácsok irányításához, amelyek meghatározzák a párhuzamosságot
- CUDA programok hibakeresése és tesztelése olyan eszközökkel, mint például CUDA-GDB, CUDA-MEMCHECK és NVIDIA Nsight
- CUDA programok optimalizálása technikákkal, mint például a kötegelt olvasás, gyorsítótár használata, előbetöltés és profilozás.
ROCm
- Mi az ROCm?
- Milyen előnyei és hátrányai vannak a ROCm-nak?
- Fejlesztői környezet beállítása az ROCm-hoz
- Alapvető ROCm program létrehozása vektorszámlálás elvégzéséhez
- ROCm API használata az eszköz információinak lekérdezéséhez, a memóriahely foglalásához és felszabadításához, az adatok másolásához a gazdagétról az eszközhöz, kernel indításához és szálak szinkronizálásához
- ROCm C/C++ nyelv használata kernel létrehozásához, amelyek a készülékön futnak és az adatokkal működnek
- ROCm beépített függvényeinek, változóinak és könyvtárainak használata a gyakori feladatok és műveletek elvégzéséhez
- ROCm memóriaterületeinek, mint például globális, helyi, állandó és privát használata adataik áthelyezésének és memóriahozzáférésük optimalizálásához
- ROCm végrehajtási modell használata a szálak, blokkok és rácsok irányításához, amelyek meghatározzák a párhuzamosságot
- ROCm programok hibakeresése és tesztelése olyan eszközökkel, mint például ROCm Debugger és ROCm Profiler
- ROCm programok optimalizálása technikákkal, mint például a kötegelt olvasás, gyorsítótár használata, előbetöltés és profilozás.
Összehasonlítás
- Az OpenCL, CUDA és ROCm jellemzőinek, teljesítményüknek és kompatibilitásuknak összehasonlítása
- GPU programok értékelése benchmark-ek és mérőszámok segítségével
- A legjobb gyakorlatok és tippek megtanulása a GPU programozás szempontjából
- A GPU programozás aktuális és jövőbeli trendjeinek és kihívásaik ismerete
Összefoglalás és következő lépések
Követelmények
- C/C++ programozási nyelv és párhuzamos programozási fogalmak ismerete
- Alapvető ismeret a számítógép architektúrájáról és memóriaszintekről
- Tapasztalat parancssori eszközökkel és kód szerkesztőkkel
Célcsoport
- Fejlesztők, akik különböző keretrendszereket szeretnének használni a GPU programozásban és összehasonlítani azok előnyeit, teljesítményüket és kompatibilitásukat
- Fejlesztők, akik portálható és skálázható kódot szeretnének írni, amely különböző platformokon és eszközökön fut le
- Programozók, akik a GPU programozás és optimalizálás kihívásait és kompromisszumait szeretnének megérteni
28 Órák