Bankovní institut vysoká škola Praha Katedra informačních technologií
Vývoj grafických karet
Bakalářská práce
Autor:
Martin Havelec Auditor informačních systémů
Vedoucí práce:
Praha
Ing. Petr Bouchner Ph.D.
Duben, 2009
Prohlášení:
Prohlašuji, že jsem tuto bakalářskou práci zpracoval samostatně a s použitím uvedené literatury.
V Praze dne 19. dubna 2009
Martin Havelec
Anotace Předložená práce se zabývá problematikou grafických akcelerátorů. Snaží se nastínit jejich vývoj, funkce a technologie pro vytváření výsledného obrazu. Součástí práce je historický souhrn a zamyšlení nad budoucím směřováním a vývojem grafických akcelerátorů. Práce je rozdělena do čtyř hlavních částí. První část představuje historii počítačové grafiky a přibližuje cíle bakalářské práce. Druhá část se věnuje přiblížení historie grafického akcelerátoru, jejímu vývoji v počítačích typu IBM PC. Dále prezentuje trh s grafickými kartami a je zakončena chronologickým přehledem grafických akcelerátorů. Třetí část popisuje úlohu grafického akcelerátoru v osobním počítači, jeho základní součásti a druhy. Ve čtvrté části se seznamujeme s fungováním grafického akcelerátoru a se základními funkcemi potřebnými pro vytvoření obrazu. Pátá a závěrečná část se věnuje popisu základních funkcí současného grafického akcelerátoru a nastiňuje budoucí vývoj a směrování grafických akcelerátorů jakožto klíčové součásti počítače. Annotation This thesis deals with graphics accelerators. The aim is to show the evolution of the graphics accelerators, their functions and the technics how the final picture is created. The thesis includes a historic overview of the accelerators as well as it outlines their possible evolution in the future. It is divided into four parts. The first part deals with the history of computer graphics and approaches the aim of the whole bachelors’ thesis. The second part is focused on the historical evolution of the graphics accelerators, especially in the IBM computers. It also maps the graphics accelerator market and is ended by a chronological survey of the graphics accelerators. The third part presents the function of the graphics accelerators in the personal computer, their basic parts and their different kinds as well. The fourth part introduces the functioning of the graphics accelerators and their basic functions necessary to create the picture. The fifth and final part describes the basic functions of the current graphics accelerators; it outlines their possible evolution in the future as the key part of the computer.
Obsah 1.
ÚVOD
6
1.1
Grafické zobrazení a počítač
6
1.2
Cíl práce
6
2.
HISTORIE GRAFICKÉ KARTY V OSOBNÍM POČÍTAČI
2.1
Pohled do historie
2.1.1
Výstupní grafická periferie - displej
7 7 7
2.2
Grafická karta v IBM PC
2.3
Trh grafických karet
12
2.4
Chronologický vývoj
13
3.
ÚLOHA GRAFICKÉ KARTY A JEJÍ VÝZNAM V OSOBNÍM POČÍTAČI
3.1
Definice grafické karty?
8
20 20
3.1.1
Integrované grafické karty
20
3.1.2
Samostatné grafické karty
21
3.2 4.
Součásti grafické karty POPIS FUNGOVÁNÍ GRAFICKÉ KARTY
24 26
4.1
Podpora vykreslování základních 3D objektů
28
4.2
Pokročilé metody zobrazování textur
29
5.
4.2.1
Transform & Lighting
31
4.2.2
Pixel a Vertex shader
32
ZMAPOVÁNÍ SOUČASNÉ GRAFICKÉ KARTY A JEJÍ SMĚŘOVÁNÍ DO
BUDOUCNA
36
5.1
ATi Radeon HD řady 4800
36
5.2
Zpracování shaderu
37
5.3
Zpracování textur
39
5.4
Hierarchie paměti
39
5.5
Výkonové srovnání
40
5.6
Spotřeba
43
6.
ZÁVĚR
46
1. Úvod 1.1
Grafické zobrazení a počítač
Vývoj samostatných grafických nástrojů v počítačích se dá sledovat od poloviny šedesátých let minulého století, kdy se počítače začaly ve větší míře využívat pro zpracování vědeckých dat. Některé výstupy byly pro člověka v číselné podobě málo srozumitelné a přehledné. Zjistilo se, že je mnohem jednodušší a srozumitelnější převést číselné (binární) informace na informace grafické, které je lidský mozek schopen mnohem lépe chápat, a ty zobrazit - buď na obrazovku, nebo pomocí tisku na papír, nebo jiné médium. Toto nám umožňuje rozumět velkému množství grafických symbolů, neboť tyto informace jsou poměrně nezávislé na zemi původu a jazyku, např. šipka – symbol, který vznikl zjednodušením obrazu letícího šípu a tím určující směr. Pro zprostředkování komunikace mezi počítačem a uživatelem slouží grafická zařízení. V dnešní době již není zapotřebí zdůrazňovat význam grafického výstupu z počítače. Již ze samotného principu jak se dnes počítače ovládají je význam grafického zobrazení jasný. Každý počítač či stanice je již standardně vybaven grafickou kartou a zobrazovacím zařízením. Díky těmto zařízením lze poměrně snadno realizovat znakový i grafický výstup, a tedy efektivně ovládat počítač a přenášet informace od uživatele do počítače a zpět.
1.2
Cíl práce
Vzhledem k tomu, že oblast grafických karet a počítačové grafiky je velmi široká, vidím jako přínosné rozšířit znalosti o vývoji počítačové grafiky a to nahlédnutím do historie. Vytvořím si tak ucelený pohled na problematiku jak z technologického, tak z produktového hlediska. Víceméně pojímám tuto práci jako shrnutí významu grafické karty v osobním počítači, jejího historického vývoje a budoucího směru. Současně bych chtěl práci využít při rozhodování o vhodném grafickém adaptéru v rámci výběrového řízení na několik multimediálních stanic pro grafické studio, jakož i při výběru pro pevné stanice s ohledem na cenu, výkon, spotřebu. Po zpracování této práce by mělo z jejího obsahu být jasné, co je to grafická karta, jak se vyvíjela a jak dochází k vytváření grafického výstupu z osobního počítače v dnešní době.
6
2. Historie grafické karty v osobním počítači 2.1
Pohled do historie
Pojem počítačová grafika začal být popularizován příchodem osmibitových domácích počítačů a herních automatů začátkem 80. let. Grafické možnosti těchto strojů byly, z dnešního pohledu, velmi jednoduché. Již tehdy byly vymyšleny první grafické efekty, které z těchto počítačů vytvořily první dostupná multimediální zařízení. Na počítačích neustále probíhají změny typu rozhraní, kterým počítač komunikuje s uživatelem. Od prvotního rozhraní s příkazovým řádkem se přešlo k celoobrazovkovému rozhraní a následně až k rozhraní plně grafickému. Neustále ale existují oblasti, kde samotný příkazový řádek představuje, při správném užití, velmi silný nástroj pro ovládání počítače. Samozřejmě existují oblasti, kde se grafický výstup prakticky nepoužívá. Typicky se jedná o servery a specifické technologické počítače. U těchto systémů se informační výstup poskytnutý serverem předá uživatelovu počítači (klientovi) a až tyto počítače zajišťují potřebné zobrazení na monitoru nebo jiném zařízení.
2.1.1 Výstupní grafická periferie - displej Nejčastější výstupní grafickou periferií je bezesporu grafický zobrazovač (displej). Toto zařízení je v dnešní době základním vybavením každého domácího či pracovního počítače. Technologie zobrazování obrazových dat na displejích jsou různé. Mimo klasických CRT monitorů se prosadily LCD monitory. Existují však i plazmové displeje či displeje typu OLED apod. Vektorový displej – byl displej, kde byl obraz generován pomocí krátkých úseček nebo geometrických tvarů (oblouků apod.). Mezi jejich přednosti patřilo jednoduché zobrazení grafů a schémat. Mezi nevýhody patřilo zejména omezení délky zobrazených vektorů, která byla dána rychlostí zhášení bodů na obrazovce. Tyto displeje jsou dnes neefektivní, neboť neumožňují zobrazovat složitější obrazce, barevné či komplikované grafiky. Předchůdci vektorových displejů byly analogové osciloskopy. Rastrové displeje – v současnosti jsou používané hlavně displeje rastrové. U těchto displejů se obraz skládá z velkého množství malých barevných bodů (pixelů) uspořádaných v pravidelné mřížce (rastru). Mezi jejich přednosti patří schopnost zobrazit libovolně složitou 7
grafiku. Též tvorba grafiky v rastru není náročná. Nevýhodou může být vyšší nárok na kapacitu paměti, kde je obrazový rastr uložen. Tato paměť musí být zároveň dostatečně rychlá, aby se celý obraz mohl periodicky obnovovat.
2.2
Grafická karta v IBM PC
Vývoj grafických karet v počítačích typu IBM PC je zajímavý a poměrně prudký. Při uvedení prvních počítačů typu IBM PC zřejmě nikdo nečekal, že právě tyto v nedaleké budoucnosti zastanou práci profesionálních grafických stanic. Jejich možnosti byly na dlouhou dobu poměrně skromné. Hlavní zbraní byla výpočetní síla. První počítače IBM PC oddělily operační paměť od video paměti a do značné míry tím nastavily trend do budoucnosti.
První samostatnou grafickou kartu představila firma IBM v roce 1981. Jednalo se o Monochrome Display Adapter (MDA). Tato karta neměla žádný grafický výstup, takže název „grafická“ karta je lehce nepřesný. Poskytovala pouze monochromatický textový výstup na max. 85 znaků x 25 řádků s rozlišením 9x14 pixelů pro každý znak. Tato karta pro svůj chod používala 4 KB vlastní paměti. MDA zároveň umožnila použití několika funkcí normální text, neviditelný text, tučný, podtržený nebo blikající text. Tyto vlastnosti se daly kombinovat dohromady. Teoretické maximální rozlišení bylo 720x 350 pixelů. Karta byla určena pro komerční sféru, kde byl textový výstup dostatečný. Znaková sada byla uložena v paměti ROM, což znamenalo, že při požadavku na zobrazování textů s „národními“ znaky (tj. skoro všechny jazyky mimo angličtiny) musela být tato paměť vyměněna za jinou s vypálenou národní znakovou sadou. Zároveň s MDA představila firma IBM kartu Colour Graphic Adapter (CGA). Tato karta byla schopna nabídnout uživatelům grafický výstup v rastru 320x200 pixelů ve čtyřech barvách, nebo v rastru 640x200 pixelů a dvou barvách (černé a bílé). Zároveň poskytovala stejný textový výstup jako MDA karty v šestnácti barvách, pouze s nižším rozlišením jednotlivých znaků (max. 8x8 pixelů na znak). Pro svůj chod karta využila 16 KB vlastní paměti. Grafická paměť měla kapacitu 16 KB, což bylo její maximum. V době uvedení karet CGA a MDA nebyl na trhu barevný monitor RGBI. IBM uvedla RGBI monitor v roce 1983. Do tohoto okamžiku museli uživatelé používat převodník a připojit počítač k barevnému televizoru. 8
V roce 1984 IBM uvádí kartu Enchanced Graphics Adapter (EGA). Tato karta nabízela maximální rozlišení 640x350 pixelů a až šestnáct různých barev. Kapacita paměti byla až 256 KB. Karta byla plně kompatibilní s kartou CGA a částečně s kartou MDA. Šířka znaků se snížila z devíti na osm pixelů. Na EGA kartě byly integrovány obvody řadiče obrazovky (CRTC – Cathode Ray Tube Controller), řadiče přístupu do paměti apod. Vzhledem k tomu, že karta byla kompatibilní s MDA a CGA, byla poměrně komplikovaná a její programování nebylo v žádném případě jednoduché.
Taktéž v roce 1984 přichází IBM s první kartou poskytující 2D a 3D grafický výstup. Karta se jmenovala Professional Graphics Controller (PGC) a byla určena pro práci v Computeraided design (CAD) aplikacích. Karta byla určena přímo pro osobní počítače řady IBM PC. Grafický akcelerátor nabízel rozlišení 640x480 a zobrazil až 4096 různých barev. Kromě nativního grafického režimu byla podporována i částečná emulace grafické karty CGA. Pro zobrazení nativního grafického rozlišení 640x 480 pixelů a 256 barev bylo potřeba použít speciální monitor, který musel zvládnout jiné frekvence než monitory pro karty CGA, MDA či EGA. Monitor se připojoval skrze devítipinový konektor. Pomocí speciálního konvertoru bylo možno později připojit i monitor VGA, který byl také analogový a multifrekvenční. Pro svůj chod používala PGC 320 KB paměti. Nebyla pouze grafickým akcelerátorem, ale jednalo se o celý výpočetní subsystém. Již samotné zapojení do počítače bylo zajímavé. PGC byla tvořena třemi deskami. Dvě desky byly tvořeny „dlouhými“ ISA kartami, prostřední byla kratší a do počítače nebyla zapojena. Všechny tři desky byly propojeny kabelem, který tvořil interní sběrnici. Grafický akcelerátor dokázal provést zhruba 80 příkazů, které se týkaly práce s rastrovým obrazem, vykreslením vektorových plošných scén a hlavně práce s vektorově vykreslenou trojrozměrnou scénou. Mezi ostatní patřily např. rotace trojrozměrného modelu, nastavení zorného úhlu při 3D projekci do promítací roviny aj.
V roce 1987 přichází IBM s dalším technologickým rozvojem a uvádí kartu Video Graphics Array (VGA). Tuto kartu dokonce dokázalo IBM i integrovat přímo do základních desek počítačů. Tato karta byla částečně kompatibilní s CGA a EGA kartami s tím, že nebylo možno použít původní monitory (VGA karta používala jiné synchronizační frekvence). Karta zavedla i nové grafické rozlišení 320x200 pixelů v 256 barvách (velmi využíván 9
u počítačových her) a druhý režim s rozlišením 640x480 pixelů v 16 barvách. Druhý režim se stal oblíbený v CAD systémech. Jeho velkou výhodou bylo, že tvar pixelů byl čtvercový. Velikost paměti se rovnal 250 KB. Karta pro textový režim používala rozlišení 720x400 pixelů s velikostí znaku 9x16 pixelů. Výsledkem byla dobrá čitelnost znaků a obnovovací frekvence 70 Hz. Stejný textový režim se neustále používá při startování počítače Power-On Self-test (POST), v BIOSu i pro LINUX běžící v konzolovém režimu. Prakticky všechny dnes dostupné grafické karty jsou zpětně kompatibilní s VGA kartou.
Ve stejném roce představila IBM doplňkovou kartu IBM 854/A ke kartě VGA. Tato karta se stala prvním široce dostupným akcelerátorem určeným pro IBM PC, protože předchozí akcelerátory (jako PGA a jiné) byly velmi drahé a jejich užívání bylo omezeno pouze na profesionální účely. Karta IBM 8514/A se řadí spíše do skupiny grafických prostředků pro CAD aplikace, tedy aplikace na zpracování a rychlé zobrazení vektorů. Karta se do konfigurace zapojovala jako přídavná (tzn. druhá karta). Toto řešení a způsob sériového napojení karet do jednoho monitoru se jmenovalo Auxiliary Video Extension (AVE). Primární
kartou
byl
adaptér
VGA
poskytující
podporu
základních
textových
a grafických režimů. Karta IBM 854/A dokázala poskytnout rastrový obraz v rozlišení 1024x768 pixelů prokládaně (interlaced) nebo v rozlišení 640x480 pixelů neprokládaně (non-interlaced). Barevná hloubka mohla být (dle velikosti paměti) 16 nebo 256 současně zobrazených barev. Kromě těchto dvou rozlišení neumožňovala karta zobrazit další grafické nebo textové režimy (tyto musela zobrazit primární grafická karta). Pro synchronizaci jednotlivých pixelů při čtení z video paměti nebo během zobrazení snímků byly použity dva krystaly s frekvencí 44,9 MHz (pro rozlišení 1024x768) a s frekvencí 25,1 MHz (pro rozlišení 640x480), jež byly plně kompatibilní s kartou VGA. Video paměť měla kapacitu 1 MB nebo 1,5 MB – od velikosti paměti se odvozoval maximální počet zobrazovaných barev.
10
Obrázek č. 1 Zjednodušené schéma karty IBM 8514/A
S nástupem operačních systémů s grafickým uživatelským rozhraním (GUI) se v devadesátých letech minulého století začaly objevovat tzv. grafické akcelerátory, které již byly tvořeny jediným čipem a obsahovaly funkce pro urychlení často používaných grafických operací. Mezi nejznámější grafické akcelerátory první poloviny devadesátých let patří např. čipy firmy Cirrus Logic (CL-GD 542x a jiné) nebo později vyspělejší čipy firem S3, popř. Matrox. Grafická karta se během těchto let proměnila ve druhou nejdůležitější komponentu moderního počítače. Z pasivních grafických čipů se vyvinuly sofistikované grafické jednotky označované jako Graphics Processing Unit (GPU) nebo také Visual Processing Unit (VPU), které svým výkonem mnohdy předčí i moderní procesory. Hlavní hybnou silou vývoje výkonných grafických akcelerátorů ovšem nebyly profesionální CAD či vizualizační aplikace (pro ty existovaly specializované akcelerátory a platformy již v polovině osmdesátých let), byly to bezpochyby počítačové hry, které rozhýbaly vývoj 3D grafiky na PC. Pravdou ovšem zůstává, že technologie a know-how pro vývoj prvních herních 3D akcelerátorů představených v letech 1995 - 98 pocházelo od firem, které se specializovaly právě na profesionální akcelerátory a platformy; vůbec první 3D karta určená pro hráče, 3D Blaster VLB, pracovala s čipem 3D Labs GameGlint a firmu nVidia, která uvedla svůj první čip NV1 na trh v roce 1996, založili bývalí zaměstnanci SGI. Je tak trochu ironií osudu, že toto know-how se po několika letech vrátilo oklikou zpět do oblasti profesionální grafiky a 3D vizualizace. 11
2.3
Trh grafických karet
Zatímco v historii existovalo značné množství výrobců grafických karet, kteří vyvíjeli čipy výhradně pro vlastní produkci, dnes si tuto filozofii udrželo pouze několik menších firem. Trhu s grafickými akcelerátory tak nevládnou jednotliví výrobci grafických karet jako takových, ale výrobci jednotlivých čipů. V současné době se jedná prakticky o duopol firem ATi a nVidia. Další výrobci se tak specializují buď na cenově výhodná řešení, nebo se věnují specifické části trhu, jako jsou profesionální uživatelé, kteří vyžadují špičkové 2D technologie či podporu více než dvou monitorů. Značná část trhu připadá pochopitelně na integrovaná řešení dodávaná z větší části firmou Intel, z menší části pak firmou VIA či SiS. Svá integrovaná řešení 3D grafiky využívající Unified Memory Architecture (UMA) nabízejí také ATi i nVidia. Specifickou oblastí jsou speciální grafické moduly pro přenosné počítače, i zde kontrolují trh ATi a nVidia. Grafické karty postavené na GPU stejného typu (například GeForce GTX 260 či Radeon HD4870) obvykle nabízejí prakticky stejný výkon, neboť jsou postaveny na shodném designu a obdobných komponentech.
Grafické čipy pro přenosné počítače tvoří prakticky samostatný trh. Zatímco dříve byla drtivá většina displejů v noteboocích obsluhována grafickými obvody integrovanými v mobilním chipsetu, dnes jsou přenosné počítače poháněny speciálními verzemi GPU. Ty jsou obvykle odvozeny od stolních verzí, navíc ale disponují funkcemi pro šetření energií a často mají integrovánu vlastní paměť přímo v GPU. Běžné přitom je, že mobilní grafické akcelerátory jsou lehce pozadu za technologiemi dostupnými pro stolní PC. Jak vlastně vypadá současná grafická karta? Co umí, čím se vyznačuje a jaké parametry musí mít? Společným jmenovatelem grafických karet, bez ohledu na značku a typ jejich GPU, je rozhraní DirectX. Právě plná kompatibilita s jistou verzí DirectX definuje jednotlivé generace grafických karet. V současné době tak existují tři generace - karty plně kompatibilní s DirectX 8, DirectX 9 a DirectX 10. DirectX 8: Přichází s dvěma novými funkcemi: Pixel Shader a Vertex Shader. 3D grafické objekty jsou tvořeny pomocí stovek, nebo dokonce tisíců polygonů (což jsou trojúhelníky nebo čtverce). Přes tyto polygony jsou použity textury nebo barvy, které vytvoří 3D objekt. S Verte Shadery je možno měnit vlastnosti každého vrcholu u každého polygonu. S Pixel Shadery je zase možno měnit vlastnosti jednotlivých pixelů u každého polygonu. Před těmito funkcemi nebylo možno tyto vlastnosti měnit, resp. bylo možno měnit pouze vlastnosti 12
celých polygonů. Díky těmto funkcím se stal obraz realističtější a každý bod každého polygonu je plně programovatelný. Bylo možno použít až 12 instrukcí najednou. Grafické karty založené na tomto modelu jsou např.: GeForce 3, GeForce 4 Ti a Radeon 8500, Radeon 9000, Radeon 9100, Radeon 9200 a Radeon 9250. DirectX 9: Tato verze přináší Shader 2.0, resp. ve verzi DirectX 9.0c je podporován Shader 3.0. Je možno použít až 96 instrukcí najednou (v 2.0) a 65535 instrukcí (v 3.0). Tímto se dosáhlo mnohem větší kvality 3D objektu a zvýšil výkon. Grafické karty založené na těchto verzích jsou: GeForce FX, GeForce 6 a 7 a Radeony řad X300, X800 a X1000. DirectX 10: S touto verzí přichází Shader 4.0, který zásadním způsobem mění architekturu Graphic procesor unit (GPU). V předchozích verzích byly odděleny výpočetní jednotky Vertex a Pixel shaderu. Pokud výpočetní jednotky jednoho typu byly zahlceny, musela instrukce čekat na jejich uvolnění, tím docházelo k prodlevám při výpočtech. U GPU podporujících DirectX 10 jsou výpočetní jednotky všeobecné, schopné řešit jakýkoliv potřebný výpočet. U těchto karet je instrukce pozdržena pouze tehdy, je-li zaneprázdněn procesor GPU. Grafické karty založené na této verzi jsou např.: GeForce série 8, 9 a 200 a Radeony série HD2000.
2.4
Chronologický vývoj
Rok 1984: První grafická karta s podporou 2D a 3D funkcí byla uvedená firmou IBM. Jedná se o kartu PGC (obr. 2). Karta vyžadovala dva „dlouhé“ ISA sloty a měla 320 KB paměti.
Obrázek č. 2 PGC od IBM1
Rok 1987: Firma IBM uvádí přídavný grafický akcelerátor IBM 8514/A (obr. 3). Karta poskytovala max. rozlišení 1024x768 pixelů s pamětí velikosti až 1,5 MB.
1
Obrázek č. 1 až 17 – zdroj www.tomshardware.co.uk
13
Obrázek č. 3 IBM 8541/A
Rok 1995: První 3D akcelerátor určený pro hráče uvádí na trh firma Creative. 3D Blaster VLB (obr. 4) je postaven na čipu GameGlint firmy 3D Labs a vyžaduje VLB slot. Jedná se o přídavnou kartu a funguje s cca půltuctem her.
Obrázek č. 4 3D Blaster VLB
Rok 1996: V oblasti poloprofesionální grafiky vládne Matrox Millenium II obsahující některé 3D funkce. nVidia uvádí čip NV1 (obr. 5), který kombinoval funkce 2D, 3D a zvuku na jedné kartě. S3 uvádí čip Virge s podporou 3D typického zástupce tzv. "nulté" generace. Výkonem a funkcemi ale vítězí novinky Voodoo Graphics firmy 3dfx.
Obrázek č. 5 nVidia NV1
Rok 1997: Trhu vládne Voodoo Graphics (obr. 6) spolu s PowerVR, objevují se ale karty první generace, které v sobě kombinují 2D a 3D například nVidia Riva 128.
14
Obrázek č. 6 Voodoo Graphics
Rok 1998: 3dfx uvádí druhou generaci přídavné 3D karty, Voodoo2 (obr. 7), ATi představuje Rage Pro, jeden z prvních čipů navržených pro AGP rozhraní. nVidia představuje na sklonku roku TNT kartu, která kombinuje 2D a 3D s pamětí 16 MB.
Obrázek č. 7 Voodoo2™ 1000 PCI
Rok 1999: Konkurence sílí a nVidia přešla s uvedením TNT2 na šestiměsíční vývojový cyklus, 3Dfx uvádí svou poslední úspěšnou kartu Voodoo3, ATi odpovídá čipem Rage 128 (obr. 8), který na konkurenci ztrácí v kvalitě. Matrox uvádí na trh karty s čipem G400, tedy první adaptéry s podporou dvou monitorů. Na sklonku roku uvádí nVidia čip třetí generace GeForce 256 a označuje jej termínem Graphics Processing Unit (GPU), analogicky k CPU.
Obrázek č. 8 ATi Rage 128 Pro
Rok 2000: nVidia k velkému překvapení uvádí GeForce2 GTS (obr. 6), která dokáže spočítat více než miliardu texelů za vteřinu. Novinky jako ATi Radeon, 3dfx Voodoo5 a S3 15
Savage 2000 tak nemají šance na výrazný úspěch. Transformation & Lighting (T&L) se prosazuje jako budoucí standard. Na konci roku přichází GeForce2 Ultra.
Obrázek č. 9 GeForce2 GTS
Rok 2001: Jako první představila novou kartu firma nVidia, tentokráte GeForce3 obsahující obvody pixel a vertex shader, a tudíž i plnou podporu rozhraní DirectX 8 (57 mil. tranzistorů). nVidia odkupuje aktiva 3dfx a S3 se stává součástí společnosti VIA. Jediným skutečným konkurentem firmy nVidia tak zůstává společnost ATi, která ve druhé polovině roku uvádí vlastní DX 8 kartu Radeon 8500 (60 mil. tranzistorů), (obr. 10).
Obrázek č. 10 ATi Radeon 8500
Rok 2002: Jako první uvádí v únoru nové čipy nVidia. GeForce4 Ti. SiS uvádí řadu grafických čipů Xabre, které mají konkurovat nejlevnějším kartám ATi a nVidia. V létě pak ATi uvádí kartu Radeon 9700 Pro (obr. 11). Ta nabízela jak velké množství nových funkcí, 256bitové paměti, tak značný nárůst rychlosti. Tento čip se stal historicky prvním, který plně podporoval DirectX 9.0 včetně výpočtů s plovoucí řádovou čárkou, které umožňují až filmovou kvalitu výstupu.
16
Obrázek č. 11 Hercules 3D Prophet 9700 Pro
Rok 2003: První čipy NV30 pojmenované GeForce FX 5800 (obr. 12) a GeForce 5800 Ultra od firmy nVidia. ATi uvádí grafické karty Radeony 9800 PRO a následují je karty Radeon 9600 s čipem RV350.
Obrázek č. 12 nVidia GeForce FX
Rok 2004: V tomto roce je uvedena nová sběrnice pro připojení grafické karty, rozhraní s názvem PCI Express (PCI-E). ATi uvádí kartu řady X800 (obr. 13), (160 mil. tranzistorů) respektive X700 a X300 nativně pro nové rozhraní PCI-E. nVidia odpovídá uvedením GeForce 6600 GT (222 mil. tranzistorů). Obě karty mají čipy vyrobeny 130 nm technologií.
Obrázek č. 13 ATi Radeon X800
17
Rok 2005: Oba hlavní hráči se opět předháněli - kdo dál, lépe a rychleji. nVidia jako první uvedla kartu GeForce 7800 GTX (obr. 14) vyrobenou technologií 110nm a s 302 mil. tranzistorů v GPU. ATi odpověděla kartou Radeon X1800XL s technologií 90nm a s 320 mil. tranzistory. Během cca 12 měsíců tak došlo k navýšení množství tranzistorů v GPU o cca 100 milionů.
Obrázek č. 14 GeForce 7800 GTX
Rok 2006: ATi se ubírá cestou mírné evoluce modelem Radeon X1900 (při 384 mil. tranzistorech a výrobním procesem 90nm). Oproti tomu nVidia uvádí novou kartu GeForce 8800 GTX (obr. 15) se 681 mil. tranzistory při výrobním procesu 90nm.
Obrázek č. 15 GeForce 8800 GTX
Rok 2007: V tomto roce se situace obrací. nVidia zůstává u úspěšné karty 8800 GTX. Oproti tomu ATi vyrovnává uvedením karty Radeon HD 3870 (obr. 16) s 666 mil. tranzistory s výrobním procesem 55nm.
18
Obrázek č. 16 ATi Radeon HD 3870
Rok 2008: ATi vydává velmi úspěšnou kartu Radeon HD 4870 (obr. 17), (956 mil. tranzistorů při 55nm výrobním procesu). Oproti tomu nVidia přišla s kartou GeForce GTX 280 (výrobní proces 65nm a 1400 mil. tranzistorů). Pro představu nejvýkonnější čtyř-jádrové procesory AMD (AMD Phenom II X4 920 Quad-Core) a Intel (Core i7-940 Quad-Core) obsahují „pouze“ 758 mil. tranzistorů, resp. 731 mil. tranzistorů2. Oproti roku 2001 se počet tranzistorů v GPU u ATi zvedl 16x (60 mil oproti 956 mil) a nVidia 24,5x (57 mil. oproti 400 mil.).
Obrázek č. 17 ATi Radeon HD 4870
2
www.zive.cz
19
3. Úloha grafické karty a její význam v osobním počítači 3.1
Definice grafické karty?
Grafická karta je specifický typ hardwaru, který se stará o převod signálu z počítače do takové formy, aby tento bylo možno vidět na zobrazovacím zařízení. Grafická karta úzce spolupracuje s procesorem a provádí 2D a 3D výpočty. Vzhledem k tomu, že má svůj vlastní procesor podporující grafické výpočty na hardwarové úrovni, dokáže zpracovat grafické výpočty mnohem rychleji než CPU. Grafické karty potřebují mít i vlastní prostor pro ukládání výpočtů, vlastní paměť. Karty můžeme rozdělit na samostatné grafické karty a na integrované se sdílenou pamětí. Integrované karty jsou součástí základní desky, jsou levnější a s nižším výkonem. Samostatné grafické karty se připojují k počítači prostřednictvím slotu. Tyto karty se mohou propojit dohromady, a tím poskytnut vysoký výpočetní výkon. Grafické karty se vždy liší typy GPU, velikostí vnitřní paměti, sběrnicí, pro kterou je karta určena, a v neposlední řadě i výrobcem3.
3.1.1 Integrované grafické karty Integrované grafické karty jsou grafické karty umístěné přímo v základní desce. Tyto karty využívají pro svůj chod část paměti RAM. Počítače s integrovanou grafickou kartou představují převážnou většinou všech dodaných PC. Toto řešení je levnější na implementaci než samostatné grafické karty, zároveň je ale méně výkonné. V minulosti tato řešení nebyla vhodná pro 3D grafiku nebo pro náročné 2D aplikace. Nicméně v dnešní době jsou i tyto karty schopné zvládnout náročnější 2D aplikace a jednodušší 3D grafiku. Každopádně většina integrovaných karet stále neumožňuje high-end 3D grafiku. Největším omezením je nízká rychlost pamětí typu RAM použitých v základních deskách. Rychlost RAM se pohybuje kolem 12 GB/s, zatímco u samostatných karet se jedná o rychlost až 100 GB/s.
3
www.levnapc.cz
20
3.1.2 Samostatné grafické karty Samostatné grafické karty se k základní desce připojují pomocí rozšiřujícího slotu PCI Express (PCIe) nebo Accelerated Graphic Port (AGP). Mohou tak být jednoduše nahrazeny novou kartou za podmínky, že základní deska tuto kartu podporuje. Samostatná grafická karta nemusí být nezbytně odnímatelná nebo se standardním rozhraním. Výraz „samostatná“ poukazuje na fakt, že karta má svou vlastní RAM. Samostatné karty pro notebooky jsou většinou připojeny nestandardním rozhraním a často skrze unikátní slot. Tyto sloty jsou stále považovány za PCIe nebo AGP pouze díky logice rozhraní, i když nejsou fyzicky zaměnitelné.
V historii grafických karet se používalo několik typů rozhraní pro připojení karty do výpočetního systému (PC): Sběrnice ISA: (obr. 18) Jedná se o nejstarší a také nejjednodušší sběrnici používanou pro počítače typu IBM PC. Název vychází z anglického „Industry Standard Architecture“. Sběrnice byla navržena firmou IBM v roce 1980 a v roce 1981 byla poprvé použita u počítače typu IBM PC. Z počátku byla sběrnice s osmibitovým rozhraním a 62 pinovým konektorem, od roku 1984 se začala používat s rozhraním šestnáctibitovým a konektorem s 98 piny. Tato sběrnice se v IBM označovala jako AT Bus. Šestnáctibitová verze se ve výpočetní technice používala velmi dlouho hlavně díky své konstrukční jednoduchosti.
Obrázek č. 18 Konektor sběrnice ISA4
4
http://images.absoluteastronomy.com/images/encyclopediaimages/i/is/isa_bus_pins.png
21
Sběrnice VESA Local Bus (VLB): (obr. 19) Byla navržena sdružením Video Electronics Standards Association (VESA) jako doplněk k pomalejší sběrnici ISA, zatímco ISA byla určena pro libovolné zařízení. VESA Local Bus měla být využívána zejména pro grafické karty, řadiče disků a síťové karty. Používala se u počítačů řady 486. Sběrnice sdílela datovou a adresovou část s CPU počítače, což mělo mimo jiné za následek omezení počtu připojených zařízení na tři. Větší počet by příliš proudově zatížil procesorovou sběrnici.
Obrázek č. 19 Konektor sběrnice VESA Local Bus5
Sběrnice PCI: Zkratka vznikla ze slovního spojení „Peripheral Component Interface“. V současnosti se jedná o nejpoužívanější sběrnici a to nejenom u počítačů typu IBM PC, tak i v počítačích jiných výrobců. Sběrnice byla představena firmou Intel v roce 1992 a od této doby se stala průmyslovým standardem. Její úspěch je založen na nevyhovujících parametrech předchozích sběrnic. ISA byla velmi pomalá a VESA Local Bus byla pouze lokální sběrnicí a orientovala se na procesory řady 486. Hlavní předností sběrnice PCI je podpora „Plug and Play“ – dynamické detekce a konfigurace zařízení po zapnutí počítače. Sběrnice existuje v několika různých variantách, které se liší taktovací frekvencí, velikostí napájecího napětí a šířkou datové sběrnice. PCI sběrnice se velmi často používá pro připojení grafických karet (prakticky již od roku 1992). Nejznámějším rozšířením PCI sběrnice je sběrnice označená PCI Express (PCI-E). Při jejím návrhu bylo myšleno na nedostatky předchozích typů sběrnic. Do jednoho systému se povedlo sjednotit připojování různých typů rozšiřujících karet. PCI-E je navržena pro použití od notebooků až po serverové systémy a to nejen pro připojení grafických akcelerátorů, ale i pro nativní propojení komponent na základní desce. Dále může sloužit i jako rozhraní pro karty do notebooků 5
http://pics.computerbase.de/lexikon/118726/300px-VLB_pins.png
22
(PCI-E podporuje i karty Express Card). Na rozdíl od předchozích sběrnic PCI-E nekomunikuje paralelně, ale sériově, což má výhodu hlavně při zvyšování rychlosti nedochází k přeslechům mezi kanály. Přenosová rychlost této sběrnice se pohybuje v řádech až desítek GB/s. Zvyšování rychlosti se u této sběrnice provádí buď zvýšením frekvence přenášení dat, anebo přidáváním dalších párů signálů. Takto se může základní rychlost sběrnice zvyšovat v násobcích 1x, 2x, 4x, 8x, 12x, 16x.
Obrázek č. 20 Sběrnice PCI (vlevo) a sběrnice PCI - Express6
Port AGP: Zaujímá v hierarchii sběrnic zvláštní místo. Představen firmou Intel v roce 1997. Nejedná se o sběrnici v pravém slova smyslu. K AGP lze připojit pouze jedno zařízení. AGP neobsahuje tzv. arbitrážní obvod, který je typický pro všechny ostatní sběrnice. AGP zkratka je odvozena od „Advanced Graphics Port“. Z názvu je patrné, že port je určen pro připojení grafických adaptérů, zejména grafických akcelerátorů. Hlavním důvodem zavedení AGP byl požadavek na rychlý přenos grafických dat pro 3D scény. Port AGP vznikl úpravou sběrnice PCI. Respektive odstraněním již zmíněného „arbitrážního obvodu“ a oddělením datové a adresní cesty. Port AGP využívá tzv. „sideband addressing“ – kdy je oddělena 8bitová sběrnice pro přenos „adresních“ signálů, čímž umožňuje plně využít hlavní sběrnici pro přenos dat. AGP podporuje dvě frekvence 33 MHz (PCI) a 66 MHz. Protokol pro port AGP má také specifické režimy přenosu dat, které nejsou u jiných portů či sběrnic známé. Jedná se např. o zvláštní režim přenosu textur, kdy rastrová data textury mají příznak „pouze pro čtení“. Tímto se zaručí, že textury nejsou ukládány do vyrovnávací paměti a díky tomu
6
http://upload.wikimedia.org/wikipedia/commons/6/6f/PCI_Keying.png
23
dochází ke zvýšení využití vyrovnávací paměti potřebnými daty až o desítky procent. Dalším režimem je režim Direct Memory Access (DMA) - kdy jsou veškerá rastrová data textur uložena v paměti akcelerátoru. Kopírování nových dat do paměti akcelerátoru probíhá ve velkých blocích a zatěžuje systém. Zátěž je však pouze občasná a krátkodobá. Režim DMA je výhodný pokud je na grafickém akcelerátoru paměť s dostatečnou kapacitou. Nelze opomenout ani režim Execute, kdy je paměť akcelerátoru rovnocenná s pamětí systému. Takže při texturování se nemusí na grafický akcelerátor přenést celá textura, ale je možno přenést jen její malou část, která je v daný okamžik potřeba.
Obrázek č. 21 Konektory pro port AGP7
3.2
Součásti grafické karty
Každá grafická karta má několik základních součástí (obr. 22). GPU: Nejdůležitější součástí je „Graphic processing unit“ čip, který obsahuje velké množství tranzistorů (v dnešní době v řádech miliard). Vypočítává data, která obdrží od procesoru. Čip se stará o vytváření grafiky a výstup je posílán na zobrazovací zařízení. Paměť: Zde se ukládají informace nutné pro grafické výpočty. Je-li karta integrovaná na základní desce, používá se k těmto účelům část operační paměti počítače. Samostatné karty používají paměti typu GDDR nebo DDR.
7
http://www.hardwaresecrets.com/imageview.php?image=856
24
Random Access Memory Digital-to-Analog Converter (RAMDAC): Jedná se o kombinaci tří DAC (Digital-to-Analog) převodníků (pro každou barvu RGB zvlášť). Slouží k převodu digitálního signálu na signál analogový. Který jsou schopny zobrazit CRT monitory. LCD monitory dokáží pracovat přímo s digitálním signálem a nehrozí tím ztráta kvality signálu při konverzi. Výstupy z karty: Jedná se o konektory, díky kterým lze z karty vyvést zpracovaný signál. Může se jednat o VGA výstup (analogový výstup pro analogová zobrazovací zařízení), DVI výstup (digitální výstup pro digitální zobrazovací zařízení) nebo o HDMI (digitální výstup pro přenos obrazového a zvukového signálu). Konektor: Slouží pro připojení grafické karty k systémové sběrnici počítače (pokud není GPU integrován v základní desce).
Obrázek č. 22 Schéma grafické karty8
8
www.markonet.cz/pages/vyuka/principy-pocitacu/47grafika/grafika.jpg
25
4. Popis fungování grafické karty V následující kapitole se zaměříme na princip práce grafické karty. Postupně projdeme některé funkce, které většina grafických karet zvládá a potřebuje pro vytvoření výsledného obrazu. Vzhledem k velkému rozsahu nebudou zdaleka popsány všechny realizované možnosti akcelerace počítačové grafiky. Pro začátek si řekněme, kde má smysl počítačovou grafiku akcelerovat: •
Nutnost zobrazení grafické informace v časově důležitých aplikacích. Mezi takové aplikace patří např. počítačové hry, virtuální reality (aplikace pro automobilový průmysl, různé simulátory apod.). Někdy se také označují jako interaktivní grafika. Kladou velký důraz na rychlé změny ve scéně při interaktivním vstupu uživatele. Základním ukazatelem zde bývá množství zobrazených snímků za sekundu - frames per second (fps). Pokud se počet snímků sníží pod určitou úroveň (cca 15 fps), ztrácí uživatel dojem plynulosti. Grafické akcelerátory pro interaktivní grafiku jsou v dnešní době nejvíce používané.
•
Tvorba fotorealistické grafiky. Ta se v dnešní nejvíce využívá ve filmovém průmyslu (reklama, filmy apod.). Zde se mohou použít metody stejné jako v interaktivní grafice nebo metody pracující s globálním osvětlováním scény. Tyto metody jsou ovšem značně náročné na výkon procesoru. Akcelerace lze dosáhnout například paralelním zpracováním animace, nebo se používají specializované grafické akcelerátory. Tyto se však svým uspořádáním a vlastnostmi diametrálně odlišují od akcelerátorů pro interaktivní grafiku.
•
Poslední oblastí je zrychlování méně častých postupů pro vykreslování prostorových scén. Může se jednat například o postupy zobrazování voxelů, využívání částicových systémů, anebo plošných elementů (surfelů). Tyto metody souvisejí s reprezentací těles v prostorových scénách.
Jednou z prvních oblastí, kterou bylo potřeba zjednodušit a zrychlit, bylo vykreslování kurzoru myši. Na první pohled operace nevýznamná, vždyť kurzor má typicky 20x20 pixelů. Opak je pravdou. Při každém vykreslení kurzoru je potřeba testovat, zda vykreslený obrazec nebo dialog nezasahuje do oblasti kurzoru. Pokud kolize nastala, bylo potřeba obrazec nejprve „neviditelně“ vykreslit do paměti počítače a poté provést jeho kombinaci s kurzorem 26
myši. Výsledný obraz okna nebo dialogu bylo následně možno vykreslit na obrazovku. Také pohyb kurzoru musel být řešen. Objem dat, který byl zbytečně přenášen, se při celodenní práci s Graphic User Interface (GUI) mohl pohybovat až do gigabitů. HW řešení se začalo objevovat již během první poloviny devadesátých let. Rastrový obraz kurzoru byl kombinován s rastrem pozadí až během vykreslování. Vlastní pozadí nebylo kurzorem nijak měněno.
Při práci s animacemi je často potřeba zobrazovat sekvence snímků s vysokým počtem zobrazených snímků za sekundu. Vzhledem k vysokému počtu pixelů, ze kterých je složen video snímek a velkému počtu barev, je potřeba do grafického akcelerátoru přenášet velká množství dat. Nutná rychlost přenosu dat se pohybuje v řádech desítek až stovek megabitů za sekundu. Pokud by měl veškerý přenos řídit samotný procesor, došlo by k velkému zatížení celého počítače (hlavně z důvodu častého přepisu vyrovnávací paměti procesoru). Pokud však grafický akcelerátor převezme řízení přenosu dat, klesne zatížení procesoru až o cca 50 %. Grafický akcelerátor má také schopnost zvětšovat, zmenšovat nebo zrcadlit zobrazované video (někdy dokonce neproporcionálně). Zde se musí používat různé metody interpolace a filtrace, aby nevznikly nežádoucí vizuální artefakty. Tyto operace se provádí přímo uvnitř grafického akcelerátoru. Pokud by výpočet prováděl procesor, byly by velmi pomalé, protože by docházelo k dvojímu přenosu dat přes sběrnici a vyrovnávací paměť.
Grafické akcelerátory se neustále zlepšují a zrychlují. Z toho důvodu je čím dál více grafických algoritmů uloženo přímo v jejich čipech (GPU). Toto je důležité hlavně v případě, že se kromě samotného zobrazování provádí i jiné výpočty, např. výpočty trajektorií, kolize pohybujících se těles anebo fyzikální simulace. Tehdy je vhodné ponechat co nejvíce výkonu procesoru pro výpočet simulace a ostatní grafické algoritmy či jejich části provádět v procesoru grafického akcelerátoru (GPU). Během doby se tak stále více výpočetních algoritmů, souvisejících s výpočtem obrazu, přesouvá z CPU do procesoru grafického akcelerátoru (obr. 24).
27
Obrázek č. 23 Vývoj zpracovávání algoritmů v GPU
4.1
Podpora vykreslování základních 3D objektů
Mezi nejčastěji používané akcelerátory patří takové, které zvládají rychle vykreslit prostorová tělesa pomocí hraniční interpretace. To znamená, že dokáží velice rychle zobrazit vyplněné trojúhelníky s korektním řešením jejich vzájemného překryvu podle vzdálenosti od pozorovatele. Tato operace musela být pro reálné užití značně rozšířena. Každý trojúhelník totiž může být osvětlen jedním nebo více světelnými zdroji, anebo pokryt texturou, případně obojím. Povrch může být zadán polygony s větším počtem vrcholů, takže může být potřeba provádět převod (tesselaci) obecných polygonů na trojúhelníky. Dále je žádoucí provádět při vykreslování obrazu i operace s vytvářenými objekty, např. postupné skrývání v mlze (fog), bilineární nebo trilineární filtrace textur, vyhlazování hran (antialiasing) – viz obr. 24.
28
Obrázek č. 24 Princip fungování antialiasingu9
4.2
Pokročilé metody zobrazování textur
Grafické akcelerátory vykreslují povrch těles složených z polygonů (obr. 25). Během vykreslování mohou použít různé vizuální efekty (textury).
Obrázek č. 25 Příklady polygonů
Nejzákladnější grafické systémy umožnily zobrazit plošné trojúhelníky. Tyto mohly být vyplněny konstantní barvou, nebo barevným přechodem. Výpočet barvy v plošce nebo jednotlivých vrcholů bylo nutné provádět v procesoru počítače. Tyto grafické karty potřebovaly malou video paměť. Tato paměť se využívala pro barevný buffer (colour buffer) a paměť hloubky barev (depth buffer), texturování nebylo podporováno. Tyto akcelerátory se
9
http://twuid.pbwiki.com/f/anti-aliasing.png a http://upload.wikimedia.org/wikipedia/commons/a/ae/Anti-
aliasing.jpg
29
proto používaly pro zobrazování trojrozměrných modelů v CAD systémech. Na počítačích typu IBM PC nebyly příliš rozšířeny. Pokročilejší akcelerátory přidaly možnost pokrýt zobrazené trojúhelníky texturami, tzn. barevnými rastrovými obrázky. Textury bylo možno kombinovat s původní barvou trojúhelníku. Tyto akcelerátory již měly vyšší požadavky na video paměť, která se používala i k uložení textur. Mezi typické představitele, které obsahovaly Texture Memory Unit (TMU), patřily karty 3Dfx Voodoo Graphics 1. Jako další krok bylo potřeba co nejvíce urychlit vykreslování. Toho mohlo být dosaženo zvýšením taktu v GPU, rozšířením datové sběrnice v akcelerátoru nebo vykreslováním více pixelů najednou či počítat a kombinovat barvy z více textur. Mezi představitele patřila např. karta ATi RAGE 128. Tato karta umožnila vykreslit dva pixely v jednom taktu nebo jeden pixel s kombinací dvou textur „multitexturování“. Následně již akcelerátory aplikovaly pokročilé grafické algoritmy, např. podporovaly Transform and Lighting (T&L), (tuto funkci si přiblížíme později), skrývání objektů v mlze, antialiasing a v neposlední řadě podporu „display listů“, které umožnily do paměti akcelerátoru seskupit velké množství dat a tato potom vykreslit pomocí jednoduchého příkazu. Mezi představitele patřila karta nVidia GeForce 256. Dalším krokem bylo zabudování podpory pro zobrazování těles v hraniční reprezentaci s využitím osvětlovacích modelů. Přidaly se metody komprimace a dekomprimace textur, trojrozměrné textury, pokročilý antialiasing, osvětlování na úrovni pixelů, výpočet stínů, podpora trojrozměrných textur a jejich osvětlování na úrovni pixelů tzv. bump mapping (obr. 25) a mapování prostředí. Začala být také podporována funkce částečné programové změny při zpracování jednotlivých vrcholů a fragmentů. Jedná se tedy o programovatelné jednotky, s jejíž pomocí lze přeprogramovat některé části vykreslovacího řetězce. Nazývají se Vertex shader a Pixel shader.
30
Obrázek č. 26 Příklad Bump mappingu10
4.2.1 Transform & Lighting Transform: Provádí výpočet lineárních transformací bodů a vektorů. Dalším úkolem je odstraňování neviditelných nebo odvrácených polygonů před jejich vykreslením. V prvním kroku je zapotřebí transformovat polygony do souřadnic odpovídajících pozici a orientaci pozorovatele. Následně je možné rozhodnout, zda je polygon pro pozorovatele viditelný či nikoliv. Pokud je polygon pro pozorovatele neviditelný, je možno ho odstranit. Dále se uskuteční transformace ze souřadnic pozorovatele do souřadnic, které odpovídají viditelné ploše monitoru. Po provedení se mohou odstranit ty části, které nejsou viditelné. Úkolem Transform je vynásobení souřadnic každého vrcholu pohledovou transformační maticí, odebrání neviditelných částí, následně vynásobení maticí projekční, homogenizace souřadnic a ořez ploch, které se nacházejí mimo oblast záběru. Tyto operace nejsou složité na realizaci, hlavně díky možnosti proudového zpracování dat a grafickým pipeline - což je základem vysoké rychlosti grafických akcelerátorů. Tyto výpočty by se daly provádět pomocí procesoru počítače. Vzhledem k množství vrcholů u trojrozměrných scén by se procesor značně zatížil, a tím by se snížila rychlost vykreslení. Proto se tyto výpočty realizují přímo v grafickém akcelerátoru.
10
www.mayamax3d.net/pict/slovnik/bumpmapping.jpg
31
Lighting: je jednotka pro výpočet osvětlení jednotlivých polygonů. Výpočty se dle požadované kvality zobrazení provádějí buď pro každý vrchol polygonu, nebo pro každý vykreslovaný pixel. Druhá možnost je náročnější na výpočetní výkon, ale poskytuje lepší vizuální výsledek. Pro výpočet osvětlení se používá empirický Phongův osvětlovací model11, který je relativně jednoduchý a rychlý pro výpočet. Zároveň poskytuje poměrně dobré výsledky. Teoreticky by bylo možné použít i jiné, přesnější modely, ty se ale nehodí pro svoji vysokou početní náročnost. Pro každý polygon, který má být osvětlen je také nutné zadat normálu. Ta může být konstantní pro celou plochu polygonu, nebo je jiná pro každý jeho vrchol. Pokud je normála konstantní, je osvětlení pro polygon vypočteno pouze jednou a polygon je pokryt konstantní barvou. V případě normály pro každý vrchol se i osvětlení počítá zvlášť a polygon je pokryt barevným přechodem.
Samotná realizace výpočtu osvětlení zahrnuje hlavně výpočty skalárních součinů vektorů, normalizaci a výpočet exponentu. Realizace je tedy složitější než v případě „Transform“. Některé grafické akcelerátory měly tuto jednotku redukovanou a některé výpočty se prováděly na procesoru počítače.
4.2.2 Pixel a Vertex shader Pod jménem shadery se v počítačové grafice skrývají programy, které se vykonávají přímo v GPU grafického akcelerátoru a které mají dopad na základní vykreslovací algoritmy. Skrze shadery lze ovlivnit způsob vykreslování pixelů, geometrii vykreslovaných ploch, měnit textury, výpočty osvětlení těles ve výsledném obrazu. Modifikací textur lze vytvářet textury nezávislé na rozlišení výsledné scény apod. Shadery se zapisují do renderovacích programů pomocí programovacího jazyka, který může obsahovat například celá i desetinná čísla, vektory, matice, barvy atd. Shadery slouží k modifikaci výpočtů ve vykreslovacím řetězci. Úlohou vertex shaderu je modifikace orientace vrcholů a poloh bodových světel. Pixel shader má za úkol modifikovat texely čtené z textur a zapisovaných do bufferu.
11
www.root.cz/clanky/opengl-19-phonguv-osvetlovaci-model/
32
Vertex shader: Je zpracováván v jednotce umístěné přímo v procesoru grafického akcelerátoru (GPU). Skrze tuto jednotku je možno přeprogramovat transformační řetězec (pipeline). Všechny geometrické údaje o vrcholech vykreslovaných polygonů procházejí před rasterizací touto pipeline. Kromě těchto údajů se v pipeline zpracovávají i jiné vektorové informace jako jsou pozice, směr a orientace světel ve scéně a také koordináty v textuře. Tyto mohou být specifikovány zvlášť pro každý vykreslovaný vrchol.
Obrázek č. 27 Vertex jednotka v kartě nVidia GeForce 312
Z obrázku je možné zjistit, že Vertex shader disponuje nejen daty vstupními (Vertex input), ale i informacemi, které má k dispozici naprogramovaná transformační jednotka, proto je možné využívat zadané transformační matice, parametry pro osvětlení aj. Mezi výpočty a ostatní informace si jednotka může ukládat informace do registrů (Registers), které pracují na podobném principu, jako registry v CPU.
Pixel shader: Nachází se v samostatné programovatelné jednotce, která je také umístěna v procesoru grafického akcelerátoru. Skrze Pixel shader lze programově měnit operace provedené nad vykreslovanými fragmenty. K těmto operacím patří bump mapping, modulace textur apod. Mezi pokročilé operace se dají zařadit efekty na pixelové úrovni (neobsažené v grafickém akcelerátoru), různé filtry (pro rozmazání vykreslovaných
12
http://img.tomshardware.com/us/2001/02/27/high/vertexshader0.gif
33
fragmentů apod.) aj. Pixel shader se také dá využít při vytváření složitějších efektů, jako jsou záblesky.
Obrázek č. 28 Pixel shader jednotka v nVidia GeForce 313
Pixel shader se vstupními daty zachází podobně jako Vertex shader. K dispozici má všechny informace, které obsahuje neprogramovatelná rasterizační jednotka. Výstupem musí být vždy daný fragment, zejména jeho výsledná barva.
Unified shader: Obě specializované shader jednotky mají nezanedbatelný vliv na vykreslovaný rastrový obraz, na jeho kvalitu a také na rychlost vykreslování. Pokud je vykreslovaný obraz náročný na geometrické výpočty (Vertex shader), pak je Pixel shader nevyužit a čeká na data nebo naopak. Toto omezení bylo odstraněno tzv. unifikovaným shaderem „Unified shader unit“. Jedná se o jednotky, které umí pracovat jak s Vertex, tak Pixel shader výpočty a nahradily dedikované Pixel a Vertex jednotky v GPU. Podle náročnosti rastrového obrazu mohou tyto jednotky počítat buď vertex, nebo pixel hodnoty. Odstranilo se tím zpomalení výpočtů a zvýšila se efektivita využití jednotek – viz obr. 29.
13
http://img.tomshardware.com/us/2001/02/27/high/pixelshader1.gif
34
Obrázek č. 29 Princip funkce unifikovaných shaderů14
14
www.overclock3d.net/reviews.php?type=3&id=135&page=1&desc=asus_en_8800_gtx_-
_nvidia_s_g80_performance_revealed
35
5. Zmapování současné grafické karty a její směřování do budoucna V předchozích kapitolách jsme si přiblížili historii a základní funkce grafických akcelerátorů. Jak ale vypadá současný grafický akcelerátor? V současné době jsou největšími hráči na poli grafických akcelerátorů, pro počítače řady IBM PC, firmy nVidia a AMD / ATi. Přiblížíme si grafický akcelerátor Radeon HD 4800 od AMD / ATi.
5.1
ATi Radeon HD řady 4800
Na návrhu akcelerátoru řady 4800 s čipem R770 se začalo ve firmě ATi pracovat koncem roku 2005. Oficiálního uvedení se karta dočkala 25. ledna 2008. Srdcem akcelerátoru řady HD 4800 je grafický čip ATi R770 vyroben technologií 55nm s 956 mil. tranzistorů na ploše 260 mm2. Oproti konkurenci od firmy nVidia je plocha čipu zhruba poloviční (obr. 30).
Obrázek č. 30 Plocha procesorů ATi HD 4800 a nVidia GTX20015
Procesor (obr. 31) má sběrnici o šířce 256 bitů s kruhovou typologií (ring-bus) upravenou pro čip R770. Dále zde najdeme 10 Simple Instruction, Multiple Data (SIMD16) jednotek, z nichž se každá skládá z 16 streamovacích jednotek. Každá streamovací jednotka obsahuje
15
http://enthusiast.hardocp.com/image.html?image=MTIxNDM2MzM1MUNyREJoNlhHWENfMV8yX2wuZ2
lm 16
http://www.root.cz/clanky/techniky-zvyseni-vykonu-mikroprocesoru-2/#k07
36
pět aritmeticko-logických jednotek (ALU17). R770 celkem obsahuje 800 aritmetickologických jednotek. R770 je tak schopen výpočetního výkonu až 1,2 tera-flopů za sekundu.
Obrázek č. 31 Blokové schéma čipu R770 od AMD / ATi18
5.2
Zpracování shaderu
Výpočty shaderu probíhají ve streamovací jednotce (obr. 32). Tato jednotka obsahuje čtyři „klasické“ ALU. Tyto ALU mohou během jednoho taktu provést jednu operaci sčítání. Navíc je zde jedna „velká“ ALU jednotka. Tato jednotka je schopná během jednoho taktu provést operaci sčítání nebo násobení. Z toho vyplývá, že každá streamovací jednotka je schopna spočítat až 240 giga-flopů v jednom taktu. Navíc všechny ALU jednotky umožňují
17
http://cs.wikipedia.org/wiki/Aritmeticko-logick%C3%A1_jednotka
18
http://techreport.com/r.x/radeon-hd-4870/rv770-block.gif
37
operace s celočíselným posunem bitu, což umožňuje zrychlení práce s videem, kódováním a kompresí obrazu. Každá z deseti SIMD jednotek obsahuje 16 KB lokální paměti. Tato paměť se může použít pro sdílení dat mezi „vlákny“ během početních operací.
Obrázek č. 32 Streamovací jednotka v čipu R770 od ATi19
Největší sílu má čip R770 ve schopnosti zpracovávání shaderu a to díky deseti SIMD jednotkám a celkovému počtu 800 aritmeticko-logických jednotek integrovaných v jednom čipu. Oproti jiným grafickým akcelerátorům se jedná o nemalý rozdíl.
Obrázek č. 33 Maximální počet shader výpočtů
19
www.ati.com
38
5.3
Zpracování textur
Stejně jako zpracování shaderu byly i texturovací jednotky v RV770 výrazně zefektivněny. Texturovací jednotky jsou přímo spojeny se SIMD jednotkami (obr. 34), což umožňuje plynule rozdělovat výpočetní výkon jednotek dle potřeby - buď pro výpočet shaderu, nebo pro potřeby textury. S deseti SIMD jednotkami je RV770 schopna vytvářet a bilineárně filtrovat vzorek až se 30 texely v jednom taktu, což oproti předchozímu čipu znamená nárůst výkonu o 25 %.
Obrázek č. 34 Texturovací jednotka v RV77020
5.4
Hierarchie paměti
ATi zvolila zajímavý přístup pro paměťovou hierarchii (obr. 35). V RV770 se nacházejí čtyři paměťové řadiče spolu s L2 cache. Vždy jsou umístěny blízko významných „spotřebitelů“ šířky paměťového pásma a pro HUB není tak potřeba širokého datového pásma pro
20
www.ati.com
39
přenášení dat z/nebo do PCI Expres slotu a ostatních prvků. Toto uspořádaní je efektivnější o zhruba 10 % proti předchozímu čipu.
Obrázek č. 35 Rozhraní paměti v RV770 od ATi21
Tato zlepšení by sama o sobě při spojení s 256 bitovou sběrnicí nemohla zajistit takový výkon, jaký v ATi potřebovali. Z tohoto důvodu spolupracovala firma AMD s výrobci pamětí na vývoji nových pamětí typu GDDR5.
5.5
Výkonové srovnání
Pojďme se podívat na teoretické výkony čipu RV770 ve srovnání s ostatními akcelerátory.
21
www.ati.com
40
Obrázek č. 36 Srovnání teoretických výkonů22
Z obrázku je vidět, že čip RV770 si nevede špatně, na druhou stranu ani neoslňuje svým výkonem. Pro ucelenější obrázek o výkonu čipu bude lepší přejít k reálným testům pomocí testovacích programů (3D Mark Vantage) nebo měřením přímo v počítačové hře. Takovéto testy poskytují mnohem reálnější obraz výkonu grafických akcelerátorů než teoretické konstrukce.
Obrázek č. 37 Porovnání reálných výsledků23
22
Zdroj dat pro obrázek: http://www.anandtech.com/video/showdoc.aspx?i=3341
41
Zde již můžeme vidět reálný výkon čipu RV770. Grafické akcelerátory založené na tomto řešení jsou ve své třídě jednoznačně úspěšné a to skoro ve všech testech. Tento čip se může směle měřit i s akcelerátory vyšší cenové kategorie, jakými jsou karty GeForce GTX 260 firmy nVidia s čipy dvojnásobné velikosti. Firma ATi dokázala, že dobře navržená a efektivní architektura a logická struktura čipu, jako je např. použití rychlých pamětí typu GDDR5 u 256bitové sběrnice a vhodné hierarchii, vede k velmi vysoké propustnosti dat. RV770 tak výkonově předčil i velké a robustní čipy, stejně jako David dokázal porazit Goliáše. Firma ATi jasně ukazuje cestu budoucího vývoje grafických akcelerátorů. Cestu, kde nebude místo pro velké, ohromné a energeticky náročné čipy, ale naopak. Díky kvalitnímu a hlavně efektivnímu řešení konstrukce bude možno dosahovat vysokých výkonů při mnohem menších nákladech na výrobu a následný provoz. Samotný výkon grafických akcelerátorů se i nadále bude zvyšovat s vyšší rychlostí pamětí, zefektivněním vnitřní sběrnice nebo zvyšováním počtu paralelně prováděných výpočtů. Samotný přechod na menší výrobní technologii vždy přinesl nárůst počtu tranzistorů, a tím i výkon GPU. Již dnes jsou na trhu grafické akcelerátory se dvěma procesory. Je pouze otázkou času, kdy budou procesory tři, čtyři a více v jediném akcelerátoru. Firma AMD/ATi již avizuje vývoj procesorů, které budou obsahovat, jak CPU, tak současně i GPU. Tyto fúzní procesory by měly být vyráběny technologií 32nm. „Procesory dokonce nebudou nutně vyrobeny jen jedinou technologií, protože výrobní technologie výpočetních jader a jádra grafického se mohou rozcházet.“24 Bude velmi zajímavé sledovat, zda se tento koncept prosadí v praxi, nebo potichu zmizí v zapomnění. Využití fúzních procesorů vidím hlavně pro kancelářské počítače, kde není potřeba mít vysoký grafický výkon. Pro grafické stanice, počítačové hry a ostatní aplikace, které potřebují vysoký grafický výkon, bude neustále výhodnější samostatný grafický akcelerátor.
23
Zdroj dat pro obrázek: http://www.anandtech.com/video/showdoc.aspx?i=3341
24
BonusWeb.cz [online] - [cit. 2009-04-10] - Dostupný z WWW:
news-amd-definitivne-ohlasila-vlastni-32nm-procesory-pif-/clanek.A090303_215754_bw-hardware_jha.idn>
42
5.6
Spotřeba
Grafické akcelerátory lze ovšem porovnávat i dle jiných parametrů než jen dle jejich grafického výkonu. Pro někoho může být důležitý vzhled, pro jiného zvolený typ chladiče. Zkusme se ale spíše podívat na zajímavější parametr. Tím je bezesporu spotřeba elektrické energie. V dnešní době neustále rostoucí ceny elektrické energie se může jednat o podstatný parametr grafického akcelerátoru. Do nákladů na takový akcelerátor můžeme započítat i cenu provozu. Hledáme-li tedy vhodnou grafickou kartu pro naše Home Theater Personal Computer (HTPC), pro který nevyžadujeme maximální výkon v 3D aplikacích, budeme volit spíše integrovaný grafický akcelerátor jednak z důvodu úspory místa v HTPC, peněz a spotřeby elektrické energie. Dle typu grafické karty musíme volit i vhodný zdroj v počítači, aby tento byl schopen napájet grafický akcelerátor i při maximálním zatížení. Pokud tyto požadavky podceníme, můžeme se při zatížení grafické karty dočkat nemilého překvapení v podobě samovolného restartování počítače nebo jiných problémů. Samotná spotřeba se bude výrazně lišit i dle způsobu využívaní grafického akcelerátoru. Tento bude mít výrazně jinou spotřebu při zobrazování 2D obrazu než při práci s 3D obrazem. Zajímavým nápadem může být spolupráce výkonného grafického akcelerátoru s grafickou kartou integrovanou v základní desce. Každá z těchto karet má nejen rozdílný výpočetní výkon, ale také spotřebu elektrické energie. Myšlenka od firmy nVidia se jmenuje HybridPower. V případě malé nebo žádné potřeby náročných 3D výpočtů je v provozu integrovaná grafická karta s nižší spotřebou, která výrazně šetří elektrickou energii. V případě spuštění aplikace náročné na grafický výkon přepneme systém na samostatný grafický akcelerátor, který má větší výpočetní výkon, ale také vyšší spotřebu elektrické energie. Úspora elektrické energie se pohybuje v řádech desítek wattů. Zkusme se ale podívat na spotřebu samotných grafických akcelerátorů.
43
Obrázek č. 38 Spotřeba vybraných grafických akcelerátorů25
Z obrázku je patrné, že rozdíl ve spotřebě při 2D a 3D grafických výpočtech se pohybuje kolem 100 wattů, což není zanedbatelný rozdíl. Stejně tak zvolením vhodného akcelerátoru může být rozdíl ve spotřebě (2D i 3D) až 100 %. Vždy je potřeba se rozhodovat dle primárního využití grafického akcelerátoru, dle potřeby grafického výkonu i podle toho, zda budeme využívat více 3D nebo 2D grafický výstup.
Jednoduchým příkladem můžeme vypočítat rozdíl v nákladech na provoz grafického akcelerátoru GeForce GTX 260 a ATi Radeon HD 3870. Pro zjednodušení budeme brát na zřetel spotřebu pouze při 3D výpočtech s provozem osm hodin denně po dobu jednoho roku. Cenu za kWh použijeme z ceníku společnosti Pražská energetika a.s. v roce 200926.
25
Zdroj dat pro obrázek: http://www.tomshardware.com/reviews/geforce-radeon-power,2122.html
26
www.pre.cz [2009-04-15]
44
Obrázek č. 39 Výpočet nákladů na provoz
Z tohoto příkladu je patrné, že vhodnou volbou grafického akcelerátoru je možno ušetřit již při zapnutí počítače.
45
6. Závěr V rámci práce se mi podařilo splnit všechny cíle stanovené v úvodu. Práce definuje pojem grafická karta a popisuje některé související technologie. Ukazuje vývoj a současné trendy v této problematice. Práce mi také dopomohla k efektivní volbě vhodných produktů dle zadaných požadavků.
Grafický akcelerátor je důležitá součást osobního počítače, která v posledních desetiletích prošla mimořádně intenzivním vývojem. Z poměrně jednoduchých obvodů na zobrazování obrazu se stal grafický akcelerátor jedním z výpočetně nejsilnějších zařízení v osobním počítači. Grafický akcelerátor se během této doby změnil v „samostatný počítač uvnitř počítače“ schopný řešit výpočty spojené s vykreslováním obrazu, 3D animace, anebo kódováním či dekódováním videa. Zajímavé je porovnání samotných grafických procesorů. Zatímco před několika lety se běžná frekvence procesoru grafického akcelerátoru pohybovala mezi 100 až 200 MHz a obsahoval několik desítek milionů tranzistorů, dnešní procesor grafického akcelerátoru dosahuje frekvence kolem 900 MHZ a obsahuje až jeden a půl miliardy tranzistorů. Takový nárůst počtu tranzistorů v tak krátkém časovém období překonává i Moorův zákon, který říká: „Počet integrovaných tranzistorů v procesoru se během každých dvou let zdvojnásobí.“27 Tento výrok publikoval 19. dubna 1965 spoluzakladatel firmy Intel Gordon Moore a dá se říci, že pro počítačové procesory stále platí. Jak vypadá realita v procesoru grafického akcelerátoru je možno vidět v následujícím grafu. Zde je zřejmé, že počet tranzistorů v GPU je oproti Moorovu zákonu téměř dvojnásobný. Je velmi pravděpodobné, že v nejbližších letech se k sobě tyto počty nepřiblíží, ale spíše bude pokračovat pozvolné narůstání rozdílu.
27
Intel museum [online] - [cit. 2009-04-20] - Dostupný z WWW:
46
Obrázek č. 40 Počet tranzistorů v GPU
Pro stolní kancelářské počítače vychází z páté kapitoly jako ideální řešení grafický akcelerátor ATi HD3870, který má dostatečný grafický výkon pro chod kancelářských aplikací a zároveň je ekonomický na provoz. Pro multimediální stanice je vhodné použití grafického akcelerátoru nVidia GTX 260. Tento akcelerátor nabízí vysoký výpočetní výkon. Vyšší spotřeba není na překážku, neboť se bude jednat pouze o několik multimediálních stanic. Zároveň tento akcelerátor má nižší spotřebu při základních 2D výpočtech, což bude výhodné v okamžiku, kdy se na multimediálním počítači nebudou provádět práce náročné na grafický výkon.
47
Použité zdroje
Elektronické monografie - články 1)
BRENT, Justice. AMD Radeon HD 4800 Series [online]. [cit. 2009-2-1]. Dostupný z WWW:
2)
HALCIN, Jakub. HW News: AMD definitivně ohlásila vlastní 32nm procesory [online].
[cit.
2009-4-20].
Dostupný
z
WWW:
3)
HALCIN, Jakub. HW News: Bitva o fůzní čipy [online]. [cit. 2009-3-25]. Dostupný z WWW:
/clanek.A080316_211857_bw-hardware_jha.idn> 4)
LITTSCHWAGER, Thomas. Jak pracují špičkové grafické karty [online]. [cit. 20093-20]. Dostupný z WWW:
5)
SOUČEK, Jiří. Technologie RV770: jak vznikl Radeon HD 4800 [online]. [cit. 2009-31]. Dostupný z WWW:
6)
TIŠNOVSKÝ, Pavel. Seriál Grafické karty a grafické akcelerátory [online]. [cit. 2009-3-12]. Dostupný z WWW:
7)
TRIOLET, Damien. Dossier: AMD Radeon HD 4870 & 4850 [online]. [cit. 2009-3-1]. Dostupný z WWW:
8)
VOICU, Alex. ATi HD4850 [online]. [cit. 2009-1-10]. Dostupný z WWW:
9)
WASSON, Scott. AMD's Radeon HD 4870 graphics procesor [online]. [cit. 2009-3-1]. Dostupný z WWW:
48
Elektronické monografie 1)
AnandTech - Dostupný z WWW:
2)
ATi [online] - Dostupný z WWW:
3)
Levná PC [online] - Dostupný z WWW:
4)
nVidia [online] - Dostupný z WWW:
5)
pctuning.cz [online] - Dostupný z WWW:
6)
Pražská energetika a.s. [online] - Dostupný z WWW:
7)
Svět hardware [online] - Dostupný z WWW:
8)
Tom's Hardware [online] - Dostupný z WWW:
9)
Wikipedia
Otevřená
encyklopedie
[online]
-
Dostupný
z
WWW:
-
Dostupný
z
WWW:
10)
Wikipedia
the
free
encyklopedia
[online]
11)
Živě.cz [online] - Dostupný z WWW:
49
Slovníček pojmů 1)
2D grafika – Zabývá se grafickou informací popsanou v rovině. Informace může být popsána rastrovým, nebo vektorovým způsobem.
2)
3D grafika – Využívá trojrozměrnou reprezentaci dat uložených v počítači. Tyto používá pro výpočty a vykreslování obrazu na skrze zobrazovací zařízení. Vychází z 2D grafiky.
3)
ALU - Arithmetic Logical Unit - Část procesoru, která provádí základní aritmetické výpočty.
4)
Antialiasing – Technologie pro vyhlazování hran zobrazované grafiky.
5)
AVE - Auxiliary Video Extension – Sériové připojení dvou karet do jednoho zobrazovacího zařízení. Používané firmou IBM.
6)
Bilineární filtrování - Způsob filtrování textur. Výsledná barva pixelu je spočítána zprůměrováním barvy sousedících pixelů.
7)
CAD – Computer Aided Design – Pojmenování širokého spektra aplikací, které profesionálně pomáhají při technickém nebo designovem návrhu. Pomocí geometrických algoritmů.
8)
CPU – Central Processing Unit – Centrální výpočetní jednotka počítače = procesor.
9)
DMA – Direct Memory Access – Schopnost posílat data mezi operační pamětí a připojeným zařízením (přes systémovou sběrnici) bez účasti CPU. Použití DMA se snižuje zátěž CPU.
10)
FPS – Frames Per Second – Počet zobrazených snímků během jedné sekundy.
11)
GPU – Graphics Processing unit – Procesor primárně určený pro výpočty spojené se zobrazováním grafiky.
12)
Grafický polygon – n-úhelník – Jedná se o omezenou část roviny ohraničenou uzavřenou lomenou čárou.
13)
GUI – Graphics User Interface – Grafické rozhraní používané pro komunikaci mezi počítačem a uživatelem. Prosazováno firmou Microsoft.
14)
HDMI
-
High-Definition
Multi-media
Interface
–
Rozhraní
pro
přenos
nekomprimovaného zvukového a obrazového signálu v digitální podobě. 15)
HTPC - Home Theater Personal Computer – Domácí multimediální počítač sloužící jako přehrávač hudby, videa, přístupu na internet. Není určen pro hraní počítačových her. 50
16)
Karta MDA - Monochrome Display Adapter - Byla první samostatná grafická karta. Uvedena firmou IBM v roce 1981
17)
Karta CGA - Colour Graphic Adapter - První barevná grafická karta uvedená firmou IBM pro počítače typu IBM PC v roce 1981.
18)
Karta EGA - Enchanced Graphics Adapter – Grafická karta od firmy IBM, uvedená na trh v roce 1894 pro počítače typu IBM PC.
19)
Karta PGCD - Professional Graphics Controller – První 3D grafický akcelerátor pro počítače typu IBM PC. Vydaný firmou IBM v roce 1994.
20)
Karta VGA - Video Graphics Array – Grafická karta od firmy IBM, uvedená v roce 1987 pro počítače typu IBM PC.
21)
Monitor CRT – Cathode ray tube - Zobrazovací zařízení na principu urychlovače elektronů, uzavřených do vakuové baňky s fosforeskujícím stínítkem. Vynález v roce 1879, německý fyzik Karl Ferdinand Braun.
22)
Monitor LCD - Liquid crystal display - Je zobrazovací zařízení složené z barevných, nebo monochromatických pixelů. Objev principu - roce 1888 rakouský botanik Friedrich Rheinitzer.
23)
Monitor OLED -
Organic light-emitting diode - Je typ zobrazovacího zařízení
využívající technologii organických elektroluminiscenčních diod. Technologii uvedla v roce 1987 firma KODAK. 24)
POST – Power-On Self-Test – Automatická kontrola hardwaru počítače, která probíhá po zapnutí. Řízena BIOSem.
25)
Pixel – Je nejmenší prvek obrazu, který obsahuje informace o intenzitě a barvě světla. Bod může být čtvercový, nebo obdélníkový.
26)
Paměť RAM – Random Access Memory – Paměti pro použití v osobním počítači s libovolným přístupem pro čtení, či zápis.
27)
Paměť DDR (SDRAM) - Double-Data-Rate synchronous dynamic random access memory – Typ paměti požívaný v dnešních počítačích. Dosahuje vyšší propustnosti díky přenosu dat na obou hranách hodinového signálu. Varianty DDR1 až 3.
28)
Paměť GDDR (SDRAM) – Graphics Double-Data-Rate synchronous dynamic random access memory - Typ paměti DDR pro grafické karty a akcelerátory. Varianty GDDR3 až 5.
29)
Pipeline – Jednotka pro zřetězené zpracování instrukcí. Výstup z jedné instrukce je přímím vstupem další instrukci. Tímto způsobem jsou instrukce spojeny do série. 51
30)
Port AGP - Accelerated Graphics Port – Port určený k připojení grafických akcelerátorů k základní desce počítače. Na trh uveden firmou Intel v roce 1997.
31)
RGBI – Red, Green, Blue, Intensity – Typ CRT monitoru používaný v 80. letech 20. století.
32)
RAMDAC - Random Access Memory Digital-to-Analog Converter - Převodník digitálního signálu z grafického akcelerátoru, na analogový, vhodný pro analogové zobrazovací zařízení.
33)
Sběrnice ISA - Industry Standard Architecture – První sběrnice pro počítače typu IBM PC. Uvedena firmou IBM v roce 1981.
34)
Sběrnice VLB – VESA Local Bus – Sběrnice pro osobní počítače, navržená sdružením VESA, jako doplněk pro sběrnici ISA pro přenos dat do grafické karty.
35)
Sběrnice PCI - Peripheral Component Interconnect – Sběrnice pro připojení periferií k základní desce počítače. Uvedena firmou Intel v roce 1993.
36)
SIMD – Simple Instruction, Multiple Data – Jediná instrukce prováděná na více datech. Instrukční sada navržená firmou Intel v roce 1999 jako reakce na instrukční sadu od AMD 3DNow!
37)
Supersampling – Jedna z metod antiaaliasingu. Obraz je zpracováván ve vyšším rozlišení, než je požadováno a výsledná barva pixelů je průměrem barev pixelů okolních.
38)
Surfel - Surface Element - Bod, u kterého kromě polohy v prostoru známe i jeho normálu, velikost nebo i jiné atributy.
39)
Texel – Texture Element – Základní prvek 3D textur.
40)
UMA – Unified Memory Architecture - Sdílení systémové paměti mezi grafickým čipem a CPU.
41)
Voxel – Složenina anglických slov Volumetric (objemový) a pixel. Jedná se o nejmenší „stavební“ prostorový prvek pro zobrazení 3D grafiky. Stejně jako pro 2D grafiku je nejmenším prvkem pixel.
42)
Výstup DVI – Digital Visual Interface – Rozhraní pro propojení zobrazovacího zařízení a počítače. Určené k nekomprimovanému přenosu digitálních dat.
43)
Výstup VGA – Video Graphics Array – Rozhraní pro připojení analogového zobrazovacího zařízení k počítači.
52
Seznam použitých obrázků Obrázek č. 1 Zjednodušené schéma karty IBM 8514/A.......................................................... 11 Obrázek č. 2 PGC od IBM ....................................................................................................... 13 Obrázek č. 3 IBM 8541/A ........................................................................................................ 14 Obrázek č. 4 3D Blaster VLB .................................................................................................. 14 Obrázek č. 5 nVidia NV1 ......................................................................................................... 14 Obrázek č. 6 Voodoo Graphics ................................................................................................ 15 Obrázek č. 7 Voodoo2™ 1000 PCI ......................................................................................... 15 Obrázek č. 8 ATi Rage 128 Pro ............................................................................................... 15 Obrázek č. 9 GeForce2 GTS .................................................................................................... 16 Obrázek č. 10 ATi Radeon 8500 .............................................................................................. 16 Obrázek č. 11 Hercules 3D Prophet 9700 Pro ......................................................................... 17 Obrázek č. 12 nVidia GeForce FX........................................................................................... 17 Obrázek č. 13 ATi Radeon X800 ............................................................................................. 17 Obrázek č. 14 GeForce 7800 GTX .......................................................................................... 18 Obrázek č. 15 GeForce 8800 GTX .......................................................................................... 18 Obrázek č. 16 ATi Radeon HD 3870 ....................................................................................... 19 Obrázek č. 17 ATi Radeon HD 4870 ....................................................................................... 19 Obrázek č. 18 Konektor sběrnice ISA ..................................................................................... 21 Obrázek č. 19 Konektor sběrnice VESA Local Bus................................................................ 22 Obrázek č. 20 Sběrnice PCI (vlevo) a sběrnice PCI - Express................................................ 23 Obrázek č. 21 Konektory pro port AGP .................................................................................. 24 Obrázek č. 22 Schéma grafické karty ...................................................................................... 25 Obrázek č. 24 Vývoj zpracovávání algoritmů v GPU ............................................................. 28 Obrázek č. 23 Princip fungování antialiasingu ........................................................................ 29 Obrázek č. 25 Příklady polygonů ............................................................................................. 29 Obrázek č. 26 Příklad Bump mappingu ................................................................................... 31 Obrázek č. 27 Vertex jednotka v kartě nVidia GeForce 3 ...................................................... 33 Obrázek č. 28 Pixel shader jednotka v nVidia GeForce 3 ....................................................... 34 Obrázek č. 29 Princip funkce unifikovaných shaderů ............................................................. 35 Obrázek č. 30 Plocha procesorů ATi HD 4800 a nVidia GTX200......................................... 36 Obrázek č. 31 Blokové schéma čipu R770 od AMD / ATi..................................................... 37 53
Obrázek č. 32 Streamovací jednotka v čipu R770 od ATi ...................................................... 38 Obrázek č. 33 Maximální počet shader výpočtů ..................................................................... 38 Obrázek č. 34 Texturovací jednotka v RV770 ........................................................................ 39 Obrázek č. 35 Rozhraní paměti v RV770 od ATi ................................................................... 40 Obrázek č. 36 Srovnání teoretických výkonů .......................................................................... 41 Obrázek č. 37 Porovnání reálných výsledků............................................................................ 41 Obrázek č. 38 Spotřeba vybraných grafických akcelerátorů ................................................... 44 Obrázek č. 39 Výpočet nákladů na provoz .............................................................................. 45 Obrázek č. 39 Počet tranzistorů v GPU ................................................................................... 47
54