Skip navigation

CUDA programozás pédatár

Célok

Ez a példatár a CUDA progrmozás megértéséhez tartalmaz példaprogramokat.

A tananyag a Szegedi Tudományegyetem Informatika képzésében résztvevő hallgatóknak tartott "GPGPU: Grafikus processzorok felhasználása általános célú számításokra" című kurzus gyakorlati példáit tartalmazza.

A példaprogramok megértése után az olvasó képes lesz nagyban párhuzamos programokat írni, amelyek a számítás egy részét a számítógép GPU-ján futtatják.Az ilyen típusú programok bizonyos műveleteket (lokális képfeldolgozási műveletek, grafikai számítások, lineáris algebra, numerikus módszerek, kriptovaluta kezelés, stb.) nagyságrendekkel képes felgyorsítani.

Szükséges előismeretek

A példatár feltételezi, hogy az olvasó tisztában van a C++ programozás alapjaival, és néhány kapcsolódó programozástechnikai alapismerettel, azok között is:

  • A C++ nyelv szintaxisával és szemantikájával,
  • A C++ kódok fordításának menetével, és lépéseivel,
  • A 2D képek feldolgozásának alapjaival (digitális kép számítógépes reprezentációja, és pixelek kezelése).

A feladatsor végén található 2 lecke a GPU-k MATLAB-ban és Python-ban való programozását írja le. Ezen leckék igénylik az alapvető MATLAB, és Python programozási ismereteket is.

Szükséges Eszközök

A programozás elkezdéséhez szükség van néhány eszközze.

Az első szükséges eszköz a CUDA Toolkit, amelyet az olvasó megtlalál az NVIDIA hivatalos oldalán.

A programozáshoz szükség lesz egy fordítóra is. A tananyagbban Visual Studio-t fogjuk használni, amelynek ingyenes Community verziója elérhető a Microsoft oldalán.

A fejlesztés előtt érdemes tájékozódni meglevő eszközök képességeiről:

  • A CUDA programok futtatásához NVIDIA GPU-ra van szükség.
  • A nagyon régi NVIDIA GPU-k nem támogatják az újabb CUDA fejlesztőkörnyezeteket, így érdemes megnézni, hogy mire képe a GPU-nk.
    • Ezen a honlapon elérhető a CUDA GPU-k egy listája. Ennen kikeresve az általunk hassznált GPU-t a 3.0-nál kisebb "compute capibility"-vel rendelkező GPU-k legfeljebb a CUDA 8.0-t támogatják.
  • A CUDA Toolkit egyes verziói csak bizonyos Visual Studio verziókkal kompatibilisek alapértelmezetten. Érdemes egyeztetni, hogy mely keretrendszert és CUDA-t használjuk.