Belépés címtáras azonosítással
magyar nyelvű adatlap
angol nyelvű adatlap
GPGPU alkalmazások
A tantárgy angol neve: GPGPU Applications
Adatlap utolsó módosítása: 2014. október 2.
A tantárgy elvégzéséhez C++ programozási ismeret szükséges.
1. A GPU felépítésének és működésének áttekintése az általános célú programozhatóság szempontjából.
Az előadás keretében áttekintésre kerül a grafikus hardver masszívan párhuzamos architektúrája, a árhuzamos programozás alapvető kérdései és az architektúra korlátaiból fakadó megkötések. Bemutatásra kerülnek a grafikus hardver programozására felhasználható környezetek.
2. Bevezetés az OpenCL framework használatába.
Az előadás keretében bemutatásra kerül a grafikus hardver általános célú programozására alkalmas OpenCL környezet. Áttekintjük az OpenCL virtuális gép platform, memória és program modelljét, illetve az OpenCL C nyelvet és a hozzá kapcsolódó CPU oldali API-t.
3. Nagyméretű adathalmazokon végzett műveletek GPGPU támogatása.
Az előadás keretében bemutatásra kerülnek a nagyméretű adathalmazon végezhető vektorfeldolgozási műveletek. Áttekintjük a szóró és gyűjtő típusú algoritmusok párhuzamosíthatóságát, korlátaikat és a gyakorlati megvalósításukat.
4. Alapvető párhuzamos primitívek megvalósításának kérdései OpenCL környezetben.
Az előadás keretében bemutatásra kerülnek az alapvető párhuzamos primitívek, amelyekből hatékonyan skálázódó algoritmusok építhetőek. A bemutatott primitívek a map, reduce, amplify, histogram, scan és compact.
5. Lineáris egyenletrendszerek megoldása.
Az előadás keretében bemutatjuk a lineáris egyenletrendszerek megoldására alkalmazható párhuzamos algoritmusokat. Áttekintjük a megoldás során alkalmazott mátrix és vektor műveletek implementációs kérdéseit, illetve a nagyméretű ritka mátrixok hatékony tárolását és a rajtuk végezhető műveleteket.
6. Fizikai szimuláció a GPU-n.
Az előadás keretében bemutatjuk a GPU-n hatékonyan számítható fizikai modelleket. Megvizsgáljuk az algoritmusok hatékonyságát és skálázódását.
7. Párhuzamos rendező algoritmusok.
Az előadás keretében bemutatjuk a párhuzamos architektúrákon alkalmazható rendező algoritmusokat: brick sort, radix sort, merge sort és speciális quick sort. Az előadás során összehasonlítjuk a párhuzamos rendezéseket a klasszikus rendező algoritmusokkal művelet szám és futási idő szempontjából.
8. Gráfok szélességi bejárása és alkalmazásai.
Az előadás során bemutatásra kerülnek a párhuzamos architektúrákon alkalmazható gráfbejáró algoritmusok és azok alkalmazási lehetőségei. A bemutatott algoritmusokat összehasonlítjuk a CPU-n alkalmazható hatékony gráf algoritmusokkal művelet igény és futási idő szempontjából.
9. Párhuzamos hash alapú algoritmusok.
Az előadás során bemutatjuk a párhuzamos architektúrákon alkalmazható hash alapú algoritmusokat és azok alkalmazási lehetpségeit. A bemutatott algoritmusokat összehasonlítjuk a CPU-n alkalmazható hatékony hash alapú algoritmusokkal művelet igény és futási idő szempontjából.
10. Monte Carlo módszerek a GPU-n.
Az előadás során áttekintjük a Monte Carlo alapú módszerek implementációs kérdéseit és az alkalmazási lehetőségeket. A bemutatásra kerülő algoritmusok kulcskérdése a megfelelő minőségű véletlen számok hatékony generálása, ezért az előadás keretében bemutatjuk a párhuzamos architektúrákon alkalmazható álvéletlen és kvázi véletlen generátorokat.
11. Adjungált Monte Carlo módszerek.
Az előadás keretében bemutatjuk az adjungált Monte Carlo alapú számítások kérdéseit. Áttekintjük az elméleti követelményeket és a gyűjtés típusú algoritmusok implementációs kérdéseit a GPU alapú PET rekonstrukción keresztül.
12. A GPGPU algoritmusok optimalizációs kérdései.
Az előadás keretében áttekintjük a párhuzamos algoritmusok teljesítmény mérésének és optimalizációjának kérdéseit. A rendelkezésre elméleti és gyakorlati metrikák segítségével bemutatjuk az algoritmikus optimalizálás lehetőségeit és áttekintjük a korábban bemutatott főbb algoritmusok korlátait.
13. Hatékony együttműködés a grafikus API-val (OpenGL).
Az előadás keretében bemutatjuk az OpenCL környezet összekapcsolásának lehetőségeit az OpenGL grafikus API-val. A bemutatott módszerek segítségével az általános célú számításokhoz hatékony vizualizáció készíthető, amely nagyban segítheti az eredmények értékelését.
14. Multi GPU és elosztott rendszerek speciális igényei.
Az előadás keretében bemutatjuk a több GPU-val rendelkező rendszerek programozásának kérdéseit. Áttekintjük az elosztott működésből fakadó korlátokat és az általánosan alkalmazható technikákat.
A szorgalmi időszakban: A félév végi aláírás feltétele a tárgy anyagához kapcsolódó házi feladat (otthoni feladat) megfelelő színvonalú elkészítése, és az előadások látogatása. A házi feladat a vizsgajegybe beszámít 1/3 súllyal.