GPU
GeForce 6600GT (NV43) GPU
GPU (grafický procesor, anglicky graphic processing unit) je v informačních technologiích specializovaný řídící procesor umístěný nagrafické kartě uvnitř počítače, který zajišťuje vykreslování dat uložených v operační paměti na zobrazovacím zařízení (monitor, projektor,braillský řádek a podobně). Moderní grafické procesory se v současné době využívají i k jiným výpočtům, než jsou výpočty nutné pro zobrazování dat.
Charakteristika
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. 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. Přesto jsou výpočty pomocí GPU ve většině případů efektivnější, než CPU.
V osobním počítači je GPU buď v grafické kartě, nebo je integrována na základní desce počítače v podobě IGP (integrovaný grafický procesor), nebo je spolu s CPU na jednom čipu (APU).[1] V současné době již počítače s IGP tvoří zlomek všech vyrobených počítačů, ve prospěch APU, případně grafických karet.
Stavba grafického procesoru
Grafický procesor obsahuje TMU, ROP, řadič pamětí a další. Některé dražší procesory jsou vybaveny ochranným kovovým rámem proti poničení. Už od dob GeForce 2 (a u některých výrobců i dřív) se grafický procesor chová plně jako paralelní procesor při výpočtech. Díky tomu má mnohdy podstatně vyšší výkon než CPU v některých výpočtech. Grafický procesor se integruje buďto do severního můstku (na základní desce), nebo na vlastní PCB (grafickou kartu). Grafický je na grafické karty určený na výpočty operací s pohyblivou desetinnou čárkou a podobně. Ve výpočtech grafických scén, operací a atd je specializovaným procesorem. Obsahuje řadu obvodů pro co nejrychlejší počítání výpočtů:
· 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.
Grafické akcelerátory
Výkon GPU je závislý na rychlosti, s jakou dokáže zpracovávat matematické operace v plovoucí řádové čárce, a proto je na tuto činnost vysoce specializován. Kromě klasických matematických strojových instrukcí v něm mohou být implementovány i operace, které umožňují přímo pracovat 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).
Pro další urychlení práce s grafikou byly vyvinuty různé techniky urychlení (akcelerace) manipulace s grafickými daty, které by při zpracování běžným způsobem byly výrazně pomalejší. 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ší.
1970
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
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
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í WindowsGraphics 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
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
· AMD (spojila se s ATI Technologies)
· Fujitsu
· 3Dlabs
· Matrox
· XGI Technology - sloučeny SiS a Trident
· Intel - dlouhodobě vyrábí více než polovinu všech celosvětově vyrobených GPU (jedná se o integrované grafické karty v čipsetech od firmy Intel)
· 3dfx (nyní sloučena s NVIDIA)
· S3 Graphics (nyní sloučena s VIA Technologies)
· Falanx Microsystems - Mali - nyní ARM Norway