====== Zadání ====== Grafické architektury. Základní model, paralelní architektury (8x8, Cohen– Demetresku, Pixel Planes, Pixel Flow, .). Architektury „sort–first , „sort– last , „sort–middle . Akcelerátory a grafické procesory. ====== Základní model ====== Pracovní stanice: {{:mgr-szz:in-gra:model.png|}} 3D proudová architektura: {{:mgr-szz:in-gra:arch.png|}} Konceptuální model: {{:mgr-szz:in-gra:koncmodel.png|}} ====== Paralelní architektury ====== Paralelní řešení obrazové úlohy: * dělený prostor obrazu * dělený prostor objektů * dělené funkce * víceúrovňové dělení === Dělení v objektovém prostoru === Procesory: přiděleny podmnožiny objektů, řeší úplné zobrazení zpracovávaných objektů Problém: variace doby zpracování objektu, nerovnoměrná zátěž procesorů Speciální případ: dělení v parametrickém prostoru, parametrické pláty jsou před vybarvením rozloženy např. na trojúhelníkovou síť Časová složitost: P.O(N/k) - k procesorů zpracovává současně k primitiv, každé z primitiv vyžaduje řešení max. P pixelů {{:mgr-szz:in-gra:deleniobj.png|}} === Dělení v obrazovém prostoru === Jednotlivým procesorům přiděleny části obrazového prostoru - pixel, řádka, souvislá část obrazového prostoru (skupina řádek, obdélníkové okno) Distribuce objektů: (1) všechny objekty jsou zaslány současně všem procesorům, nebo (2) předem roztříděny do podmnožin pro jednotlivé procesory Protože objekt pravděpodobně pokryje více oblastí děleného obrazového prostoru, musí být obecně zpracován několika procesory. Časová složitost: N.O(P/k) - obrazový prostor dělen mezi k procesorů na části P/k pixelů, doba zpracování roste lineárně s počtem primitiv N {{:mgr-szz:in-gra:deleniobr.png|}} ===== 8x8 (Clark-Hanah) ===== Primitiva: pixel, vektor, trojúhelník, lichoběžník Viditelnost: paměť hloubky Stínování: konstantní, Gouraud Vyhlazování: -- Dělení: Dělení obrazového prostoru na 64 shodných částí. Topologie: 2 úrovňový strom s uniformním větvením 1:8 Řízení: řádkové i sloupcové procesory pracují podle autonomních obvykle shodných řídících programů Paralelismus: sloupcové procesory -- SISD; řádkové procesory -- SIMD {{:mgr-szz:in-gra:8x8.png|}} ===== Cohen–Demetresku ===== Primitiva: mnohoúhelníky Viditelnost: paměť hloubky Stínování: konstantní, Gouraud, Phong Vyhlazování: --, možnost úpravy pro gz-bufer, kompozice, A-bufer Dělení: v prostoru objektů; P pixelů a N objektů zpracováno k procesory při nejvýše P.(N/k) operacích Topologie: cyklus procesorů uzavřený přes obrazovou paměť Řízení: decentralizované; řeší autonomně rasterizaci objektu; volný procesor přebírá popis objektu od nadřazeného systému. Paralelismus: MIMD (specializace procesorů ) {{:mgr-szz:in-gra:cohen.png|}} ===== Kedem-Ellis ===== Primitiva: lineární a kvadratické poloprostory Viditelnost: sledování paprsku Stínování: -- Vyhlazování: -- Dělení: kombinace funkčního dělení a dělení objektového prostoru (1) vyhodnocení průsečíku paprsku s primitivem (2) vyhodnocení CSG operace na intervalu Topologie: binární strom Řízení: decentralizované, synchronní komunikace s potvrzovacím protokolem Paralelismus: SIMD {{:mgr-szz:in-gra:kedem.png|}} ===== SAGE ===== Primitiva: řádkové úseky Viditelnost: paměť hloubky Stínování: konstantní, Gouraud Vyhlazování: -- Dělení: d. obrazového prostoru, 1 procesor/sloupec pixelů Topologie: sériově řazené pixelové procesory Řízení: synchronně podle vnějšího časování Paralelismus: SIMD - každý pixelový procesor pracuje s daty jiného řádkového úseku {{:mgr-szz:in-gra:sage.png|}} ===== Pixel Planes ===== Primitiva: úsečky, trojúhelníky, konvexní n-úhelníky Viditelnost: paměť hloubky Stínování: konstantní, Gouraud Vyhlazování: ne, možná modifikace se subpixelovým vzorkováním Dělení: Kombinace funkčního dělení a dělení obrazového prostoru Topologie: 2D-pole Řízení: centralizované; instrukce a data generuje PP-překladač shodně pro všechny PP-buňky Paralelismus: SISD {{:mgr-szz:in-gra:pixelplanes.png|}} ===== SGI SuperWorkstation ===== Primitiva: trojúhelník, lichoběžník Viditelnost: paměť hloubky Stínování: konstantní, Gouraud Vyhlazování: - A-bufer Dělení: funkčního dělení a dělení obrazového prostoru, specializované procesory - geometrický p. (5x), p. polygonů a výpočet sklonu, paralelně 7 hranových p., obrazový prostor: 5 x 4 obrazové p. Topologie: 2D-pole Řízení: decentralizované Paralelismus: SIMD {{:mgr-szz:in-gra:sgi.png|}} ===== Pixel Flow ===== {{:mgr-szz:in-gra:pixelflow1.png|}} {{:mgr-szz:in-gra:pixelflow2.png|}} Algoritmus řízení: 1. Geometrický procesor v každém R bloku transformuje přidělená primitiva a setřídí je podle 128x128 pix. oblastí obrazu. 2. Rasteriser spočte hodnoty pixelů pro všechna primitiva v oblasti a pro 1 vzorek antialising. jádra. 3. Poté, co všechny rasterizery dokončí oblast (krok 2), je složena přes kompoziční síť a předána do stínovače. 4. Kroky (2) a (3) jsou opakovány pro každý vzorek a pro všechny oblasti. Lze využít proudové řazení (překrytí) rasterizace a kompozice. ====== Klasifikace grafických architektur ====== {{:mgr-szz:in-gra:sort.png|}} Evaluátory - jednotka spracovania vstupných príkazov (skript) * Operácie nad vrcholmi - geometrická jednotka pracujúca s vrcholmi * Rasterizácia - rasterizačná jednotka * Textúrovanie - textúrovacia jednotka * Operácie nad fragmentmi - operácie na úrovni pixelov * Kompozícia - kompozícia výstupnej snímky Podle místa, kde nastává třídění: === Architektura "sort–first" === Třídí 3D primitiva. === Architektura "sort–last" === Třídí fragmenty. === Architektura "sort–middle" === Třídí 2D primitiva. ====== Akcelerátory a grafické procesory ====== == Grafický procesor == GPU - "grafický procesor" je výpočetní jádro grafické karty. Obsahuje řadič paměti, unifikované shadery, TMU jednotky, ROP jednotky a další. Zpracovává 3D geometrii na 2D obraz, zobrazitelný na zobrazovacím zařízení. * Unifikované shadery - moderní náhrada za pixel shadery a vertex shadery. Každá firma má svoji vlastní architekturu shaderů. Jsou programovatelné a díky tomu nemusí počítat pouze zobrazovatelná data, ale i výpočty pro vědu a další. NVIDIA má každý unifikovaný shader plnohodnotný, AMD používá 4D shadery (4 menších shaderů jako celek, dříve 5D). * Řadič pamětí - stará se o komunikaci mezi grafickou pamětí a GPU. NVIDIA i AMD podporují až GDDR5. * TMU jednotky (Texture mapping unit) - mapuje textury na objekty. * ROP jednotky (Render Output unit) - zabezpečuje výstup dat z grafické karty. == Grafický akcelerátor == Grafický akcelerátor (urychlovač) je jednotka v osobním počítači či herní konzoli, která přebírá funkce hlavního procesoru pro grafické operace, odlehčuje hlavnímu procesoru. Umožňuje paralelní zpracování. Je vybaven vlastní pamětí. S příchodem OpenGL API a obdobných funkcí v DirectX se k možnostem GPU přidaly i programovatelné jednotky shader. Každý pixel či vertex může být zpracován krátkým programem předtím, než je zobrazen. Moderní GPU mají podporu i pro 3D počítačovou grafiku, obsahují funkce pro renderování, podporu digitálního videa a další. ====== Zdroj ====== Sochor, Jiří. PA157 - Seminar on Computer Graphics Architectures, slajdy. 2012. Fakulta informatiky, Masarykova Univerzita. Brno. Sobota, Branislav. Vizualizácia a grafické architektúry, slajdy. 2013. Katedra počítačov a informatiky, FEI TU, Košice. Dostupné: http://hornad.fei.tuke.sk/predmety/svr/doc/SVR0313_VIZUALIZACIA_GRAF_ARCHITEKTURY.pdf Wikipedie: Otevřená encyklopedie: Grafická karta [online]. c2013 [citováno 16. 06. 2013]. Dostupný z WWW: Wikipedie: Otevřená encyklopedie: GPU [online]. c2013 [citováno 16. 06. 2013]. Dostupný z WWW: