GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai



Hasonló dokumentumok
Grafikus csővezeték 1 / 44

GPGPU. GPU-k felépítése. Valasek Gábor

OpenCL - The open standard for parallel programming of heterogeneous systems

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási

PÁRHUZAMOS SZÁMÍTÁSTECHNIKA MODUL AZ ÚJ TECHNOLÓGIÁKHOZ KAPCSOLÓDÓ MEGKÖZELÍTÉSBEN

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus

GPGPU programozás oktatása

Ismétlés: Moore törvény. Tranzisztorok mérőszáma: n*százmillió, n*milliárd.

Haladó Grafika EA. Inkrementális képszintézis GPU-n

Óbudai Egyetem. Doktori (PhD) értekezés. Adatpárhuzamos sejtmagkeresési eljárás fejlesztése és paramétereinek optimalizálása Szénási Sándor

A CUDA előnyei: - Elszórt memória olvasás (az adatok a memória bármely területéről olvashatóak) PC-Vilag.hu CUDA, a jövő technológiája?!

OSZTOTT 2D RASZTERIZÁCIÓS MODELL TÖBBMAGOS PROCESSZOROK SZÁMÁRA

Négyprocesszoros közvetlen csatolású szerverek architektúrája:

Google Summer of Code OpenCL image support for the r600g driver

Párhuzamos és Grid rendszerek

KUTATÁSOK INFORMATIKAI TÁMOGATÁSA. Dr. Szénási Sándor

K+F gyakornoki pozíciók a Dolphio Consultingnál. ELTE, szeptember 14.

GPGPU. Architektúra esettanulmány

OpenCL Kovács, György

Grafikus csővezeték 2 / 77

Számítógépes grafika

Videókártya - CUDA kompatibilitás: CUDA weboldal: Példaterületek:

GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre

14.2. OpenGL 3D: Mozgás a modellben

Számítógépek felépítése

Nemlineáris optimalizálási problémák párhuzamos megoldása grafikus processzorok felhasználásával

A GRAFIKUS HARDVEREN (GPGPU) IMPLEMENTÁLT ALKALMAZÁSOK SEBEZHETŐSÉGEI

2. Generáció ( ) 3. Generáció (2001) NVIDIA TNT2, ATI Rage, 3dfx Voodoo3. Klár Gergely

AutoCAD Architecture 2008 A magyar építész AutoCAD újdonságai

Grafika programozása

Dr. Csanády László: Az ioncsatorna-enzim határmezsgye: egyedi CFTR és TRPM2 csatornák szerkezete, működése c. MTA doktori értekezésének bírálata

GRAFIKUS PROCESSZOROK ALKALMAZÁSA KÉPFELDOLGOZÁSI FELADATOKRA

A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja Teljesítménykövetelmények:

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

Eichhardt Iván GPGPU óra anyagai

Eichhardt Iván GPGPU óra anyagai

Valasek Gábor

Cache, Cache és harmadszor is Cache

Általános célú számítási feladatok GPU-kon és DSP-ken való megvalósítása

Földfelszín modellezés

GPU-Accelerated Collocation Pattern Discovery

Az INTEL mikroprocesszorok architekturális fejlődésének bemutatása

CUDA haladó ismeretek

A Margit híd pillérszobrának 3D-s digitális alakzatrekonstrukciója Nagy Zoltán 1 Túri Zoltán 2

Multimédia hardver szabványok

GPGPU ÚJ ESZKÖZÖK AZ INFORMÁCIÓBIZTONSÁG TERÜLETÉN

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Vári Péter-Rábainé Szabó Annamária-Szepesi Ildikó-Szabó Vilmos-Takács Szabolcs KOMPETENCIAMÉRÉS 2004

Számítógépes grafika

Grafikus processzorok általános célú programozása (GPGPU)

GPU alkalmazása az ALICE eseménygenerátorában

Győri HPC kutatások és alkalmazások

1. A Neumann-elvű számítógép felépítése

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

GÉP. A GÉPIPARI TUDOMÁNYOS EGYESÜLET műszaki, vállalkozási, befektetési, értékesítési, kutatás-fejlesztési, piaci információs folyóirata

BARANGOLÁS AZ E-KÖNYVEK BIRODALMÁBAN Milyen legyen az elektonikus könyv?

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

Gaussian Mixture Modell alapú Fisher vektor számolás GPGPU-n

Az enyhe értelmi fogyatékos fővárosi tanulók 2009/2010. tanévi kompetenciaalapú matematika- és szövegértés-mérés eredményeinek elemzése

AZ ESÉLY AZ ÖNÁLLÓ ÉLETKEZDÉSRE CÍMŰ, TÁMOP / AZONOSÍTÓSZÁMÚ PÁLYÁZAT. Szakmai Nap II február 5.

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

KÉPFELDOLGOZÓ ALGORITMUSOK FEJLESZTÉSE GRAFIKUS HARDVER KÖRNYEZETBEN

GPGPU programozás lehetőségei. Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café

Klár Gergely 2010/2011. tavaszi félév

Általános rendszergazda Általános rendszergazda

Fejezetek a számítógépi grafikából

int azt az elõzõ részbõl megtudtuk, a rétegeknek az a feladatuk, hogy valamiféle feladatot végezzenek

Információ-architektúra

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

VÁLTOZÁSMENEDZSMENT LEAN KÖRNYEZETBEN

AZ EMBERKÖZPONTÚ CSELEKVÉSI MODELL TÁBLÁZAT Az emberközpontú modell fő hangsúlyai

Veszteséges képtömörítő eljárások pszichovizuális összehasonlítása

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Tartalomjegyzék. Köszönetnyilvánítás... xv. Előszó... xvii. 1. Bevezető D-történelem Matematikai alapok... 7

FRAKTÁLOK ÉS A KÁOSZ

Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető

2. ALPROJEKT FELHASZNÁLÓI KÉZIKÖNYV

Térinformatikai alkalmazások 4.

CityTab Supreme 10. Colorovo. táblagép. * modelltől függően elérhető funkció. CT Supreme 10 Win Manual KBD.indd

A folyamatos tökéletesítés folyamata

Játékfejlesztés a Windows Phone 7 erejével

SHADOW MAPPING MODERN GPU-KON

libgdx Android Studio alatt

10. K ÖZMŰ SZERŰ IT-SZOLGÁLTATÁS

eseményvezérelt megoldások Vizuális programozás 5. előadás

Szakdolgozat. Dandár Gábor

Annak ellenére, hogy a számítógépes szövegszerkesztés az utóbbi 10 évben általánossá vált, az irodai papírfelhasználás

Valósidejű térbeli megjelenítés, másként Fehér Krisztián

1. Fejezet: Számítógép rendszerek

Gyorsjelentés. az informatikai eszközök iskolafejlesztő célú alkalmazásának országos helyzetéről február 28-án, elemér napján KÉSZÍTETTÉK:

Entitások Projektfeladat specifikáció

Multimédiás alkalmazások

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Direct3D pipeline. Grafikus játékok fejlesztése Szécsi László t03-pipeline

KÖNYVISMERET HÁZIDOLGOZAT

Sajtóinformáció. RBHU/MK 2004rbgr-ww_h. A Bosch saját növekedési potenciáljára épít: Jó kezdés a 2004-es esztendőben

Hardware alapismeretek

6. modul Egyenesen előre!

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Átírás:

GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu

GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu

Grafikus Feldolgozó Egységek GPU Graphics Processing Unit Alapvető feladata a képernyőn megjelenítendő tartalom kezelésével kapcsolatos feladatok átvétele a CPU-tól A modern GPU-k meglehetősen nagy teljesítményű 3D grafikai feldolgozásra alkalmasak, ezek a funkciók általában valamilyen szabványos API-n keresztül érhetők el, pl.: OpenGL (www.opengl.org) Direct3D (www.microsoft.com) Shaderek A 3D grafikai feldolgozást az úgynevezett shaderek hajtják végre, ezek fő típusai az alábbiak: Vertex shader feladata a 3D térben lévő koordináták leképezése a képernyő síkjára Pixel shader feladata a megjelenítendő alakzatok egyes pontjainak a színének a kiszámítása (textúra, világítás, árnyékolás stb.) Geometry shader feladata az alakzatok geometriájának változtatása verzió 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 3

Unified Shader Model Terhelés eloszlásának problémái verzió A kezdeti megvalósításokban a különféle shader egységek különböző hardver elemeket jelentettek Ezek számának megtervezése azonban nehézségekbe ütközik, ugyanis különféle feladatokhoz ezek különböző arányára lenne szükség 1. feladat: a geometria meglehetősen egyszerű a pixelek színezése sok erőforrást igényel 2. feladat: a geometria leképezése erőforrásigényes a pontok színezése egyszerű Unified Shader A GPUk fejlődése során a különböző shaderek megvalósítása egyre közelebb került egymáshoz (lásd különböző shader modellek) Végül a gyártók megvalósították, hogy a GPU már csak egyféle, minden feladatot végrehajtani képes shadereket tartalmaz, így ezek tetszőlegesen csoportosíthatók a különféle feladatokra 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 4 Ábra 1.1 [2]

GPGPU fogalom megjelenése Közvetlenül programozható egységek Az egységes shader modell tulajdonképpen egyszerű, kevés utasítással rendelkező általános célú végrehajtóegységeket hozott magával Ez az egyszerűség elősegíti a végrehajtóegységek számának növelését, így a manapság elérhető GPU-k már több száz ilyen egységet tartalmaznak Ennek köszönhetően a GPU-k hatalmas számítási teljesítménnyel rendelkeznek, amit célszerű lehet a grafikai megjelenítésen túl is kiaknázni: GPGPU: General-Purpose Computing on Graphics Processor Units Fejlesztői környezetek megjelenése Kezdetben ezen eszközök programozása meglehetősen nehézkes volt, mivel a grafikus kártyákat továbbra is csak a megszokott módokon lehetett elérni, ezeken keresztül kellett valahogy a saját programkódokat lefuttatni Hamarosan a gyártók is felismerték az új piaci szegmensben rejlő lehetőségeket, emiatt kiadtak saját programozási környezeteket: Nvidia CUDA ATI Stream OpenCL verzió 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 5

GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu

GPGPU helye és szerepe GPU előnyei Hagyományos eszközökhöz képest kiemelkedő csúcsteljesítmény Nagyon jó ár/teljesítmény arány Jól skálázható, a piacon sokféle grafikus kártya kapható, és ezekből akár több is elhelyezhető egy megfelelő alaplapban Dinamikus fejlődés, ami a jövőben is biztosítottnak tűnik a fizetőképes keresletnek köszönhetően (játékipar) GPU hátrányai A végrehajtóegységek egymástól kevésbé függetlenek, mint a CPU magok a csúcsteljesítmény csak speciális (tipikusan adatpárhuzamos) feladatok végrehajtása során érhető el, csak ilyenkor célszerű használni GPU-t A grafikus kártyák általában saját memóriaterületen dolgoznak, ezért a tényleges feldolgozást mindig memória mozgatások előzik meg/követik optimalizálni kell ezen mozgatások számát, de még így is előfordulhat, hogy az egész GPU alapú megvalósítást el kell vetni emiatt Új terület lévén az ismeretek és az eszközök még kevésbé kiforrottak, emiatt a fejlesztés költségesebb verzió 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 7

Memória késleltetés kiküszöbölése Gyorsítótár párhuzamosság Az ábrán látható, hogy a CPU esetében az eszköz felületének nagy részét a gyorsítótár foglalja el, míg a GPU esetében ez szinte teljesen hiányzik, helyette a végrehajtó egységek foglalnak el nagy helyet Működés közben a memória olvasással kapcsolatos várakozásokat a CPU a gyorsítótárral próbálja csökkenteni, a GPU pedig a gyors kontextusváltás segítségével éri el ugyanezt (ha egy szál futása közben várni kell a memóriára, akkor a GPU átütemezi a végrehajtóegységeket más szálakhoz) szálak száma legyen jóval nagyobb, mint a végrehajtóegységek száma Ábra 1.2 [3] verzió 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 8

Memória szerkezete Összetett memória hierarchia CPU-k esetében általában csak a központi memóriát és a regisztereket különböztetjük meg CPU-k esetében általában nem a programozó feladata a gyorsítótár kezelése, ezt a CPU-ra bízhatjuk GPU-k esetében ennél jóval összetettebb memória felépítéssel találkozhatunk, amelyek kezelése a programozó feladata célszerű a gyakran szükséges adatokat betölteni a gyorsabb memóriaterületekre ( kézzel elvégezni a gyorsítótár kezelést) Figure 4.2.1 (Nvidia CUDA Programming Guide v2.0) Ábra 1.3 [3] verzió 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 9

SIMT végrehajtás SIMD SIMT végrehajtás közötti különbségek SIMD utasítások során a programozó biztosítja, hogy az operandusok a megfelelő helyen és formában legyenek, a SIMT utasítások során az egyes végrehajtóegységek különböző címtartományokban dolgoznak SIMT utasítások során van lehetőség feltételes végrehajtásra is, egy elágazás ágai azonban szekvenciálisan, egymás után hajtódnak végre: Ábra 1.4 [4] GPU programokban lehetőleg kerülni kell az elágazásokat, ciklusokat verzió 2010.07.20. Szenasi.sandor@nik.uni-obuda.hu 10

Irodalomjegyzék [1] David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors Elsevier 978-0-12-381472-2 http://www.elsevierdirect.com/morgan_kaufmann/kirk/ Angol 258 o. [2] Exploiting the Shader Model 4.0 Architecture Rövid összefoglaló a shaderek fejlődéséről http://researchweb.iiit.ac.in/~shiben/docs/sm4_skp-shiben-jag- PJN_draft.pdf [3] NVIDIA CUDA Programming Guide 3.0 CUDA környezet teljes leírása (referencia, mintapéldák) http://developer.download.nvidia.com/compute/cuda/3_0/toolkit/docs/n VIDIA_CUDA_ProgrammingGuide.pdf [4] From Shader Code to a Teraflop: How Shader Cores Work Rövid leírás a shaderek működéséről http://s08.idav.ucdavis.edu/fatahalian-gpu-architecture.pdf szerző, intézmény, évszám verzió dátum/idő em@il 11