Informatika | Grafika » Grafikus csővezeték

Alapadatok

Év, oldalszám:2015, 44 oldal

Nyelv:magyar

Letöltések száma:35

Feltöltve:2017. július 23.

Méret:2 MB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!

Tartalmi kivonat

Grafikus csővezeték 1 / 44 Grafikus csővezeték Vertex feldolgozás A vertexek egyenként a képernyő térbe vannak transzformálva v4 v1 v5 v5 v1 v2 Pontok v0 v3 v5 v1 v2 Vonalak v3 v5 v1 v2 Vonal hurok v2 Töredezett vonal v5 v0 v3 v1 v2 v5 v4 v1 Háromszögek Primitívenként v4 v3 v0 v5 Raszterizálás Fragmensek v3 v4 v4 v0 v0 v3 Primitív feldolgozás A vertexek primitívekbe vannak szervezve v6 v4 v0 v2 v5 v5 v6 v1 v1 v2 Háromszög-legyező Háromszögsáv v5 v0 v7 v3 v1 v3 v0 v4 v4 v0 v3 Fragmens textúrázás és színezés v3 v2 v4 Négyszögek v7 v0 v2 v4 Négyszögsáv v6 v1 v2 Poligon Fragmensenként 2 / 44 Grafikus csővezeték Vertex kapcsolódások Vertexek Vertex transzformáció Transzformált vertexek Primitív összerakás és raszterizálás Pixel pozíciók Fragmensek Fragmens textúrázás és színezés Raszter műveletek Színezett fragmensek Pixel frissítések 3 / 44

Grafikus csővezeték Grafikus csővezeték vizualizálása Színezett vertex vertex transzformáció után Primitív összerakás Raszterizálás Interpoláció, textúrázás és színezés 4 / 44 Programozható grafikus csővezeték 3D-s alkalmazás vagy játék 3D-s API parancsok 3D-s API: OpenGL vagy Direct3D CPU - GPU határvonal GPU parancs és adat folyam Vertex index folyam GPU kapcsolódás Összerakott primitívek Primitív összerakás Pixel pozíció folyam Raszterizálás és interpolálás Pixel frissítések Raszter műveletek Transzformált fragmensek Transzformált vertexek Előtranszformált vertexek Programozható vertexproc. Raszterizált előtranszformált fragmensek Frame puffer Programozható fragmensproc. 5 / 44 Grafikus csővezeték 6 / 44 GPU-k fejlődése 7 / 44 Grafikus csővezeték SGI RealityEngine Akeley, Kurt. "RealityEngine Graphics" Proceedings of SIGGRAPH ’93, pp 109-116 8 / 44 Grafikus

csővezeték 3D-s grafikus gyorsító 1999 előtt 9 / 44 Grafikus csővezeték GPU 1999 körül 10 / 44 Grafikus csővezeték Direct3D 9 programozhatóság 2002 11 / 44 Grafikus csővezeték Direct3D 10 programozhatóság 2006 12 / 44 GPGPU General-Purpose Computing on Graphics Processing Units Egységes shader modell Shaderek megvalósítása közelebb került egymáshoz Egyszerű Kevés utasítás Több száz általános célú végrehajtóegység Hatalmas számítási kapacitás 13 / 44 Ötletek egy GPU felépítéséhez 14 / 44 CPU-stílusú core-ok 15 / 44 Első ötlet 16 / 44 Két mag (core) Két fragmens párhuzamos feldolgozása 17 / 44 Négy mag (core) Négy fragmens párhuzamos feldolgozása 18 / 44 Tizenhat mag (core) Tizenhat fragmens párhuzamos feldolgozása 19 / 44 Második ötlet Fragmensek közötti utasítás folyam megosztása 20 / 44 Második ötlet Single Instruction Multiple Data (SIMD)

Csökkentsük az ALU-k közötti utasítás folyam Kezelésének költségét Összetettségét 21 / 44 Második ötlet Shader módosítása Előző shader egy fragmenst dolgozott fel Skalár műveletek Skalár operandusok Új shader nyolc fragmenst dolgoz fel Vektor műveletek Vektor operandusok 22 / 44 Második ötlet Fragmensek közötti utasítás folyam megosztása 23 / 44 128 fragmens feldolgozása párhuzamosan 16 mag = 128 ALU 16 egyidejű utasításfolyam 128 Vertex Primitív Fragmens 24 / 44 Mi van az elágazásokkal? 25 / 44 Mi van az elágazásokkal? Nem mindegyik ALU végez hasznos munkát 26 / 44 Állások (stalls) Állás akkor következik be, amikor egy mag (core ) nem tudja futtatni a következő shader utasítást, mivel egy előző utasításra várakozik Függőségek vannak az utasítás folyamban Pl. ADD függ a LOAD befejezésétől Késleltetés Adat elérése a memóriából sokszor 1000-nél több ciklust igényel Rossz

ötlet volt az első egyszerűsítés? Az eltávolított részek segítenének az állások megoldásában A GPU-k sok független feladatot tételeznek fel Független SIMD csoportok 27 / 44 CPU-stílusú magok (core) 28 / 44 CPU-stílusú magok (core) 29 / 44 CPU-stílusú memória felépítés 30 / 44 Harmadik ötlet Sok független fragmensünk van Sok fragmens összefésült feldolgozása egy magon Utasítás folyam váltás egy másik (nem álló) SIMD csoportra, ha az aktív csoport áll GPU hardveresen kezeli Overhead mentesen Ideális esetben teljesen láthatatlan Maximális áteresztőképesség 31 / 44 Shader állások elrejtése 32 / 44 Shader állások elrejtése 33 / 44 Shader állások elrejtése 34 / 44 Közös környezet tárolása 35 / 44 Maximális késleltetés elrejtési képesség Húsz kicsi környezet 36 / 44 Közepes késleltetés elrejtési képesség Tizenkét kicsi környezet 37 / 44 Kicsi késleltetés

elrejtési képesség Négy nagy környezet 38 / 44 GPU shading rendszer 16 mag 8 mul-add ALU magonként (128 összesen) 16 egyidejű utasítás folyam 64 konkurens (összefésült) utasítás folyam 512 konkurens fragmens =256 GFLOPS (@1 GHz) 39 / 44 Összefoglalás Három kulcs ötlet Használjunk sok, karcsúsított magot a párhuzamos futtatáshoz A magokat rakjuk tele ALU-kkal Megosztott utasítás folyamok fragmensek csoportjainál Kerüljük el a késleltetett állásokat fragmens csoportok összefésült végrehajtásával Amikor egy csoport áll, akkor dolgozzunk egy másik csoporton 40 / 44 Összefoglalás CPU-GPU összehasonlítás 41 / 44 Összefoglalás Emlékezzünk a következőkre! A GPU-ra egy több magos processzorként gondoljunk, amelyet arra optimalizáltak, hogy A vertex és fragmens adatok maximális „áteresztéssel folynak át” a grafikus csővezetéken Speciálisan támogatja A grafikus csővezeték leképezését ezekre az

erőforrásokra A raszterizálást Vágást Hátsó oldal eltávolítást Textúrázást Stb. 42 / 44 Mostani és jövőbeli GPU Architektúrák Nagyobb és gyorsabb Több mag Nagyobb FLOPS (manapság 2 TFLOP) Milyen fix-funkcióknak kell megmaradnia? Néhány CPU-hoz hasonló tulajdonság hozzáadása Általános R/W cache (Fermi) Szinkronizálás 43 / 44 Mostani és jövőbeli GPU Programozás Alternatív programozási felületek támogatása Általános célú programozás CUDA OpenCL DirectCompute Alkalmazások, amelyek a GPU-t egy több processzoros rendszernek tekintik Hogyan változik a grafikus csővezeték absztrakció? Direct3D 11 3 új csővezeték szakasz Sugárkövetés 44 / 44