GPU ELTE IK Számítógépes Grafika II. Jeni László Attila

Slides:



Advertisements
Hasonló előadás
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Advertisements

Alaplap.
A számítógép műszaki, fizikai része
1 Számítógépek felépítése 9. előadás I/O rendszerek.
OpenGL 2. gyakorlat Hapák József
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
Grafikus Hardver Alapok
A számítógép felépítése
Videó kártyák újdonságai Készítette: Villás Tibor.
Erőállóképesség mérése Találjanak teszteket az irodalomban
A mikroprocesszor 1. rész.
3. A programozás eszközei, programozás-technikai alapismeretek
Műveletek logaritmussal
Koordináta transzformációk
GPU Szirmay-Kalos László.
Az integrált áramkörök (IC-k) típusai
Bevezetés.  A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja  Teljesítménykövetelmények:  Animáció: néhány nsec.
A számítógép alapegységei
A számítógép felépítése
A tételek eljuttatása az iskolákba
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
A videokártya története
Alapfogalmak Adat: fogalmak, tények, jelenségek olyan formalizált ábrázolása, amely emberi vagy gépi értelmezésre, feldolgozásra, közlésre alkalmas. Információ:
Videokártyák.
A videokártyák.
Vámossy Zoltán 2006 Gonzales-Woods, SzTE (Kató Zoltán) anyagok alapján
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
Hardvereszközök Hardvereszközök I.rész. Hardvereszközök CPU Memóri a Input Háttértárolók Outpu t A számítógép felépítési elve Neumann elvek: 1.Soros utasításvégrehajtás.
szakmérnök hallgatók számára
Számítógépes grafika 3. gyakorlat.
A számítógép alapegységei. A számítógép a belsőleg tárolt program segítségével automatikusan hajtja végre a programokat. A memória utasítások és adatok.
2008/2009 tavasz Klár Gergely  Gyakorlatok időpontjai: ◦ Szerda 10:05–11:35 ◦ Csütörtök 10:00+ε –11:30+ε  Gyakvez: ◦ Klár Gergely ◦
A számítógép teljesítménye
Mikrokontroller (MCU, mikroC)
Rendering pipeline Ogre3D
Grafikus játékok fejlesztése Szécsi László t09-texture
OpenGL 4 shaderek, GLSL Valasek Gábor
GPGPU A grafikus hardver általános célú felhasználása
1 Gyarapodó Köztársaság Növekvő gazdaság – csökkenő adók február 2.
Processzor, alaplap, memória
A Neumann-elvű gépek A Neumann elvek:
A Monitor. AszámítógépAszámítógép legfontosabb kiviteli egysége (perifériája) a televíziókhoz hasonló számítógép-képernyő vagy monitor. A monitort egy.
Ismerkedjünk tovább a számítógéppel
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
Crt Monitor. Általános  a televízióhoz hasonló  elektronsugár futja végig  a sorok és képek váltásának időpillanatait a vízszintes és függőleges sorszinkron.
Írja fel a tizes számrendszerbeli
Algoritmizálás, adatmodellezés
IT ALAPFOGALMAK HARDVER.
Mikroprocesszorok (Microprocessors, CPU-s)
Ilyen számítógépet szeretnék
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Számítógépes grafika gyakorlat: DirectX 2007/2008 tavasz Klár Gergely
Számítógépes Grafika OpenGL 4 shaderek, GLSL. OpenGL 4 A következő programozható fázisok vannak a 4.x-es OpenGL-ben: Vertex shader Tesselation control.
Képek, képfeldolgozás Szirmay-Kalos László.
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
Bevezetés.  Miért …  … egyszálúan programozunk?  … probléma ez?  Hogyan …  … változik ez?  … tudjuk kihasználni?  Megéri-e párhuzamosítani?
Sz&p prof.
Neumann elvek és a Neumann elvű számítógép felépítése
A grafikus hardware programozása
OpenGL 2. gyakorlat Valasek Gábor
Vizualizáció és képszintézis
Az információ.
OpenGL II.
Bevezetés GPGPU Alkalmazások.
Előadás másolata:

GPU ELTE IK Számítógépes Grafika II. Jeni László Attila jedi@inf.elte.hu Magdics Milán gumi@inf.elte.hu 1

Tartalom A grafikus hardver fejlődése GPU generációk Hardveres grafikus szerelőszalag felépítése Csúcspont és képpont árnyaló egységek működése 2 2

CPU vs GPU CPU (central processing unit) Általános célú Alkalmazások futtatása GPU (graphics processing unit) Speciális célú (grafikus feladatok) Sokkal gyorsabbak mint a CPU-k Sokmagos processzor (32, 64, 128, …, 512, …) ~ 10’000’000 csúcspont / sec ~ 10’000’000’000 fragment / sec >1 TFlop/s (ATI Radeon™ HD 5870: 2.72 TFlop/s) SZTAKI desktopgrid csúcsteljesítmény: 3 TFlop/s 3 3

CPU vs GPU – TFlops 4 4

CPU vs GPU – sávszélesség 5 5

Miért fejlődik ilyen gyorsan? 6 6

CPU vs GPU 7 7

CPU vs GPU – tranzisztorszám Nagyobb tranzisztorszám jut az adatok feldolgozására, régebben csak SIMD 8 8

PCI buszrendszer Nagy ugrás az ISA után, de Idővel a PCI buszrendszer lett a „szűk keresztmetszet” Sok eszköz használta Sok dolgot kellett mozgatni a memória és a grafikus kártya között (geometria, textúrák, …) Példa: 2M háromszög, mindegyik 90 byte = 180 MByte > 133 MByte (PCI sávszélessége) 9 9

AGP buszrendszer Accelerated Graphics Port Megoldás: a memória közvetlen elérése! Nincs többé torlódás az adatbuszon Több geometriát lehet feldolgozni Az „AGP 1x” kétszer gyorsabb, mint a PCI (most „AGP 8x”-nél tartunk, ami 2 GB/s) 10 10

PCI Express Soros kommunikációra (kétirányú) épülő technika, de skálázható! A két sáv mindkét irányba tud közvetíteni. A PCI-E X16 akkor 8 GB/s ha mindkét sáv azonos irányba közvetít. 11 11

PCI Express 2010-es években

A GPU fejlődése: generációk Virtual Fighter SEGA Dead or Alive 3 Temco NV1 Xbox (NV2A) 50K triangles/sec 1M pixel ops/sec 1M transistors 100M triangles/sec 1G pixel ops/sec 20M transistors 1995 2001 13 13

A GPU fejlődése: generációk Dawn Demo NVIDIA GeForce FX (NV30) 200M triangles/sec 2G pixel ops/sec 120M transistors 2003 Luna Demo NVIDIA GeForce 7900 GTX Fill rate: 15.6 GPixel/sec 1.4 Billion Vertices/Second 2006 14 14

A GPU fejlődése: generációk Medusa Demo NVIDIA GeForce 200 Fill rate: 50.0 GPixel/sec 1 Tflop/s 2008 15 15

A GPU fejlődése: generációk A 90-es évek közepén a grafikus hardverek több különböző chipet tartalmaztak, amelyek együttesen végezték a képszintézist. A félvezetőgyártás fejlődésével ezeket végül egyetlen chipbe vonták össze. A GPU elnevezés a 90-es évek végén jelent meg, amikor a „VGA vezérlő” kifejezés már nem jellemezte pontosan a grafikus hardvert. VGA (Video Graphics Array) – 1987 Hat különböző generáció különböztethető meg a GPU-k terén. 16 16

Kezdeti próbálkozások A GPU-k megjelenése előtt néhány vállalat (Silicon Graphics, Evans&Sutherland) tervez néhány drága és speciális hardvert Ezekben már sok alapkoncepció megjelenik (csúcspont transzformációk, textúrázás) Ezek a gépek fontosak történelmi szempontból, de a magas áruk miatt nem érték el az egy-chipes GPU-k sikerét. 17 17

1. Generáció (1998-ig) NVIDIA TNT2, ATI Rage, 3dfx Voodoo3 A standard 2d-s videokártyák kiegészítése Csúcspont transzformációkat még a CPU csinálja! A kártya csak a textúrázást, Z-buffer kezelést végezte Primitive Assembly Vertex Transforms Frame Buffer Raster Operations Rasterization and Interpolation CPU GPU PCI 18 18

2. Generáció (1999-2000) NVIDIA GeForce 256, GeForce 2, ATI Radeon 7500 Átveszik a transzformációk és az árnyalás kezelését a CPU-tól. Az OpenGL és DirectX 7 is támogatja a hardveres csúcspont transzformációkat. Multi-textúrázás megjelenése: bump map, light map Konfigurálható (driver szinten), de még nem programozható Vertex Transforms Primitive Assembly Frame Buffer Raster Operations Rasterization and Interpolation GPU AGP 19 19

3. Generáció (2001) NVIDIA GeForce 3, GeForce 4 Ti, Xbox, ATI Radeon 8500 A csúcspont pipeline korlátozott programozhatósága Fejlettebb pixel szintű konfigurálás, de még nem programozás 3d-s textúrák, többszörös mintavételezés (antialias-hoz) Vertex Transforms Primitive Assembly Frame Buffer Raster Operations Rasterization and Interpolation GPU AGP Small vertex shaders 20 20

4. Generáció (2002) NVIDIA GeForce FX, ATI Radeon 9700 A csúcspont és pixel pipeline teljesen programozható (erőforrás-korlátok azért még vannak) Magas szintű árnyaló nyelvek (shading languages) megjelenése (NVIDIA Cg, Microsoft HLSL, OpenGL GLSL) Shader Model 2.0 (simple branching) Vertex Transforms Primitive Assembly Frame Buffer Raster Operations Rasterization and Interpolation AGP Programmable Vertex shader Fragment Processor 21 21

5. Generáció (2004) NVIDIA GeForce 6, ATI Radeon X, GeForce 7 Több puffer szimultán renderelése 64bites pipeline PCIe busz Több memória, hosszabb csúcspont árnyaló programok Shader Model 3.0 (branching and looping in the pixel shader (physics)) HDRI, SLI, TSAA, TMAA HDRI = high dynamic range imaging SLI = Scalable Link Interface TSAA,TMAA = transparency supersampling and transparency multisampling anti-aliasing modes 22 22

6. Generáció DirectX 10 Shader Model 4.0 (Unified Shader Model, geometry shader) Unified Shading Architecture Shading performance 2x pixel, 12x vertex above G71 700 Mtransistors 130W to 300W 23 23

A hardveres grafikus szerelőszalag A 3d alkalmazás csúcspontok szekvenciáját küldi a GPU-nak geometriai primitívekbe kötegelve (poligonok, vonalak, pontok) Minden csúcspontban van egy pozíciója és más attribútumai (szín, spekuláris szín, textúra koordináták, normálvektor) A csúcspont transzformációk a szerelőszalag első lépésében hajtódnak végre. 24 24

Primitívek és raszterizálás A transzformált csúcspontok sorozatát a következő lépésben geometriai primitívekké alakítja a hardver (háromszög, vonal, pont) Ebben a feldolgozási lépésben végzi el a hardver a látógúlával történő metszést és a hátlapeldobást. Amely poligonok „túlélték” a metszést és a hátlapeldobást, azokra végrehajtja a raszterkonverziót. Raszterizálás: az a folyamat, amely meghatározza, hogy az egyes geometriai primitívekhez melyik pixelek tartoznak A raszterizálás eredménye pixel pozíciók halmaza valamint „fragment”-ek halmaza. 25 25

Pixel  Fragment Pixel = Picture element A pixel a Frame Buffer (kép puffer) egy elemének a tartalmát reprezentálja egy adott pozícióban (pl szín, mélység, és más tulajdonságok, amik az adott pozícióhoz vannak rendelve) A fragment a geometriai primitívnek egy pixel méretű darabja. Egy fragment rendelkezik a neki megfelelő pixel pozíciójával, mélység értékével, és interpolált paraméterek halmazával (szín, spekuláris szín, textúra koordináták) Úgy is gondolhatunk a fragment-re mint egy potenciális pixelre. Ha a fragment végigmegy a különböző raszterizálási teszteken, akkor a fragment frissíti a hozzá tartozó pixelt a Frame Buffer-ben. 26 26

Fragment textúrázás, színezés Miután a hardver egy geometriai primitívet raszterizált nulla vagy több fragment-re, Interpolálja a paramétereit Végrehatja rá a textúrázást és a matematikai műveleteket És minden fragment-nek meghatározza a végső színét Ebben a lépésben módosulhat a fragment mélység értéke De törölhet is egy fragment-et, hogy elkerülje a Frame Buffer-ben a neki megfelelő pixel frissítését 27 27

Raszter műveletek Ez a lépés közvetlenül a Frame Buffer frissítése előtt hajtódik végre Ezek a műveletek szabványos részei az OpenGL-nek és a Direct3D-nek Pixel ownership test: a fragment-nek megfelelő pixel a Frame Buffer-ben hozzánk tartozik-e Scissor test: a fragment egy megadott téglalapon belül van-e Alpha test: a fragment alpha értékét hasonlítja egy egy konstans értékhez Stencil test: a stencil buffer értékét hasonlítja egy referenciaértékhez Depth test: a fragment mélység értékét a mélységi puffer értékével veti össze Blending: a fragment RGBA értékét kombinálja a Frame Buffer adott pixelének RGBA értékével Dithering: elmossa a különböző színű felületek közötti eredetileg éles átmenetet Logic Op: egy logikai műveletet hajt végre a fragment és a Frame Buffer színe között 28 28

A grafikus szerelőszalag A csúcspontok transzformálása és színezése Geometriai primitívek kialakítása Ezek „feltöltése” fragment-ekkel Az értékek interpolálása és felhasználása a textúrázáshoz és színezéshez 29 29

A programozható grafikus szerelőszalag Jelenleg a domináns irányvonal a grafikus hardver tervezésekor a GPU minél nagyobb szintű programozhatóságának biztosítása 30 30

Fragment árnyaló egység Az átmeneti regiszterek írhatók- olvashatók. Ezek használhatók a közbenső számítások elvégzésére. Ezután folyamatosan beolvassa és végrehajtja következő utasítást, amíg a program nem terminál. A fragmens attribútumainak betöltése a fragmens árnyaló egységbe (pl pozíció, textúra koordináták) Az utasítások több regiszterhez is hozzáférnek, amik vektorértékeket tartalmaznak (pozíció, normál, szín). A fragmens attribútum regiszterek csak olvashatóak. A fragmens árnyaló egységben korlátozott utasításkészlet áll rendelkezésünkre. Lehetőségünk van pl a vektorok komponensenkénti manipulálására, vektorműveletek végrehajtására (összeadás, szorzás, minimum, maximum kiválasztás). A kimeneti regiszterek csak írhatók. A program terminálásakor ezek fogják tartalmazni pl. a fragmens színét. 31 31

Shader Model 4.0 Geometry Shader Stream Output Egységesített shader A GS kimenete a következő pass bemenete lehet Egységesített shader utasításkészlet 32 32

Geometry Shader Geometriai primitíveken dolgozik (pont, vonal, vagy háromszög). Tetszőleges (de korlátos) számú primitívet állít elő, melyeket egy stream bufferbe ír. Az eredmény továbbhaladhat a pipeline-on (raszterizálás, fragment shader), vagy a streamet felhasználhatjuk pl. Vertex Bufferként egy újabb renderelési ciklusban (a streamet nem olvassuk vissza a GPU-ból). 33 33

Fejlődés A játékok hatással vannak a grafikus hardverre, a hardver pedig a játékra… 34 34

Vizuális hatások Visszaverődés Level of detail Füst Árnyalás Árnyékok 35 35

Vizuális hatások Per-pixel lighting Multi textúrázás Light mapping Bump mapping 36 36

Többmenetes képszintézis Egy képszintézis lépés több funkcionális programot (vizuális hatást) is tartalmazhat. 37 37

Többmenetes képszintézis Minden egyes program (hatás) külön van kezelve, és ezeket összegezve áll elő a végső hatás. 38 38

Mit tudnak a mai kártyák? 39 39

Mit tudnak a mai kártyák? Luna demo http://www.nzone.com/object/nzone_luna_videos.html Human Head http://www.nzone.com/object/ nzone_humanhead_home. html track one / fairlight (Assembly 2k6, demo) http://www.scene.org/file.php?file=/parties/2006/assembly06/ demo/track_one_by_fairlight.mpg&fileinfo 40 40

Vége 41 41