Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Informatika MSc, Vizualizációs infromatika főspecializáció
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIIIMB00 3 0/0/3/f 4  
    3. A tantárgyfelelős személy és tanszék Dr. Szécsi László,
    A tantárgy tanszéki weboldala http://cg.iit.bme.hu/portal/oktatott-targyak/gpu-programozas-es-parhuzamos-rendszerek-laboratorium
    4. A tantárgy előadója Dr. Tóth Balázs György, Irányítástechnika és Informatika Tanszék
    5. A tantárgy az alábbi témakörök ismeretére épít Programozás, adatstruktúrák, algoritmusok, matematika
    6. Előtanulmányi rend
    Ajánlott:

    A tantárgy elvégzéséhez C++ programozási ismeret szükséges.

    7. A tantárgy célkitűzése A tárgy célja Modern OpenGL/GLSL és a CUDA környezet alkalmazásának megtanítása a vizuális informatikához kapcsolódó gyakorlati problémákon keresztül.
    8. A tantárgy részletes tematikája

    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ó. 

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Laboratórium.
    10. Követelmények Órák látogatása, félév végi házi feladat bemutatása.
    11. Pótlási lehetőségek A házi feladat a pótlási héten pótlólag beadható.
    12. Konzultációs lehetőségek A laboratóriumokat követően, illetve a laborvezetőkkel egyeztetve igény szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom A laboratóriumhoz a felkészülést segítő írásos segédlet tartozik.
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra18
    Felkészülés zárthelyire
    Házi feladat elkészítése60
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés 
    Összesen120
    15. A tantárgy tematikáját kidolgozta Dr. Tóth Balázs György, Irányítástechnika és Informatika Tanszék