Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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 Hours
Vélemények (1)
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
Machine Translated