Grafikus csővezeték 1 / 44

Hasonló dokumentumok
Grafikus csővezeték 2 / 77

Grafikus csővezeték és az OpenGL függvénykönyvtár

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

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

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

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

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

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

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

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

Valasek Gábor

Párhuzamos és Grid rendszerek

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

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

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

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

OpenCL - The open standard for parallel programming of heterogeneous systems

OpenCL Kovács, György

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

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

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

Féléves feladat. Miről lesz szó? Bemutatkozás és követelmények

GPGPU. Architektúra esettanulmány

Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Párhuzamos programozási platformok

Magas szintű optimalizálás

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Máté: Számítógépes grafika alapjai

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

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

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

2D képszintézis. Szirmay-Kalos László

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés

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

Párhuzamos programozási platformok

HLSL programozás. Grafikus játékok fejlesztése Szécsi László t06-hlsl

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

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

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

FEJLETT GRAFIKAI ALGORITMUSOK

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?!

GRAFIKA PROGRAMOZÁSA. Bemutatkozás és követelmények. Dr. Mileff Péter

Google Summer of Code OpenCL image support for the r600g driver

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

1. Bevezetés 1. Köszönetnyilvánítás A számítógépes játékfejlesztésről 3

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó)

FIR SZŰRŐK TELJESÍTMÉNYÉNEK JAVÍTÁSA C/C++-BAN

Hardver Ismeretek IA32 -> IA64

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

GPU-k a gravitációs hullám kutatásban

Számítógép architektúra

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

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

Grafika programozása

Utolsó módosítás:

Informatika el adás: Hardver

elektronikus adattárolást memóriacím

Számítógépes Graka - 4. Gyak

3DMark 06 CPU. Magok / Szálak 8MB / MB /

Eichhardt Iván GPGPU óra anyagai

Számítógépek architektúrák. Architektúrák

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

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

Mi van a számítógépben? Hardver

Az NIIF új szuperszámítógép infrastruktúrája Új lehetőségek a kutatói hálózatban

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

GPGPU programozás oktatása

Bevezetés a CGI-be. 1. Történelem

LowPrice

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Plakátok, részecskerendszerek. Szécsi László

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

Textúrák. Szécsi László

Szakdolgozat. Dandár Gábor

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

Eichhardt Iván GPGPU óra anyagai

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Utolsó módosítás:

DIPLOMAMUNKA. Rákos Dániel

OpenGL és a mátrixok

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

D3D, DXUT primer. Grafikus játékok fejlesztése Szécsi László t01-system

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

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

Számítógépes alapismeretek

OTKA Nyilvántartási szám: T ZÁRÓJELENTÉS

Térbeli adatstruktúrák

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Synology DiskStation DS716+II 2-lemezes NAS (4 1,6-2,24 GHz CPU, 2 GB RAM)

Fehérzajhoz a konstans érték kell - megoldás a digitális szűrő Összegezési súlyok sin x/x szerint (ez akár analóg is lehet!!!)

GPU-Accelerated Collocation Pattern Discovery

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

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

Számítógépes alapismeretek

Shift regiszter + XOR kapu: 2 n állapot

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Microsoft SQL Server telepítése

Átírás:

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 Primitív feldolgozás A vertexek primitívekbe vannak szervezve Raszterizálás Primitívenként Fragmensek Fragmens textúrázás és színezés Fragmensenként v 4 v 6 v 0 v 3 v 5 v 1 v 2 v 0 v 3 v 1 v 2 v 0 Pontok v 3 v 1 v 2 v 4 v 5 Háromszögek v 4 v 5 v 6 v 4 v v 4 v 4 v 0 0 v 0 v v 3 v 3 5 v 5 v v 3 5 v 1 v 2 v 1 v 2 v 1 v 2 v 7 Vonalak Vonal hurok Töredezett vonal v0 v 1 v 3 v 1 v 2 v 3 v 4 Háromszögsáv v 5 v 0 v 2 v 4 v 5 v 7 v 6 v 5 v 0 v 4 v 3 v 1 v 2 Háromszög-legyező v 5 v 4 v 0 v 1 v 2 v 3 Négyszögek Négyszögsáv Poligon 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 Fragmensek Pixel pozíciók Fragmens textúrázás és színezés Színezett fragmensek Raszter műveletek 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: OpenGL vagy Direct3D 3D-s API parancsok CPU - GPU határvonal GPU parancs és adat folyam Vertex index folyam Összerakott primitívek Pixel pozíció folyam Pixel frissítések GPU kapcsolódás Primitív összerakás Raszterizálás és interpolálás Raszter műveletek Frame puffer Előtranszformált vertexek Programozható vertexproc. Transzformált vertexek Raszterizált előtranszformált fragmensek Programozható fragmensproc. Transzformált fragmensek 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 Késleltetés Pl. ADD függ a LOAD befejezésétől 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