GPU

specializovaný mikroprocesor, akcelerátor zpracování grafiky
Tento článek je o grafickém procesoru. Další významy jsou uvedeny na stránce GPU (rozcestník).

GPU (grafický procesor, anglicky graphics 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, typicky například těžba kryptoměn nebo učení neuronových sítí.

GeForce 6600GT (NV43) GPU

V osobním počítači je GPU buď na samostatné grafické kartě nebo je umístěn na základní desce počítače nebo je integrován v mikroprocesoru spolu s CPU jako tzv. APU (například AMD Fusion a Intel HD Graphics).[1]

Charakteristika

editovat

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

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é 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. U nejnovějších GPU, tedy AMD Radeon architektury RDNA 3, došlo u univerzálních shaderů částečně k posunu a optimalizaci od RISC architektury, k VLIW2 v každé CU. To znamená, že každá VLIW2 pipeline má potenciál mít takřka dvojnásobný výkon oproti předchozí jednodušší RISC pipeline.[2]
    • 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

Dedikované grafické karty

editovat

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,[kdo?]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

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 TFLOPS, 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.

Hybridní grafické karty

editovat

Tato novější řada GPU se stala soupeřem na trhu low-end stolních počítačů s integrovanou grafickou kartou, ale hlavně pak na trhu s notebooky. Nejběžnější implementace hybridních grafických karet je HyperMemory od firmy ATI a dále pak TurboCache od firmy Nvidia.

Tyto grafické karty sdílejí svoji paměť se systémem a mají dedikovanou malou vyrovnávací paměť. Umožňuje to technologie v rámci PCI Express.

Externí GPU

editovat

Externí grafická karta, jak už název napovídá, je umístěna někde mimo počítač. Externí grafické karty se používají většinou u notebooků. Ty totiž většinou mají slušně velkou paměť RAM a dostatečné výkonné CPU, ale často jim právě schází výkonná grafická karta. Proto je vcelku žádané, aby si uživatel mohl připojit grafickou kartu externě přímo k notebooku. Nicméně externí grafické karty nemají a neměly tak velkou podporu od oficiálních distributorů grafických karet.

Historie

editovat

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.

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í.

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 programové rozhraní Windows Graphics Device Interface (GDI), 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 Mystique. 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

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

Reference

editovat
  1. cdr.cz: AMD mění slogan ve svém logu (článek). web.archive.org [online]. 2009-02-20 [cit. 2023-03-23]. Dostupné v archivu pořízeném z originálu dne 2009-02-20. 
  2. RDNA 3 vrací do hry VLIW-2? Vyloučit to nelze. diit.cz [online]. [cit. 2023-04-06]. Dostupné online. 

Externí odkazy

editovat