K-INFO
HU
EN
Belépés

GPGPU alkalmazások

GPGPU Applications
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
GPGPU alkalmazások
GPGPU Applications
Tantárgykód BMEVIIIMB01
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 1 0
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 4
Tantárgyfelelős
Szécsi László
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Irányítástechnika és Informatika Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://cg.iit.bme.hu/portal/oktatott-targyak/gpgpu-alkalmazasok
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

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 tantárgy a grafikus kártyákban rejlő számítási teljesítmények általános célú felhasználását mutatja be a GPU-k általánosított modelljén keresztül. A tantárgy keretében bemutatásra kerül a grafikus hardver felépítése és az általános célú számításokra alkalmazható OpenCL környezet. Bemutatásra kerülnek a masszívan párhuzamos architektúrán hatékonyan implementálható algoritmusok gyakorlati példákon keresztül.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

A tantárgy elméleti és gyakorlati órákból áll. A gyakorlati órákon az elméleten elhangzott anyag gyakorlati megvalósítását végezzük el egy példaprogramon keresztül. A gyakorlaton letölthető kiindulási projekteket egészítünk ki. A kiegészítendő kódrészleteket a letölthető fóliasor részletesen tartalmazza. A kódsorok pontos magyarázata a gyakorlatokon történik.

Tanulástámogató anyagok

Online források
A előadások fóliái és gyakorlatokra a felkészülést segítő írásos anyagok letölthetők a tárgyhonlapról.

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programozás, adatstruktúrák, algoritmusok, matematika
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programozás, adatstruktúrák, algoritmusok, matematika
Általános szabályok
Követelmények: 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. Pótlási lehetőségek: A házi feladat a pótlási héten pótlólag beadható.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
A tantárgy elvégzéséhez C++ programozási ismeret szükséges.
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.