Kurzusleírás

Bevezetés

  • Mi az OpenACC?
  • OpenACC vs OpenCL vs CUDA vs SYCL
  • Az OpenACC funkcióinak és architektúrájának áttekintése
  • A fejlesztői környezet beállítása

Bevezetés

  • OpenACC projekt létrehozása a Visual Studio Code-ban
  • A projekt szerkezetének és fájljainak felfedezése
  • A program fordítása és futtatása
  • Kimenet megjelenítése printf és fprintf segítségével

OpenACC direktívák és záradékok

  • Az OpenACC direktívák és záradékok megértése
  • Párhuzamos régiók létrehozása párhuzamos direktívákkal
  • Fordító által kezelt párhuzamosság kernels direktívákkal
  • Hurkok párhuzamosítása loop direktívákkal
  • Adatmozgatás kezelése data direktívákkal
  • Adatszinkronizálás update direktívákkal
  • Adathasználat javítása cache direktívákkal
  • Eszközfüggvények létrehozása routine direktívákkal
  • Események szinkronizálása wait direktívákkal

OpenACC API

  • Az OpenACC API szerepének megértése
  • Eszköz információk és képességek lekérdezése
  • Eszköz számának és típusának beállítása
  • Hibák és kivételek kezelése
  • Események létrehozása és szinkronizálása

OpenACC könyvtárak és interoperabilitás

  • Az OpenACC könyvtárak és interoperabilitás megértése
  • Matematikai, véletlen és komplex számok könyvtárainak használata
  • Integráció más modellekkel (CUDA, OpenMP, MPI)
  • Integráció GPU könyvtárakkal (cuBLAS, cuFFT)

OpenACC eszközök

  • Az OpenACC eszközök megértése a fejlesztésben
  • OpenACC programok profilozása és hibakeresése
  • Teljesítményelemzés PGI Compiler, NVIDIA Nsight Systems, Allinea Forge segítségével

Optimalizálás

  • Az OpenACC programok teljesítményét befolyásoló tényezők
  • Adat lokalitás optimalizálása és átvitel csökkentése
  • Hurkok párhuzamosításának és összevonásának optimalizálása
  • Kernel párhuzamosításának és összevonásának optimalizálása
  • Vektorizáció és automatikus hangolás optimalizálása

Összefoglalás és következő lépések

Követelmények

  • A C/C++ vagy Fortran nyelv és a párhuzamos programozás alapjainak ismerete
  • Alapvető ismeretek a számítógép architektúráról és 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 az OpenACC-t heterogén eszközök programozására és párhuzamosságuk kihasználására
  • Fejlesztők, akik hordozható és skálázható kódot szeretnének írni, amely különböző platformokon és eszközökön futhat
  • Programozók, akik szeretnék felfedezni a heterogén programozás magas szintű aspektusait és optimalizálni kódjuk hatékonyságát
 28 Órák

Résztvevők száma


Ár per résztvevő

Közelgő kurzusok

Rokon kategóriák