GPU

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Tento článek pojednává o grafickém procesoru. Další významy jsou uvedeny v článku GPU (rozcestník).
GeForce 6600GT (NV43) GPU

GPU (grafický procesor, anglicky graphic processing unit) je v informačních technologiích specializovaný mikroprocesor uvnitř počítače, telefonu a podobně. GPU zajišťuje rychlé grafické výpočty a změny obsahu videopaměti, které jsou posléze zobrazovány na monitoru. Moderní grafické procesory mohou být využívány i k jiným výpočtům, než pro zobrazování dat (například kryptoanalýza).

V osobním počítači je GPU buď na samostatné grafické kartě nebo je umístěn základní desce počítače nebo je na základní desce integrován s mikroprocesorem do jednoho čipu (tzv. APU – například Intel HD Graphics nebo AMD APU).[1]

Charakteristika[editovat | editovat zdroj]

Grafický procesor je používán v mnoha zařízeních. Jeho konstrukce je závislá na konkrétních potřebách a požadovaném výkonu. Starší počítače (např. Didaktik) obsahovaly místo GPU jen speciální zákaznický integrovaný obvod (FPGA). Současné grafické karty mají GPU ve specifických výpočtech výkonnější, než je hlavní procesor počítače (CPU). Vysoce výkonná GPU obsahují stovky milionů tranzistorů, vyžaduje intenzivní chlazení a výkonný elektrický zdroj.

Akcelerátory[editovat | editovat zdroj]

Grafický procesor se vůči hlavnímu procesoru počítače chová jako další paralelní koprocesor. Grafický procesor je určen zejména pro vektorové výpočty, které jsou potřeba pro vytvoření grafických scén (ve hrách, ale i v desktopovém prostředí). Obsahuje řadu obvodů, které jsou zaměřeny na co nejrychlejší výpočty, které umožňují přímo pracovat i se základními grafickými prvky a tvary, což umožňuje vykreslovat grafické objekty rychleji, než by bylo možné za použití hlavního procesoru počítače (CPU). Souhrnně se tyto urychlovací techniky označují jako (grafická) akcelerace.

Mezi nejběžnější operace z počátku 2D (dvourozměrné) počítačové grafiky patří operace BitBLT (kombinuje několik bitmapových vzorců pomocí RasterOp), obvykle realizované speciálním zařízením nazývaným „blitter“, a operace pro kreslení obdélníků, trojúhelníků, kruhů a oblouků. Moderní GPU kromě toho mají podporu pro 3D (trojrozměrnou) počítačovou grafiku, obsahují funkce pro renderování, podporu digitálního videa a další.


Pokročilejší techniky akcelerace jsou například:

  • unifikované shadery – moderní náhrada za pixelové a vertexové jednotky, každá firma má svoji vlastní architekturu shaderů. Jsou programovatelné a díky tomu nemusí počítat pouze zobrazitelná data, ale i výpočty pro vědu (např. BOINC) a další.
    • AMD donedávna používalo superskalární (VLIW5) jednotky unifikovaných shaderů. To znamenalo 5 jednodušších jednotek jako celek. Nedávno došlo k přechodu na VLIW4 a tedy 4 jednodušší jednotky jako celek (AMD Radeon 69**). U novějších GPU GCN (počínaje AMD Radeon 7xxx), je místo architektury VLIW použita efektivnější RISC pipeline za použití čtyřcestného multithreadingu. Frekvence shaderů je stejná jako zbytku GPU.
    • NVIDIA používá skalární jednotky unifikovaných shaderů. Každá jednotka je plnohodnotná do série 400, vyšší série využívají stejný princip jako AMD. Frekvence shaderů je vyšší než zbytku GPU, většinou v násobiči 2× až 3×.
  • NVIDIA používá vlastní unifikované shadery na svých grafikách Chrome 400/500.
    • Intel má u nejnovějších GPU už také vlastní unifikované shadery.
    • 1 jednotka superskalární se (myšleno výkonově) nerovná 1 jednotce skalární.
  • řadič pamětí - stará se o komunikaci mezi grafickou pamětí a GPU. NVIDIA má podporu GDDR5, stejně jako AMD.
  • jednotka TMU (Texture mapping unit) - nanáší textury na objekty.
  • jednotka ROP (Render Output unit) - stará se o konečný výstup dat z grafické karty.

Typy GPU[editovat | editovat zdroj]

Dedikované grafické karty[editovat | editovat zdroj]

Grafické karty tohoto typu bývají k základní desce připojeny pomocí rozšiřujícího slotu, typicky PCI Express (PCI-E) nebo dříve používaný Accelerated Graphics Port (AGP). Výměna takovéto karty je vcelku snadná a jediným omezením pak může být například nedostatečně výkonný počítačový zdroj či nekompatibilní základní deska. Některé karty používaly také PCI sběrnici, ale limitujícím faktorem byla velmi malá propustnost sběrnice, takže se využívaly jen výjimečně, například pokud nebyl k dispozici jeden z dříve jmenovaných slotů.

Dedikované grafické karty nemusí být nutně vyjmutelné ze základní desky. Přestože většina karet tuto vlastnost má, název dedikované dostaly zcela z jiného důvodu a tím je paměť RAM na těchto kartách, která je určena čistě pro GPU.

Většina uživatelů stolních počítačů používá pouze jednu takovouto kartu, avšak díky technologiím CrossFireX (u karet AMD) či SLI (u karet NVIDIA) lze provozovat i dvě až čtyři GPU na jedné základní desce (pokud disponuje tolika sloty a jsou použity mezi sebou kompatibilní GPU).

Integrované grafické karty[editovat | editovat zdroj]

Integrované grafické procesory se v současné době dělí na dvě skupiny. Jednak úzce vázané, tedy ty které sdílí paměť s procesorem, se kterým také mohou bezprostředně spolupracovat (architektura AMD GCN) a ty, které třeba i sdílí část operační paměti, ale nejsou schopny úzce spolupracovat. Systém s úzce vázanými procesory je zvláště výhodný v případě výpočetně náročných operací, kdy CPU a GPU spolupracují na stejných datech ("každý chvilku tahá pilku"). V tomto případě odpadá nadbytečné kopírování dat mezi pamětí CPU a GPU (je společná).

Integrované grafické procesory v současné době již nepatří mezi grafické outsidery. Například čipy APU od AMD pro hrací konzole PlayStation 4 a Xbox One, patří mezi výkonné grafické procesory, s výkonem přes 1 TFLOP, přestože jsou na jednom čipu společně s osmi klasickými mikroprocesory.

Výhodou tohoto řešení je kromě lepší spolupráce i nižší spotřeba než v případě dedikovaných grafických karet.

Historie[editovat | editovat zdroj]

1970[editovat | editovat zdroj]

V 8bitových počítačích Atari byly pro hardwarové mixování grafických a textových režimů, pozicování a zobrazování spritů (forma hardwarového blittingu) a ostatní efekty používány čipy ANTIC a CTIA. Čip Antic byl speciálně určen pro mapování textu a grafických dat do videovýstupu. Konstruktér čipu Antic, Jay Miner, následně navrhl grafický čip pro počítač Commodore Amiga.

1980[editovat | editovat zdroj]

Commodore Amiga byl první masově vyráběný počítač obsahující blitter ve svém videohardwaru a grafický systém 8514 od IBM byl jeden z prvních systémů PC videokaret provádějící jednoduchou 2D grafiku.

Počítač Amiga byl ve své době unikátní v tom, že obsahoval plnohodnotný grafický akcelerátor, převádějící prakticky veškeré funkce pro generování grafiky (včetně kreslení čar, výplň oblastí, blokový přenos obrázků), a grafický koprocesor se svou vlastní (i když primitivní) sadou strojových instrukcí.

1990[editovat | editovat zdroj]

Na počátku devadesátých let způsobil vzestup Microsoft Windows nárůst zájmu o vysoký výkon a vysoké rozlišení 2D bitmapové grafiky (které byly dříve doménou unixových pracovních stanic a Apple Macintosh). Velikost trhu znamenala, že se prodejci PC grafik mohli soustředit na vývoj hardware, který by podporoval programové rozhraní Windows Graphics Device Interface (GDI).

V roce 1991 představila S3 Graphics první jednočip s 2D akcelerací 86C911 (jeho projektanti ho pojmenovali po automobilu Porsche 911, aby zdůraznili jeho slibovanou výkonnost). Čip 86C911 vyvolal řadu napodobenin: V roce 1995 všichni hlavní výrobci grafických čipů zařadili podporu 2D akcelerace na své čipy. Časem byly drahé, víceúčelové grafické koprocesory nahrazeny specializovanými akcelerátory určenými pro prostředí Windows, kde dosahovaly větších výkonů, takže tyto víceúčelové koprocesory postupně z počítačového trhu vymizely.

V průběhu 90. let se 2D akcelerace GUI nadále vyvíjela. Jak se zlepšovaly výrobní podmínky, tak se i zvyšovala úroveň integrace grafických čipů. Byly vyvinuty přídavné API pro různé úkoly, jako je grafická knihovna Microsoft WinG pro Windows 3.x a jejich pozdější rozhraní DirectDraw pro hardwarovou akceleraci 2D her ve Windows 95 a v novějších.

Od začátku 90. let se stávalo renderování 3D grafiky v reálném čase běžnější v počítačových hrách a herních konzolích, což vedlo ke zvýšení zájmu o hardwarovou 3D akceleraci. Jedny z prvních masově vyráběných 3D akcelerátorů lze nalézt v páté generaci herních konzolí jako je PlayStation a Nintendo 64. První nepodařené pokusy o levné 3D čipy v počítačovém světě byly S3 ViRGE, ATI Rage a Matrox Mystigue. V podstatě byly tyto čipy zástupci předchozí generace 2D akcelerátorů s přidanými 3D vlastnostmi. Mnohé z nich byly pro jednoduchost implementace a nízké náklady dokonce pinově kompatibilní s předchozí generací čipů. Z počátku byly výkonné 3D grafické čipy na samostatných kartách určené pouze pro 3D akcelerační funkce (a zcela postrádala 2D akceleraci) jako 3dfx Voodoo. Nicméně jak se vyvíjely výrobní technologie, tak 2D akcelerace, 3D akcelerace a akcelerace videa byly integrovány do jednoho čipu. Jako jedny z prvních zástupců lze jmenovat čipsety Verite od firmy Rendition.

Na počátku 90. let se objevilo OpenGL jako profesionální grafické API, které se stalo dominantou na PC a bylo jednou z hlavních hnacích sil vývoje hardwaru. V té době byly celkem běžné softwarové implementace OpenGL, ačkoliv vliv OpenGL vedl k rozšíření hardwarové podpory. Na konci 90. let se mezi herními vývojáři stalo populární rozhraní DirectX. Na rozdíl od OpenGL trval Microsoft na striktní, jednotné podpoře hardwaru. Tento přístup učinil DirectX méně populárním, jelikož mnoho GPU poskytovalo svoje specifické vlastnosti, které dokázaly využít existující aplikace OpenGL, zatímco DirectX bylo často o krok pozadu.

Postupně začal Microsoft více spolupracovat s vývojáři hardwaru a zaměřoval DirectX na podporu konkrétního hardwaru. Direct3D 5.0 byla první verze rozvíjejícího se API, která získala širokou podporu na herním trhu a dokázala konkurovat mnoha hardwarově specifickým a často proprietárním grafickým knihovnám. V té době je OpenGL stále nejrozšířenější. Direct3D 7.0 představila podporu hardwarového T&L (transformace a osvětlení), které představovalo významný krok v 3D renderování. Hardwarové T&L se objevilo v 90. letech a jednalo se o předchůdce pozdějších jednotek vertex a pixel shader, které byly mnohem přizpůsobitelnější a měly širší možnost programování. První kartou na trhu s podporou této technologie byla NVIDIA GeForce 256 (známá jako NV10).

2000 až přítomnost[editovat | editovat zdroj]

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. První čip, který toto umožňoval, byl GeForce 3 (NV20) od firmy Nvidia. V říjnu 2002 byl představen ATI Radeon 9700 (znám jako R300), první akcelerátor, který podporoval Direct3D 9.0. Pixelové a vertexové shadery implementovaly smyčky a matematické operace s plovoucí řádovou čárkou, které se svou flexibilitou přiblížily CPU (což umožnilo GPGPU). Pixel shading se často používá například pro bump mapping.

Výrobci GPU[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

  1. http://www.cdr.cz/a/25357 – Procesor Fusion

Externí odkazy[editovat | editovat zdroj]