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 é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 Órák
Vélemények (2)
Nagyon interaktív különféle példákkal, a képzés kezdete és vége között jó összetettséggel.
Jenny - Andheo
Kurzus - GPU Programming with CUDA and Python
Gépi fordítás
Edzők energia és humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurzus - NVIDIA GPU Programming - Extended
Gépi fordítás