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 a CUDA?
- CUDA kontra OpenCL vs SYCL
- A CUDA jellemzőinek és architektúrájának áttekintése
- A Fejlesztési Környezet kialakítása
Elkezdeni
- Új CUDA projekt létrehozása Visual Studio kóddal
- A projekt szerkezetének és fájljainak feltárása
- A program összeállítása és futtatása
- A kimenet megjelenítése a printf és fprintf használatával
CUDA API
- A CUDA API szerepének megértése a gazdagép programban
- CUDA API használata az eszközinformációk és képességek lekérdezésére
- CUDA API használata az eszközmemória lefoglalására és felszabadítására
- CUDA API használata adatok másolására a gazdagép és az eszköz között
- CUDA API használata kernelek indításához és szálak szinkronizálásához
- CUDA API használata a hibák és kivételek kezelésére
CUDA C/C++
- A CUDA C/C++ szerepének megértése az eszközprogramban
- A CUDA C/C++ használata olyan kernelek írásához, amelyek az GPU-en futnak és adatokat kezelnek
- CUDA C/C++ adattípusok, minősítők, operátorok és kifejezések használata
- A CUDA C/C++ beépített függvényeinek használata, például matematikai, atomi, vetemítési 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ória modell
- A gazdagép és az eszközmemória modellek közötti különbség megértése
- CUDA memóriaterületek használata, például globális, megosztott, állandó és helyi
- CUDA memóriaobjektumok, például mutatók, tömbök, textúrák és felületek használata
- CUDA memória-elérési módok használata, például csak olvasható, csak írható, olvasási-írási stb.
- CUDA memória konzisztencia modell és szinkronizálási mechanizmusok használata
CUDA végrehajtási modell
- A gazdagép és az eszköz végrehajtási modelljei közötti különbség megértése
- CUDA-szálak, blokkok és rácsok használata a párhuzamosság meghatározásához
- 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ácsfunkciók használata, például gridDim, gridSync, együttműködési csoportok stb.
Hibakeresés
- A CUDA programok gyakori hibáinak és hibáinak megértése
- A Visual Studio kódhibakereső használata változók, töréspontok, veremhívások stb. vizsgálatához.
- CUDA-GDB használata a CUDA programok hibakeresésére a Linux webhelyen
- A CUDA-MEMCHECK használata memóriahibák és szivárgások észlelésére
- Az NVIDIA Nsight használata a CUDA programok hibakeresésére és elemzésére Windows rendszeren
Optimalizálás
- A CUDA programok teljesítményét befolyásoló tényezők megértése
- CUDA egyesülési technikák használata a memória átviteli sebességének javítására
- CUDA gyorsítótárazási és előzetes letöltési technikák használata a memória késleltetésének csökkentése érdekében
- CUDA megosztott memória és helyi memória technikák használata a memóriaelérések és a sávszélesség optimalizálására
- CUDA profilalkotási és profilkészítő eszközök használata a végrehajtási idő és az erőforrás-kihasználás mérésére és javítására
Ö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 a CUDA használatát az NVIDIA GPU programozására és a párhuzamosságuk kihasználására
- Fejlesztők, akik nagy teljesítményű és méretezhető kódot szeretnének írni, amely különböző CUDA-eszközökön futhat
- Programozók, akik szeretnék felfedezni a GPU programozás alacsony szintű aspektusait, és optimalizálni szeretnék kódteljesítményüket
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