K-INFO
HU
EN
Login

General Purpose Computing on Graphics Processing Units

GPU-k általános célú programozása
A tantárgyleírás hatályossága
Hatályosság kezdete:
Hatályosság vége:
Subject name (Hungarian, English)
GPU-k általános célú programozása
General Purpose Computing on Graphics Processing Units
Subject code BMEVIIIAV00
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 0 2
type (linked/independent) derived course
Assessment type vizsga
Credits 4
Subject coordinator
Dr. Tóth Balázs György
Responsible department
Faculty
Subject website http://cg.iit.bme.hu/portal/node/311
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

1. Előadás: A GPU története, fejlődési lépései: Fix-funkciójú csővezeték, képszintézis API-k programozható csúcspont, geometria és pixel árnyalóval. A beépített elemek funkciói (raszterizáció, mélység teszt, alfa összemosás). Labor: Ismerkedés a fejlesztő eszközzel, egyszerű grafikus programok készítése

 

2. OpenGL/Cg API felépítése és használata. Labor: képfeldolgozási műveletek, szűrés, éldetektálás, tone-mapping, mélységélesség párhuzamos megvalósítása.

3. GLSL környezet. Labor: Keresés és rendezés. Bitonic keresés, négyes fa, fontosság szerinti mintavételezés.

4. Direct3D/HLSL API felépítése és használata. Labor: Sugárkövetés megvalósítása a GPU-n.

5. Monte Carlo módszerek a GPU-n. Labor: Véletlenszám generálás, integrálás, globális illumináció.

6. CUDA felépítése, CUDA programok írása. Labor: skalármezők izofelületeinek megkeresére és megjelenítése. 

7. Lineáris algebrai műveletek CUDA-val. Szálak szinkronizálása. Párhuzamosítási stratégiák: gyűjtés és szórás. Oszthatatlan műveletek: Labor: nagy vektorok skaláris szorzása, mátrix-vektor szorzás, lineáris egyenlet megoldása.

8. Fizikai szimuláció GPU-n I.  Folytonos problémák diszkretizálási lehetőségei, Lagrange és Euler módszerek. Részecskék. Differenciál operátorok és diszkrét változataik. Labor: többtest probléma megoldása.

9. Fizikai szimuláció II: digitális holográfia. Labor: holográf program elkészítése.

9. Fizikai szimuláció III: folyadékáramlás szimulációja. Navier-Stokes egyenlet értelmezése és diszkrét változata. Időbeli differenciálegyenletek megoldása. Előre és visszafelé haladó Euler módszer. Térfogati adatok megjelenítése sugármasírozással.

10. Tőzsdei opcióárazás, statisztikai műveletek GPU-n. Monte Carlo rizikó elemzés. Labor: opcióárazás és egy tőzsdei modell megoldása.

11. Tomográfiás rekonstrukció GPU-n I. Labor: szűrt visszavetítés.

12. Tomográfiás rekonstrukció GPU-n. A tomográfiás rekonstrukcó alapjai és párhuzamosítása. Labor: előre-vetítő operatáror implementálása.

13. OpenCL: Az OpenCL és a CUDA különbségei. Szabványosítási törekvések, nem GPU alapú párhuzamos rendszerek alkalmazásai. Labor: Lineáris algebra OpenCL-ben.

14. Házi feladatok bemutatása és beszámolók. 

A jelenlegi grafikus kártyák (GPU) nagy teljesítményű párhuzamos rendszerek (sok száz processzor és 1 teraflopnál nagyobb teljesítmény), amelyeket nem csupán a képszintézisben, hanem általános célú számításigényes feladatokban is fel lehet használni. A GPU processzortömbjét C-szerű programozási nyelveken lehet programozni (Cg, HLSL, CUDA, stb.), de a hatékony alkalmazáshoz a párhuzamos programozás és a nagy teljesítményű számítási algoritmusok (HPC) elveit is el kell sajátítani. A tárgy keretében a GPU-t mint általános célú párhuzamos programozási eszközt mutatjuk be különböző programozási környezetek (API-k) felhasználásával, és a hallgatók konkrét példákon keresztül tanulhatják meg ezen eszközök programozási módszereit. 

Learning outcomes

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

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

A tantárgy anyagát a hallgatók előadásokon ismerhetik meg, a hallottakat pedig a laborfoglalkozásokon próbálhatják ki a gyakorlatban.

Tanulástámogató anyagok

Not provided.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(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)
C, C++ programozás
Skill type competencies
(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
Recommended (non-compulsory) preliminary competencies
(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)
C, C++ programozás
General rules
Követelmények: A félév során egy önként választott házifeladatot kell megoldani és a félév végén bemutatni. A házifeladat sikeres megvédése az aláírás feltétele. A házi feladat értékelését a vizsgajegybe beszámítjuk. A legkiválóbb házifeladatok készítőinek megajánlott jegyet adunk. A tárgy vizsgával zárul. Pótlási lehetőségek: A házifeladatot a határidő elmulasztása esetén a szorgalmi időszak végéig lehet pótolni a TVSZ-ben meghatározott feltételek mellett.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Szoftver labor 3.
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.