Előadó: Dr. Juhász Zoltán, egyetemi docens
A tárgy célja, hogy részletes áttekintést nyújtson a modern GPU rendszerek architektúrájáról, programozásáról és alkalmazásairól, valamint bemutassa azokat a fejlett programozási módszereket, amelyek lehetővé teszik nagy hatékonyságú tudományos algoritmus implementációk létrehozását.
A tárgy fő témakörei az alábbiak:
- a GPU architektúra, a processzorok belső felépítése
- a CUDA programozási modell
- párhuzamos kernelek fejlesztése
- kooperáló szálak programozása
- a CUDA memória kezelés
- pipeline végrehajtás és stream programozás
- a teljesítmény elemzés és optimalizálás módszerei
- a Roofline modell
- multi-GPU rendszerek és programozásuk
- a párhuzamos CUDA függvénykönyvtárak használata
- OpenMP és OpenACC használata GPU kódgenerálás céljára
- egy kiválasztott tudományos terület GPU alkalmazási szakirodalmának áttekintése
- esettanulmányok a matematika területéről
- részletes esettanulmányok és gyakorlati programfejlesztés különböző EEG jelfeldolgozási algoritmusok és feldolgozási pipeline lépések megvalósítása és teljesítmény elemzése céljából.
Irodalom:
1. David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors, Morgan Kaufmann (2010), p. 279
2. Shane Cook: CUDA Programming, Morgan Kaufmann (2013), p. 591
3. John Cheng, Max Grossman, Ty McKercher: Professional Cuda C Programming, Wrox (2014) p. 527
4. Nvidia: Cuda C Programming Guide, https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
5. Selected research papers