GPU

GPU(grafický procesor,anglickygraphics processing unit) je vinformačních technologiíchspecializovanýmikroprocesoruvnitřpočítače,telefonua podobně. GPU zajišťuje rychlé grafické výpočty a změny obsahu videopaměti, které jsou posléze zobrazovány namonitoru. 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ěžbakryptoměnnebo učeníneuronových sítí.
Vosobním počítačije GPU buď na samostatnégrafické kartěnebo je umístěn nazákladní descepočítače nebo je integrován vmikroprocesoruspolu sCPUjako tzv.APU(napříkladAMD FusionaIntel HD Graphics).
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é kartymají GPU ve specifických výpočtech výkonnější, než je hlavní procesorpočítače(CPU). Vysoce výkonná GPU obsahují stovky milionůtranzistorů, vyžaduje intenzivníchlazenía výkonnýelektrický 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íhoprocesorupočítače (CPU). Souhrnně se tyto urychlovací techniky označují jako (grafická) akcelerace.
Mezi nejběžnější operace z počátku2D(dvourozměrné) počítačové grafiky patří operaceBitBLT(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 pro3D(trojrozměrnou) počítačovou grafiku, obsahují funkce prorenderování, podporu digitálníhovideaa další.
Pokročilejší techniky akcelerace jsou například:
Grafické karty tohoto typu bývají kzákladní descepřipojeny pomocí rozšiřujícího slotu, typickyPCI 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éPCIsbě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ěťRAMna 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ímCrossFireX(u karet AMD) čiSLI(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é 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 (architekturaAMDGCN) 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í, kdyCPUa 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 čipyAPUod AMD pro hrací konzolePlayStation 4aXbox One, patří mezi výkonné grafické procesory, s výkonem přes 1TFLOPS, přestože jsou na jednom čipu společně s osmi klasickýmimikroprocesory.
Výhodou tohoto řešení je kromě lepší spolupráce i nižší spotřeba než v případě dedikovaných grafických karet.
Tato novější řadaGPUse 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 jeHyperMemoryod 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ámciPCI Express.
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ěťRAMa 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.
V8bitovýchpočítačíchAtaribyly 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 Amigabyl první masově vyráběný počítač obsahujícíblitterve 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ředstavilaS3 Graphicsprvní jednočip s 2D akcelerací 86C911 (jeho projektanti ho pojmenovali po automobiluPorsche 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í WindowsGraphics 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éAPIpro různé úkoly, jako je grafická knihovna Microsoft WinG proWindows 3.xa jejich pozdější rozhraníDirectDrawpro hardwarovou akceleraci 2D her veWindows 95a v novějších.
Od začátku 90. let se stávalo renderování3D grafikyv 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 jePlayStationaNintendo 64. První nepodařené pokusy o levné 3D čipy v počítačovém světě byly S3 ViRGE,ATIRage 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) jako3dfxVoodoo. 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 objeviloOpenGLjako 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 pixelshader, 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).
S příchodem OpenGL API a obdobných funkcí v DirectX se k možnostem GPU přidaly i programovatelné jednotkyshader. 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žniloGPGPU). Pixel shading se často používá například pro bump mapping.