Köszönjük, hogy elküldte érdeklődését! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
Köszönjük, hogy elküldte foglalását! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
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