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 CUDA?
- CUDA vs OpenCL vs SYCL
- A CUDA jellemzőinek és architektúrájának áttekintése
- A fejlesztői környezet beállítása
Bevezetés
- Új CUDA projekt létrehozása a Visual Studio Code használatával
- A projekt struktúrájának és fájljainak feltárása
- A program fordítása és futtatása
- Az eredmények megjelenítése printf és fprintf használatával
CUDA API
- A CUDA API szerepének megértése a hoszt programban
- CUDA API használata eszközadatok és képességek lekérdezésére
- CUDA API használata eszközmemória lefoglalására és felszabadítására
- CUDA API használata adatok másolására a hoszt és az eszköz között
- CUDA API használata kernel elindítására és szálak szinkronizálására
- CUDA API használata hibák és kivételek kezelésére
CUDA C/C++
- A CUDA C/C++ szerepének megértése az eszköz programban
- CUDA C/C++ használata kernel írására, amelyek a GPU-n futnak és adatokat kezelnek
- CUDA C/C++ adattípusok, minősítők, operátorok és kifejezések használata
- CUDA C/C++ beépített függvények használata, például matematikai, atomi, warp stb.
- CUDA C/C++ beépített változók használata, például threadIdx, blockIdx, blockDim stb.
- CUDA C/C++ könyvtárak használata, például cuBLAS, cuFFT, cuRAND stb.
CUDA memóriamodell
- A hoszt és az eszköz memóriamodelljének különbségének megértése
- CUDA memóriaterületek használata, például globális, megosztott, konstans és helyi memória
- CUDA memóriaobjektumok használata, például mutatók, tömbök, textúrák és felületek
- CUDA memória hozzáférési módok használata, például csak olvasás, csak írás, olvasás-írás stb.
- CUDA memória konzisztencia modell és szinkronizációs mechanizmusok használata
CUDA végrehajtási modell
- A hoszt és az eszköz végrehajtási modelljének különbségének megértése
- CUDA szálak, blokkok és rácsok használata a párhuzamosság meghatározására
- CUDA szálfüggvények használata, például threadIdx, blockIdx, blockDim stb.
- CUDA blokkfüggvények használata, például __syncthreads, __threadfence_block stb.
- CUDA rácsfüggvények használata, például gridDim, gridSync, kooperatív csoportok stb.
Hibakeresés
- A CUDA programok gyakori hibáinak és hibáinak megértése
- Visual Studio Code hibakereső használata változók, töréspontok, hívási verem stb. ellenőrzésére
- CUDA-GDB használata CUDA programok hibakeresésére Linuxon
- CUDA-MEMCHECK használata memóriahibák és szivárgások észlelésére
- NVIDIA Nsight használata CUDA programok hibakeresésére és elemzésére Windows-on
Optimalizálás
- A CUDA programok teljesítményét befolyásoló tényezők megértése
- CUDA összeolvadási technikák használata a memória átviteli sebesség javítására
- CUDA gyorsítótárazási és előzetes betöltési technikák használata a memória késleltetés csökkentésére
- CUDA megosztott és helyi memória technikák használata a memória hozzáférés és sávszélesség optimalizálására
- CUDA profilozási és profilozási eszközök használata a végrehajtási idő és erőforrás kihasználtság mérésére és javítására
Ö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
Közönség
- Fejlesztők, akik szeretnék megtanulni, hogyan használják a CUDA-t NVIDIA GPU-k programozására és kihasználni a párhuzamosságot
- Fejlesztők, akik nagy teljesítményű és skálázható kódot szeretnének írni, amely különböző CUDA eszközökön futtatható
- Programozók, akik szeretnék felfedezni a GPU programozás alacsony szintű aspektusait és optimalizálni kódjuk teljesítményét
28 Órák