Belépés címtáras azonosítással
magyar nyelvű adatlap
GPU programozás és párhuzamos rendszerek laboratórium
A tantárgy angol neve: GPU Programming and Parallel Systems Laboratory
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 grafikus hardver felépítése, az inkrementális csővezeték lépései, programozható egységek.
A laboratórium célja a grafikus hardver és az inkrementális csővezeték felépítésének megismerése. A laboratórium során bemutatásra kerül a csővezeték programozható egységeinek működési környezete és használata példákon keresztül.
2. Modern OpenGL API felépítése és használata, GLSL shader nyelv.
A laboratórium során a bemutatásra kerül a grafikus hardver programozásához használható OpenGL API és GLSL shader nyelv. A laboratórium célja az OpenGL API által nyújtott alapvető szolgáltatások bemutatása: geometria definíció, textúrák, shader programok létrehozása és használata, illetve az OpenGL állapottér.
3. Vektor feldolgozás a GPU-n, szóró és gyűjtő típusú algoritmusok.
A laboratórium célja az alapvető számítási sémák bemutatása. Az egyszerű párhuzamos számítási módok példákon keresztül kerülnek bemutatásra: iterált függvények attraktorai, egyszerű képfeldolgozási műveletek (fényesség transzformáció, küszöbözés, függvény konvolúció alapú szűrések, élkeresés).
4. OpenGL Compute Shader, mint általános célú lépcső a grafikus pipeline-ban.
A laboratórium célja az OpenGL Compute Shader bemutatása, amely az OpenGL API-n keresztül elérhetően, de az inkrementális pipeline-tól teljesen elkülönülve általános célú számítások implementálását tesz lehetővé. A laboratórium során a Compute Shader használata a sugárkövetésen alapuló képszintézis algoritmuson keresztül kerül bemutatásra.
5. Bevezetés a CUDA keretrendszer használatába.
A laboratórium célja a CUDA keretrendszer bemutatása. A laboratórium során bemutatásra kerül a CUDA virtuális gép platform, memória és program modellje, a párhuzamos programok végrehajtási sémája. A CUDA C/C++ nyelv segítségével áttekintjük a párhuzamos primitívek megvalósítását CUDA platformon.
6. Fejlett párhuzamos algoritmusok
A laboratórium célja a grafikus hardver masszívan párhuzamos működéséhez illeszkedő algoritmusok bemutatása. A laboratórium során bemutatásra kerülnek az alapvető párhuzamos primitívek felhasználásával felépíthető kereső és rendező algoritmusok.
7. Optimalizációs technikák CUDA környezetben.
A laboratórium célja a masszívan párhuzamos környezet által támasztott speciális igényeknek megfelelő optimalizálási technikák bemutatása. A laboratórium során áttekintésre kerülnek a párhuzamos programok skálázódási kérdései, a rendelkezésre álló és effektív memória sávszélesség értékének meghatározása, a kódszervezés hatásai a teljesítményre.
8. CUDA környezetben rendelkezésre álló hibakereső és teljesítmény mérő eszközök.
A laboratórium célja a CUDA környezetben rendelkezésre álló hibakereső és teljesítmény mérő programok megismerése, az NVidia NSight és Visual Profiler bemutatása és használata.
9. Bevezetés a CUDA segéd könyvárak használatába: CUFFT, CUBLAS, CURAND, NPP, Thrust.
A laboratórium célja a CUDA környezetben elérhető segédkönyvtárak használatának bemutatása. A laboratórium során a bemutatásra kerül a Thrust konténer könyvtár, illetve a CUFFT, CUBLAS és CURAND könyvtárak, amelyek segítésével Fourier transzformáció, egyes lineáris algebra műveletek és a véletlen számok generálása gyorsítható.