GeForce 8800GTX a GTS v testu
autor: Petr Štefek a Jiří Souček , publikováno 8.11.2006
GeForce 8800GTX a GTS v testu

Tak zde máme konečně recenzi dvou zbrusu nových grafických karet z dílen nVidie. Prvním pánem na holení je nejvýkonnější GeForce 8800GTX a druhým je ekonomičtější GeForce 8800GTS. Pojďme se tedy podívat jak si obě stojí a hlavně na novou architekturu čipu G80.


Unifikované shadery vs. unifikovaná architektura

V první řadě, ještě než se podíváme na architekturu výpočetních jednotek samotného čipu, bych rád vysvětlil jeden rozdíl. Konkrétně rozdíl mezi unifikovanými shadery (SM4.0/DX10) a unifikovanou architekturou. Toto jsou dvě naprosto odlišné věci, které spolu vůbec nemusejí souviset. Unifikované shadery jsou záležitost softwarová, kterou může podporovat i čip, který má po hardwarové stránce klasickou fixní architekturu. Stejně tak nic nebrání navržení unifikovaného čipu, který ale nebude podporovat SM4.0.

GeForce 8800GTX a GTS v testu

Příkladem může být např. ATi Xenos, grafický čip herní konzole Xbox360, který je unifikovaný, ale není plně kompatibilní se SM4.0 - můžeme tedy říct, že podporuje SM3.0++. Naopak hledat čip, který má klasickou architekturu a podporuje SM4.0 by bylo obtížnější - zde bych mohl zmínit maximálně neoficiální nepodložené informace, podle nichž společnost nVidia takový čip vyvíjela. Pokud je na těchto informacích něco pravdy, bylo by možné, že jde o grafický procesor RSX určený pro konzoli PlayStation 3.

Co je vlastně unifikovaná architektura...?

...a k čemu je dobrá? Tento pojem jsme poprvé zmiňovali v souvislosti se zmíněným čipem ATi Xenos. Ale vraťme se ještě dál. Kolem roku 2000 dominovaly grafickému trhu karty podporující rozhraní DirectX7 - tehdejší módou byla funkce hardwarového TnL, která právě s DX7 souvisela (pro zajímavost - stejně jako pro podporu DX10 není třeba hardwarová unifikace, tak pro DX7 nebylo třeba hardwarové TnL).

O rok později nastoupily DX8 čipy (Radeon 8500 / GeForce 3 a 4Ti), které jako první podporovaly pixel a vertex shadery. Po hardwarové stránce ale nešlo o nijak komplikovanou záležitost - architektura čipu zůstávala stále stejná, jen "přibyly" výpočetní jednotky a rozšířily se možnosti. Až do té doby byl vývoj rozhraní DirectX pomalejší, než vývoj hardwaru, takže již mnohé DX7 čipy (nVidia GeForce 256/2, ATi Radeon 256, 3Dfx VSA-100) po stránce hardwaru podporovaly technologie, které DX7 nedokázalo využít a buďto se "projevily" až po příchodu DX8 (např. některé technologie původního Radeonu), nebo je bylo možné využít jen v jiných rozhraních (register combiner GeForce v OpenGL či speciální efekty 3Dfx VSA-100 pod Glide a OpenGL), nebo k jejich využití nedošlo nikdy, protože se vývoj rozhraní ubíral jiným směrem (např. částečný pixel shader původního Radeonu, který uměl násobit matice 2x2, přičemž SM1.x vyžadoval matice 3x3).

GeForce 8800GTX a GTS v testu

GeForce Wanda - první maskotka v dějinách 3D grafiky

Jak sami vidíte, všechny tyto čipy byly někde napůl cestě k DX8. Z toho důvodu nebylo třeba nijak výrazně měnit architekturu - stačilo doplnění a úprava určitých částí čipu pro dosažení kompatibility. Do jisté míry byl podobným krokem i přechod na SM2.0, i když zde už bylo možné pozorovat, že se operace s texturou, resp. množství texturovacích jednotek, začíná vůči množství matematických jednotek (ALUs, výpočetní jednotky pixel shaderů), snižovat.

Podobný trend vývoje u obou současných výrobců se začal tříštit s příchodem SM3.0, který se z hlediska nároku na architekturu lišil hlavně tím, že vyžadoval podporu pro technologii nazvanou dynamic branching. Tu nebylo možné s tradiční pixel-pipeline efektivně implementovat. ATi tehdy vyvíjela čip R400, který již byl unifikovaný a podporoval SM3.0, jenže nakonec sama usoudila, že s možnostmi tehdejšího výrobního procesu není možné do čipu "nacpat" tolik výpočetních jednotek, aby nabídl dostatečný výkon - protože velká část jádra byla zabrána logikou potřebnou pro implementaci unifikované architektury, SM3.0 a dalších technologií. ATi se tehdy rozhodla, že bude vhodnější tuto architekturu odložit a ještě setrvat u klasické, s podporou SM2.0, která umožní s dostupnými výrobními procesy dosažení vyššího výkonu za použití nižšího množství tranzistorů, což nabízí možnost zvýšit taktovací frekvence, tj. další výkon. Takto vzniknul čip R420 (Radeon X800).

GeForce 8800GTX a GTS v testu

klasická 3D pipeline = vertex pipeline + pixel pipeline

Naopak nVidia se rozhodla, že zkombinuj tradiční pixel pipeline s funkcemi SM3.0. nVidia tedy tradičně dodržela zvyk - mít v nabídce kartu podporující poslední verzi rozhraní DirectX. Podpora nových technologií sice nebyla zcela ideální (pomalejší dynamic branching a omezená funkčnost některých nových technologií - např. FP16 HDR s vyhlazováním). Na druhou stranu tyto technologie mnoho her nevyužívalo (v době vydání převažovaly hry SM1.x a 2.0 kompatibilní), takže nešlo o nijak výraznou vadu na kráse.

Další generace naopak znamenala změnu spíš u ATi, která nabídla svůj první SM3.0 čip pro PC - R520 (X1800). Díky 90nm výrobní technologii si mohla dovolit výraznější změny, takže jsme se dočkali narušení tradičního konceptu "pixel pipeline" a matematická část (pixel shadery) byly odděleny od texturovací jednotky. O řízení se pak staral ultra-threaded dispatch-processor, který umožňoval zpracovávat mnoho vláken najednou, což zajistilo mj. velmi slušnou efektivitu v shaderech používajících dynamic branching. Ačkoli měl tento čip pouhých 16 texturovacích jednotek a pouhých 16 pixel shader jednotek, podával výrazně lepší výkon, než by se podle těchto parametrů dalo čekat. To bylo způsobeno architekturou - právě oddělením pixel shaderu od texturovací jednotky. Obě tyto části díky tomu mohly pracovat nezávisle a najednou. Starší čipy ne - ty buďto prováděly jedno, nebo druhé.

GeForce 8800GTX a GTS v testu

Se vzrůstajícími nároky na aritmetické operace (zatížení ALU) se nVidia i ATI soustředily
na zvyšování výkonu v aritmetických operacích pixel shadingu

nVidia (G70) stavěla na architektuře NV40/GF6800. Díky přechodu na 110nm proces (ze 130nm) si mohla dovolit navýšit počet pixel pipelines o 50%. Jak jistě víte, pipeline NV40 nese dva pixel shader procesory - primární podporoval instrukci MUL (násobení), sekundární MUL i ADD (sčítání), souhrnně  MADD. V případě G70 byl vylepšen primární pixel shader přidáním podpory pro instrukci ADD (sčítání), takže oba uměly totéž.

V případě následující půlgenerace (R580/X1900) nemohla ATi zvyšovat výkon zvýšením frekvencí ani zvýšením počtu quadů (pro každý quad je třeba jeden další dispatch-processor - ty jsou ale velice komplexní a už v případě R520 zabíraly zhruba třetinu plochy celého čipu. Zvýšení jejich počtu by znamenalo vznik příliš velkého čipu), takže ATi zvolila cestu zvýšení počtu pixel shader procesorů na trojnásobek. To stálo jen minimální navýšení plochy jádra a navýšilo potřebným způsobem výkon.

Půlgenerace v podobě G71 přinesla hlavně zvýšení frekvencí (90nm proces), zdvojnásobení počtu blending-units v ROPs, což úzce souviselo s vylepšením podpory SLI v režimu SLI-AA, při kterém byl na všech předchozích čipech obraz přenášen z jedné karty na druhou přes sběrnici namísto SLI můstku. To G71 změnila a konečně se při všech režimech využíval SLI můstek, což vedlo k nárůstu výkonu ve všech SLI-AA režimech řádově v desítkách procent.

...

GeForce 8800GTX a GTS v testu

míra využití pixel shaderů ve hrách za posledních 5 let

Z našeho historického přehledu je zřejmé, že v roce 2000 (v PC segmentu) žádné shadery neexistovaly a o pět let později se staly tím hlavním - klíčovým prvkem v architektuře grafických čipů. Není tedy divu, že se situace obrací a nové čipy nestaví na klasické pixel pipeline, ale celý čip je postaven právě kolem shaderových jednotek. Ty jsou primární, jejich efektivita a výkon jsou na prvním místě a vše ostatní se podřizuje.

V současných čipech velkou část z plochy 3D jádra zabíraly pixel shadery, menší měrou se podílely vertex shadery. Nyní, s příchodem SM4.0 a DX10 přibývají ještě geometry shadery (do jisté míry podobné vertex shaderům, více jsme o nich psali ve článku DirectX 10 - co nás čeká?). Tři typy výpočetních jednotek pro troje shadery by znamenalo další zvýšení plochy čipu, které by ale nepřineslo výkon, jen podporu technologií potřebných pro kompatibilitu s DX10. A to je trochu drahý špás, zvlášť když by v případě takového konceptu bylo nutné implementovat vlastní texturovací jednotky pro pixel shadery a vlastní pro vertex shadery. Texturovací jednotka, ačkoli se to nemusí na první pohled zdát, je poměrně velká - velikostí zhruba srovnatelná s jedním pixel shader procesorem čipů jako R520 nebo NV40/G70. Kdybychom se tedy řídili jen požadavky DX10, získali bychom velký čip, jehož výkon by zdaleka neodpovídal ceně. A to samozřejmě žádný výrobce nepřipustí. Jediný způsob, jakým se lze z této zapeklité situace dostat, je navržení výpočetní jednotky, která by mohla být využita pro všechny typy shaderů a která by byla napojena na univerzální texturovací jednotku.

GeForce 8800GTX a GTS v testu

Popsanému postupu se říká hardwarová unifikace a jak se zdá, stane se v nejbližší době standardem pro architekturu grafických čipů.



 
Komentáře naleznete na konci poslední kapitoly.
1067 čtenářů navrhlo autorovi prémii: 517.5Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.