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

Résztvevők száma


Ár résztvevőnként

Vélemények (2)

Közelgő kurzusok

Rokon kategóriák