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

Résztvevők száma


Ár per résztvevő

Közelgő kurzusok

Rokon kategóriák