Grafická karta - jak vzniká obraz
14. 10. 2009 07:00 Rubrika: Technologie Autor: Aleš Lalík
Jednou ze základních komponent počítače je grafická karta, starající se v poslední době nejen o zpracování obrazu, ale i také například o akcelerace videa, výpočty fyziky a mnohé další. Samotná karta se přitom skládá z několika důležitých prvků, jejichž funkci při výsledném zpracování obrazu si nastíníme v dnešním článku.
Architektura grafických karet včetně možností jejich využití urazily od počátku dlouhou cestu a postupně zažily mnoho proměn, ústící v dnešní komplexní řešení, kde zpracování obrazu není zdaleka jedinou činností. Zpočátku však nebyly schopnosti grafických karet natolik velké kvůli zcela jinému přístupu a stavbě samotného výpočetního jádra.
Grafická karta se v podstatě již dlouho skládá z několika hlavních částí tvořených systémovým rozhraním, Graphics Processing Unit (GPU) neboli samotným grafickým procesorem, videopamětí, finálním zpracováním vypočteného snímku pomocí ROP a konečně obrazovými výstupy na monitor obsluhovanými převodníky RAMDAC.
Jak vidno, prvků ovlivňujících výkon grafických karet je poměrně hodně. Jedním z často přeceňovaných je zejména velikost paměti, kde se jedná o mýtus, že "více MB/GB je lépe". K tomuto tématu se podrobněji dostaneme v sekci věnující se právě paměti.
NVIDIA GeForce GTX 260M
Rychlé připojení základem
Začněme tedy postupně. Systémovým rozhraním je v tomto případě myšlen způsob připojení grafické karty ke zbytku počítačového systému. Zde sloužil v počítačovém pravěku 16-bitový ISA slot, později nahrazený sběrnicí VL-BUS o 32-bitové šířce. Citelnou nevýhodou VL-BUS bylo řízení toku dat procesorem, způsobující nepříjemnou pomalost celého systému. Tento neduh následně odstranil Peripheral Component Interconnect neboli PCI slot, používaný zprvu nejen pro různé doplňkové karty, ale i pro připojení grafických akcelerátorů.
Ani vláda PCI nebyla věčná, její nahrazení započalo od roku 1997 specializovaným řešením Accelerated Graphics Port (AGP) s rychlejším přenosem dat. Vzhledem k neustále rostoucímu výkonu grafických karet postupně přestal stačit i AGP, a pro plné využití potenciálu moderních karet bylo nutné znovu přejít na výkonnější sběrnici.
Proto se dostalo v roce 2004 na scénu rozhraní PCI-Express, vycházející z původní PCI. Novinka umožňovala několik různých rychlostí, udávaných násobkem za označením sběrnice (pro grafiky typicky PCI-E x16. Navýšení rychlosti oproti AGP bylo značné, a v současnosti je navíc k dispozici verze PCI-Express 2.0 zdvojnásobující původní rychlosti.
jednotlivé sloty PCI Express (desktop)
Výše popsané samozřejmě platí pro dedikované grafické karty, na druhou stranu nejpoužívanějším řešením jsou (nejen v noteboocích) integrované grafické čipy, umístěné přímo v čipsetech. Oproti samostatné kartě se zejména u mobilních zařízení jedná o značnou úsporu z několika hledisek, a sice místa, nutnosti chlazení a nároku na spotřebu drahocenné energie při práci na baterii. V současnosti nejpoužívanější integrované řešení (Intel GMA 4500MHD) má maximální spotřebu 5 W, low-endová dedikovaná grafická karta okolo 14 W, mainstreamová cca. 23 W a u hi-endu může spotřeba dosáhnout třeba 75 W (jedná se o TDP, tedy maximální teplo vyzářitelné daným grafickým čipem v maximální zátěži).
Daní za úsporné nároky integrovaných GPU je podstatně nižší výkon v porovnání se samostatnými kartami, způsobený nejen nižšími pracovními frekvencemi, ale také menším množstvím výpočetních jednotek. Druhou "brzdou" je použití tzv. sdílené systémové paměti počítače, která je typu DDR až DDR3 u nejnovějších notebooků. Nejenže má pomalejší takty, ale také je k ní přístup pouze sdílenou cestou přes systémovou sběrnici, což v konečném důsledku způsobí zbrždění. Pokud se podíváme na výsledky testů 3D Mark 06, tak zde integrovaná Intel 4500MHD dosahuje výsledků okolo 800 bodů, low-endová NVIDIA GeForce G 105M již přes 2300 bodů, mainstreamová GT 130M má již téměř 6000 bodů a hiendová GTX 260M přesahuje 10 000 bodů.
Částečnou náhradou za chybějící videopaměť měla být alespoň u čipsetů AMD možnost osadit na základní desku samostatný paměťový modul, vyhrazený pouze pro GPU, ovšem ani jeho přínos nebyl zcela spásný. I přesto se výkon integrovaných čipů také neustále zvyšuje a stejně tak podporují další užitečné vlastnosti moderních grafik, záleží proto na konkrétních požadavcích uživatele, jakou grafickou kartu bude schopen využít. Pro čistě kancelářskou práci či přehrávání běžných videí stačí integrované řešení a je zde zbytečná topící karta z high-end segmentu, a naopak integrované GPU příliš neposlouží pro hraní nových her.
čipset AMD M780G
Zpracování obrazu podrobněji
Data přicházející přes systémovou sběrnici jsou ukládána do paměti grafiky, odkud putují ke zpracování čipem, a začíná skutečné vytváření obrazu. Cesta k výslednému snímku je však poměrně dlouhá, a může se skládat z mnoha operací, vykonávaných jednotlivými částmi GPU. A právě zde je zásadní rozdíl oproti jednotlivým generacím grafických karet, kde se dříve skládal GPU z několika specializovaných jednotek, určených pro přesně definovanou činnost.
Mnozí jistě slyšeli názvy vertex a pixel jednotky, dříve oddělené prvky GPU vykonávající jednotlivé činnosti podle jejich charakteru. Tento přístup ale nebyl z hlediska vytížení čipu zcela ideální, protože nastávaly situace, kdy například pixel jednotky čekaly na data, která byla teprve zpracovávána vertex prvky, případně na údaje ze sousedních jednotek stejného typu, pracujících na jedné části společného objektu. Přesný poměr pixel/vertex jednotek se nedal jednoduše určit, protože jednotlivé aplikace a hry měly značné rozdílné nároky.
Výrobci proto vymysleli zcela odlišnou architekturu GPU, a sice takzvané unifikované shadery. Součástí tohoto přístupu byl také příchod softwarového rozhraní DirectX 10, podporující právě nové instrukce pro tuto unifikovanou architekturu. Pojďme si tedy obecně popsat, jaké postupy jsou při vytváření obrazu běžně používány a srovnat rozdíl mezi zpracováním pomocí dřívějších GPU a moderních s jednotnou architekturou.
Na počátku celého procesu se nachází jednotka rozpoznávající, které operace mají být provedeny s daty odeslanými do grafické karty, tedy dříve prakticky přeposlání buď do vertex nebo pixel shaderu. Unifikovaná architektura přidala další možnost, a sice jednotky nazvané geometrické shadery (geometry shader). Jejich účelem je provádět jednoduché operace s vrcholy objektů, ale taktéž je dokážou na rozdíl od vertex jednotek spojovat do složitějších objektů.
ATI Radeon HD 4800
Data jsou následně poslána ke zpracování vertex shaderům, zde je třeba vypočítat umístění jednotlivých prvků v rámci scény, což mimo jiné ovlivňuje také pozice diváka, určující směr jeho pohledu. Dále je nutné na takto zpracované objekty výsledné scény nanést texturu a podle potřeby s nimi provést další činnosti, nejčastěji stínování podle zdrojů světla. O tyto úkoly se stará jednotka zvaná Pixel Shader.
Jakmile projdou grafická data potřebným zpracováním v GPU, směřují do paměti a odtud je přebírá jednotka nazvaná Raster Operations Pipeline (též Render Output unit), zkráceně ROP. Její funkcí je provést konečné operace, zejména výsledné sloučení dat obrazových pixelů a jejich optimalizaci pro snížení nutného objemu přenášených dat. Koncový snímek následně putuje do obrazového převodníku, konvertujícího data na formát srozumitelný monitorům, ať už se jedná o přenos přes digitální rozhraní (DVI, HDMI, DisplayPort) nebo převod na analogovou podobu pro VGA rozhraní.
Předcházející popis celého procesu a jeho konkrétní možnosti byl samozřejmě značně zjednodušen, ale pro snadnější představu by měl být dostatečný. Zároveň by z něj měl vyplývat přínos unifikované architektury GPU, přičemž některé zbývající výhody budou popsány v dalších odstavcích. Každá jednotka v moderních GPU tudíž může zastávat činnost, která je aktuálně potřeba, ať již svými vlastnostmi spadá pod předchozí pixel nebo vertex funkce. Každý ze dvou velikánů na poli grafických karet, tedy AMD/ATI a NVIDIA, používá vlastní způsob aplikace univerzálních jednotek a v konečném řešení se jedná o značně odlišné přístupy, ovšem jejich funkčnost je ve svém principu stále stejná.
Rozvržení čipu NVIDIA GT200
Není paměť jako paměť
Jedním z dalších kritérií sledovaných u grafických karet je paměť, resp. její velikost a typ. Tato součást je dalším z prvků, který v závislosti na dané činnosti a náročnosti konkrétní aplikace může ovlivnit výkon celé karty. Typů pamětí používaných u grafik je v dnešní době skutečně mnoho, počínaje DDR2 až po nejnovější GDDR5.
Rozdíly spočívají nejen v datové propustnosti, ale také v přístupové době a pro notebooky důležitém energetickém odběru. První jmenovanou vlastnost ovlivňuje pochopitelně i šířka paměťové sběrnice grafické karty, skrze níž probíhá komunikace jádra a dalších jednotek s pamětí. Používanými hodnotami jsou šířky od 64-bitů až po 256-bitů.
Ve všech jmenovaných parametrech jednoznačně vítězí paměti GDDR5, ovšem setkáme se s nimi pouze v nejvyšších modelech karet. Nejdůležitějším důvodem bude pravděpodobně jejich vyšší cena v porovnání s ostatními typy.
GDDR5 paměti Qimonda
Již v úvodu bylo zmíněno, že zpravidla u méně znalých uživatelů je rozšířen mýtus o velikosti operační paměti, který slouží jako jediný ukazatel výkonu grafické karty. Ve skutečnosti tomu tak často není, ačkoliv se nejedná o zcela neoblomné pravidlo. Grafická karta se totiž skládá z několika výše popsaných částí, z nichž se prakticky všechny podílejí na konečném výkonu karty. Musí (spíše mělo by) se proto jednat o vyvážený celek, kde nebude jeden prvek výraznou brzdou pro ostatní.
Je proto nesmysl například osadit high-endový čip s vysokými pracovními takty, velkým množstvím výpočetních prvků v GPU a 1GB GDDR5 pamětí pouze 64-bitovou paměťovou sběrnicí. Stejně tak nemá smysl osadit nejzákladnější model grafické karty jakéhokoliv výrobce, jehož výkon je pouze mírně vyšší než sourozeneckého GPU integrovaného do čipsetu, ohromnou kapacitou třeba 1GB GDDR3 paměti. Zde bude většina kapacity zcela nevyužita z důvodu malého výpočetního výkonu samotného GPU, nemluvě o používání prakticky pouze 64-bitové sběrnice pro tento segment karet.
GPGPU a další funkce
Další značnou výhodou unifikované architektury je možnost poměrné snadné programovatelnosti GPU, umožňující napsat pro grafickou kartu prakticky libovolný program, který nemusí ani zdaleka zpracovávat grafické informace. Příkladem budiž technologie NVIDIA PhysX pro zpracování fyzikální stránky renderované scény, a další způsoby využití uváděné pod názvem General Purpose GPU (GPGPU).
Oblíbenou vlastností moderních grafik je také přítomnost specializovaného čipu pro akceleraci videa, zahrnující nejen DVD či novější Blu-ray, ale také některé formáty běžně používané u videí.
snímek z prezentace Intel Larrabee
Změnit vývoj grafických čipů a potažmo celého odvětví se bude snažit společnost Intel, která po dlouhých letech opět připravuje vlastní diskrétní grafickou kartu s kódovým názvem Larrabee. Na rozdíl od stávajících GPU šel Intel při vývoji cestou architektury x86, standardně používané u počítačových procesorů. Oproti budoucím konkurentům AMD/ATI a NVIDIA by mělo Larrabee přinést ještě vyšší úroveň flexibility grafické karty a možnosti využití.
Přesné datum uvedení Larrabee sice nebylo zatím zveřejněno, ale měli bychom se dočkat zřejmě v první polovině následujícího roku. Možná tak po dlouhé době přijde vážný konkurent pro stávající dvojku předních grafických výrobců.
Zdroj: hexus.net, bit-tech.net, amd.com, nvidia.com, intel.com