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 használjunk GPU programozást?
- Mik a GPU programozás kihívásai és kompromisszumai?
- Milyen keretrendszerek és eszközök állnak rendelkezésre a GPU programozáshoz?
- A megfelelő keretrendszer és eszköz kiválasztása az alkalmazáshoz
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 hajt végre
- OpenCL API használata az eszköz információk lekérdezéséhez, eszközmemória lefoglalásához és felszabadításához, adatok másolásához a hoszt é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óriaterek, például globális, lokális, konstans és privát terület használata az adatátvitel és memória-hozzáférés optimalizálásához
- OpenCL végrehajtási modell használata a párhuzamosságot meghatározó munkaegységek, munkacsoportok és ND-tartományok szabályozásához
- Hibakeresés és tesztelés OpenCL programokon olyan eszközök használatával, mint a CodeXL
- OpenCL programok optimalizálása olyan technikák használatával, mint az összevonás, 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 hajt végre
- CUDA API használata az eszköz információk lekérdezéséhez, eszközmemória lefoglalásához és felszabadításához, adatok másolásához a hoszt é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óriaterek, például globális, megosztott, konstans és lokális terület használata az adatátvitel és memória-hozzáférés optimalizálásához
- CUDA végrehajtási modell használata a párhuzamosságot meghatározó szálak, blokkok és rácsok szabályozásához
- Hibakeresés és tesztelés CUDA programokon olyan eszközök használatával, mint a CUDA-GDB, CUDA-MEMCHECK és NVIDIA Nsight
- CUDA programok optimalizálása olyan technikák használatával, mint az összevonás, 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 hajt végre
- ROCm API használata az eszköz információk lekérdezéséhez, eszközmemória lefoglalásához és felszabadításához, adatok másolásához a hoszt é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óriaterek, például globális, lokális, konstans és privát terület használata az adatátvitel és memória-hozzáférés optimalizálásához
- ROCm végrehajtási modell használata a párhuzamosságot meghatározó szálak, blokkok és rácsok szabályozásához
- Hibakeresés és tesztelés ROCm programokon olyan eszközök használatával, 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árazás, előzetes betöltés és profilozás
HIP
- Mi a HIP?
- Mik a HIP előnyei és hátrányai?
- Fejlesztői környezet beállítása HIP-hez
- Alapvető HIP program létrehozása, amely vektorösszeadást hajt végre
- HIP nyelv használata kernel írásához, amely az eszközön fut és adatokat kezel
- HIP beépített függvények, változók és könyvtárak használata gyakori feladatok és műveletek végrehajtásához
- HIP memóriaterek, például globális, megosztott, konstans és lokális terület használata az adatátvitel és memória-hozzáférés optimalizálásához
- HIP végrehajtási modell használata a párhuzamosságot meghatározó szálak, blokkok és rácsok szabályozásához
- Hibakeresés és tesztelés HIP programokon olyan eszközök használatával, 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árazás, előzetes betöltés és profilozás
Összehasonlítás
- Az OpenCL, CUDA, ROCm és HIP 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óriahierarchiáról
- Tapasztalat parancssori eszközökkel és kódszerkesztőkkel
Célközönség
- Fejlesztők, akik meg szeretnék ismerni a GPU programozás alapjait és a GPU alkalmazások fejlesztéséhez szükséges főbb keretrendszereket és eszközöket
- Fejlesztők, akik hordozható és skálázható kódot szeretnének írni, amely különböző platformokon és eszközökön futtatható
- Programozók, akik szeretnék felfedezni a GPU programozás és optimalizálás előnyeit és kihívásait
21 Órák