NVidia GeForce FX odhalila svá tajemství

  • 10
V tomto podrobném článku vám přinášíme detailní pohled na největší trhák letošního Comdexu - na grafickou kartu nVidia GeForce FX. Stálo čekání vůbec za to? Překoná GeForce FX svoje největší konkurenty? Nebo jde jen o další zklamání, kterých počítačový průmysl zažil už nepočítaně?

GeForce FX - Hollywood ve vašem PC?

O víkendu začal Comdex 2002, a s ním se přiblížil i dlouho očekávaný okamžik - NVidia ohlásila svůj nový čip, vyvíjený pod označením NV30. Už dlouho se proslýchalo, že označení "Geforce 5" se konat nebude, ale výsledek zas tak moc odlišný není. Marketingové oddělení NVidie se rozhodlo pro "Geforce FX", kde FX označuje efekty.

Nezbývá než doufat, že si již tak dost zmatení uživatelé nebudou karty "Geforce MX" a "Geforce FX" příliš plést.

Dlouhé čekání

Při vydání TNT2 začala nVidia propagovat velmi agresivní šestiměsíční vývojový cyklus, ve kterém se střídalo vydání nové karty s vydáním lehce vylepšeného čipu. Je pravda, že ne vždy se jí to zcela dařilo (Geforce2 i Geforce2 Ultra by se asi daly označit jako vylepšená verze Geforce), ovšem NV30 představuje skluz zatím největší. Některé vlastnosti, se kterými tento nový drahokam od nVidie přichází, byly očekávany už od "jarního čipu", tedy od GeForce 4, ten s nimi však nepřišel.

Vlastní NV30 měla být v říjnu již na pultech obchodů. Nyní je druhá polovina listopadu a karta je teprve ohlášena. Stálo čekání za to?

Nový výrobní proces...

GeForce FX je prvním čipem od nVidie vyráběný 0.13 mikronovým procesem. Zatímco ATI
se rozhodla zůstat (pro svůj Radeon 9700 = R300) u osvědčeného 0.15 procesu, nVidia skočila do hluboké vody. Tento krok je bezesporu hlavním důvodem velkého zdržení, ovšem pravděpodobně se vyplatil - zatímco nový Radeon je se svými cca 110 milliony tranzistory taktován na 325 MHz, V30 by měla se 125 miliony tranzistory běžet přibližně na 500 MHz (přesná čísla zatím nejsou známa). NVidia také doufá, že konkurenci zdrží přechod na novou technologii stejně jako jí - toto ovšem nemusí být očekávání zcela opodstatněné, protože vlastní výrobci čipů celý postup jistě odladí.

Vzhledem ke zvýšenému počtu tranzistorů nVidia také sáhla k jinému stylu balení vlastního
čipu (podobně jako již předtím ATI). Toto nové balení mimo jiné znamená nižší spotřebu a větší
odolnost proti interferencím, což opět přispívá k vysoké taktovací frekvenci NV30.

Jádro GeForce FX ze všech stran (i ze vnitř) Jádro GeForce FX ze všech stran (i ze vnitř)


... a nové paměti ...

Narozdíl od Matroxu a ATI, zůstala NVidia u 128 bitové paměťové sběrnice. Použila ovšem nové
DDR-II paměti od společnosti Samsung. Ty sice neumožňují 4 přenosy během jednoho taktu, jako očekávané paměti typu QDR, ovšem díky vylepšenému předávání adresovacích signálů zvládají běžet na frekvenci 500 MHz, což u DDR pamětí dává efektivní frekvenci 1 GHz (1000 MHz).

Pro srovnání, paměti v Radeonu 9700 běží na frekvenci 310MHz (620 MHz efektivně) a dává tak přenosovou rychlost/propustnost 19.8 GB/sec.

Chlazení alá "Turbo"

Abychom vysledovali historii chladičů grafických karet pracujících na Turbo principu, musíme se vrátit téměř o rok zpět - neboť první exempláře, mající ovšem daleko k dokonalosti, a spíše připomínající zkušební prototypy, se objevily právě v té době.

Nelehké začátky

Mezi hrstku průkopníků patřila samozřejmě samotná nVidia, která na referenční kartu GeForce4 první takový prototyp Turbo chladiče namontovala. Všichni přední výrobci se tohoto chlazení (jak jinak) ujali a s rychlostí blesku jej také okopírovali. 

Našli se však tací, jako například Gainward nebo Leadtek, kteří se vydali vlastní cestou. A díky nim pak vznikla řada v pravdě klasických variací na téma "vrtule + radiátor". Ostatně, podobný typ chlazení najdeme dodnes i na 
nejmodernějších kartách konkurenční ATI a samozřejmě i jiných výrobců.

První podstatná inovace

Ale vraťme se zpět k "Turbu". První významný krok stranou učinila až (do té doby u nás širší veřejnosti prakticky neznámá) firma e-VGA. 

Ta jako první pochopila hlubší význam chlazení moderních grafických karet a oživila zájem o svoje produkty montáží úplné novinky. Tak světlo světa spatřila technologie "Heat-Pipe" založená na centrálním měděném vodiči tepla, odděleném heatsinku (heatsink - pasivní žebrovaná část chladiče) a radiálním větráku.

Princip takového chlazení je v postatě jednoduchý. Samotné GPU není spojeno s heatsinkem ale s přenašečem/vodičem tepla. Teprve ten je propojen s heatsinkem, který, díky tomu, že je mimo prostor čipu, může být rozměrnější a chlazení tak účinnější.

e-VGA GeForce4 MX440

Abit OTES vstupuje na scénu

Dalším mezníkem ve vývoji se stal počin firmy Abit. Byla nazván O.T.E.S (OTES) a ve stručnosti na něj prozradím několik informací.

Abit použil stejný systém jako e-VGA. Alespoň co se týká "Heat-Pipe" a odděleného heatsinku. Inovace však byla dotažena (téměř) do konce tím, že veškeré součásti chlazení byly opatřeny krytem a horký vzduch byl chytře umístěným otvorem následně vyveden mimo počítačovou skříň.

Nechyběla samozřejmě ani teplovodivá kapalina uvnitř vodiče tepla (heat-pipe), která neustále cirkuluje na základě tepelné výměny a radiální, 7200 otáčkový větrák.

Abit OTES


GeForce FX a její chladič

V případě GeForce FX není přirovnání "Turbo chladič" vůbec přirovnáním lichým. Následující obrázek chladičem osazené GeForce FX pochází ze serveru HotHardware, který jej přinesl jako první.

GeForce FX

Zásadní změna oproti OTESu spočívá v tom, že kryt chlazení umožňuje nasávaní chladného vzduchu z okolního prostředí a posléze horký vzduch vyfukovat zase ven. V počítačové skříni se tak kumuluje minimum ztrátového tepla pocházejícího z grafické karty a chlazení může být mnohem efektivnější. Další výhodou je to, že celý pasiv chlazení překrývá i paměťové čipy. Naprosto ideální stav - tedy téměř ideální..

Nevýhody a drobné vady na kráse

Do této chvíle jsme se zabývali výhodami a tak nezbývá než se pro změnu podívat na nevýhody tohoto a podobných systémů.

Prvním problémem je větrák. Je vhodný a užitečný zejména v tom směru, že poskytuje větší průtok vzduchu chladičem, než větrák klasický, axiální. Ale pokud jste někdy jeli automobilem, který byl vybaven turbo-dmychadlem, určitě jste slyšeli, co se stane, když řidič přidá plyn a turbo se roztočí na svých provozních 120 000 ot/min..

Bohužel, podobný zvuk produkuje i chladič nejnovější grafické karty nVidie - byť se nedá předpokládat, že by se točil vyšší rychlostí jak 7200 ot/min. A připusťme si, 
že další zdroj hluku větší, než dokáže vyprodukovat i ten nejhlučnější chladič procesoru, mnoho uživatelů asi bude snášet velice těžko.

Jedinou nadějí je slibovaná automatická regulace otáček, která by v případě, že karta nebude úplně vytížena, mohla alespoň na čas ulevit ušním bubínkům.

Jeden slot je málo..

A to, bohužel, není ani zdaleka jediná nevýhoda nového chlazení. Karta s tímto typem chladiče zabírá celkem dvě pozice. Pro ostatní přídavné karty je tak ve skříni mnohem méně místa. A jak už to tak bývá, ani cena podobného chlazení nebude nejnižší, už kvůli tomu, že měď je na celosvětovém trhu výrazně 
dražší než třeba hliník.

Nové shadery - verze 2.0 a více

Připomeňme si zkráceně, co že to jsou shadery. Tento pojem nejspíš zavedl Renderman, renderovací program používaný pro profesionální filmové efekty už někdy od 80.let. V jeho podání se jedná o programy popisující, jakým způsobem se renderuje scéna.

Do světa počítačových her tento pojem poprvé přinesl DirectX 8.0 (a GeForce3), a to hned ve dvou instancích:

  • Vertex shadery (vertex = vrchol trojúhelníku), jsou programy popisující zpracování geometrie. Základní aplikací je transformace objektů na jejich správnou pozici ve scéně a osvětlení, díky programovatelnosti ovšem dnes mohou provédět mnohem více - skining (animaci 3D postav), nejrůznější modifikace povrchu (moře), generování texturových souřadnic pro odrazy, a samozřejmě nejrůznější výpočty připravující
    podklady pro pixel shadery.
  •  Pixel shadery, tedy programy popisující zpracování jednotlivých bodů. Základní aplikací je nanesení textur případně jejich míchání (lightmapy v Quake hrách), díky programovatelnosti umožňují počítat osvětlení pro každý pixel (toto šlo samozřejmě i bez nich, ovšem s nimi je to snazší), bumpmapping, vylepšené  osvětlovací modely a podobně.

Ačkoliv shadery ve verzi directx8 byly takovou malou revolucí, přece jen byly v mnoha ohledech poměrně omezené. Shadery ve verzi 2.0 sice mají stále hodně daleko do Rendermana, ovšem přece jen představují výrazný pokrok (a je možné, že kompletní Renderman shadery nebude 3D hardware přímo podporovat nikdy).

Zkusme si srovnat některé vlastnosti Pixel a Vertex Shaderů ve verzi 1.1 (DX 8), 2.0 (DX 9) a NV30:

  NV30 1.1 1.4 2.0
Vertex Shadery        
Max. počet uložených instrukcí 256 128 (není definován) 256
Max. počet provedených instrukcí 65536 128 * (není definován) 1024
Max. počet konstant 256 96 (není definován) 256
Počet pomocných registrů 16 12 (není definován) 12
Max. počet smyček 256 0 (není definován) 4
Podmíněný zápis ano ne (není definován) ne
Vnořené procedury ano (max. 4) ne (není definován) ano (max. 1)
Statické řízení běhu ano ne (není definován) ano
Dynamické řízení běhu ano ne (není definován) ne
         
         

Pixel Shadery

       
Max.počet textur 16 4 6 16
Max.počet přístupů do textur 1024 4 12 32
Max.počet aritmetických instrukcí 1024 ** 8 16 64
Max.počet konstant 1024 *** 8 8 32
Počet pomocných registrů 64 2 6 12
Podmíněné provádění instrukcí ano ne ne ne
Max.počet závislosti při čtení textur neomezeno 4 2 4
Swizzling (přístup na složky registrů) neomezený jen alpha neomezený omezený
Datové typy int (12bit), fp16, fp32 int int **** int, fp16, fp32 *****
  (int = integer)   (fp = floating point)  

Vysvětlivky k tabulce:

* = Vertex Shadery 1.1 neumožnují smyčky ani skoky, a tak max. počet provedených instrukcí odpovídá počtu uložených instrukcí
** = Počet přístupů do textur + počet aritmetických instrukcí je dohromady 1024
*** = konstanta obsadí jednu instrukci
**** = -8..+8, tj. 12 bit
***** = Pixel Shadery 2.0 explicitně nespecifikují 16 bitové floating point čísla, ovšem instrukce mohou obsahovat modifikátor říkající "tento výpočet je možno provést se sníženou přesností".


Za poznámku ještě stojí, že Radeon 9700 více méně odpovída pixel shaderům 2.0. Proberme si teď nejvýznamější změny u GF FX:

Řízení běhu programu ve Vertex Shaderech

Zatímco původní Vertex Shadery představovaly jen řetěz instrukcí, jež se provedly odshora dolů, vertex shadery 2.0 zavádějí příkazy známé ze všech "rozumných" programovacích jazyků - smyčky, podmíněné skoky a volání podprogramů.

Typickým příkladem jejich použití je osvětlení. V původních Vertex Shaderech se všechny instrukce vykonaly vždy.
Bylo tedy možné napsat program, který počítal osvětlení vrcholu 8 světly, ovšem z hlediska výkonu to nebylo zrovna nejmoudřejší (draci na kolotoči v 3DMark 2001), pokud tedy většina objektů osmi světly nasvícena není. Typické řešení bylo napsat programů několik, jeden pro světlo jedno, jeden pro dvě světla, další pro čtyři... knihovna pro dynamické linkování nvlink toto sice usnadnila, ale přece jen se nejednalo o řešení optimální.

Vertex shadery 2 ve své základní podobě přinášejí tzv. statické řízení běhu programu. To znamená, že smyčky a skoky jsou řízeny konstantami, jenž jsou neměnné po dobu vykreslování jednoho objektu. Je tedy možno jednoduše říci "tento objekt má 8 světel" a "tento objekt má 4 světla" pouhou změnou jediné konstanty.

Toto je rozhodně velikým pokrokem, ovšem NV30 jde ještě dál - smyčky i skoky mohou být dynamické, tedy řízeny konkrétními daty v příslušném vrcholu. Je tedy možné mít část modelu nasvícenou 8 světly a jinou část jen 4 (což u statického řízení lze dosáhnout jen rozdělením objektu na více částí).

Možná lepším příkladem než světla je počet kostí ovlivňujících daný vrchol (pri animaci modelu metodou zvanou skining) - tady typicky částí kolem kloubů vyžadují kostí více, zatímco části daleko od nich si vystačí se dvěmi.

Počet konstant

Zde se jedná spíše o evoluci než revoluci, přesto vítanou, neboť zejména u Vertex Shaderů byl původní počet dosti omezující. Za zmínku stoji řešení uložení konstant u pixel shaderů - tady se nVidia rozhodla místo speciálního prostoru ukládat konstanty přímo jako speciální instrukce. Jejich počet díky tomu stoupá na 1024, ovšem je otázka, zda jejich modifikace díky tomuto uspořádání nebude pomalejší. Uvidíme.

Počet instrukcí

NVidia je rozhodně pyšná na to, že její Pixel Shadery zvládají až 1024 instrukcí, a má být na co.. opravdu?
Pokud odhadneme, že čip zvládá provést 8 instrukcí na 1 takt (jelikož má 8 renderovacích cest, viz později), vychází nám v rozlišení 640x480 pouhých 13 snímků za sekundu při maximální délce pixel shaderu. To bohužel rozhodně není rychlost vhodná pro hry..

Ovšem i kratší shadery by měly umožňovat velice zajímavé efekty, přitom podpora těch dlouhých už dnes umožňí programátorům pracovat na technikách, jež se uplatní na budoucích kartách.

Nezávislé čtení z textur

Řešení přístupu do textur bylo v Pixel Shaderech verzí 1.1 - 1.3 do jisté míry zklamáním. Na začátku programu byl umístěn blok maximálně 4 texturovacích instrukcí, jenž načetly data. Instrukce sice mohly být navzájem závislé, ovšem pouze mezi sebou - nikoliv na následujících aritmetických výpočtech. Pixel Shadery definovaly poměrně velké množství instrukcí umožňujících mnoho zajímavých efektů (z nichž asi nejvýraznějším byl korektní reflexivní bumpmapping), ovšem flexibilita tak nějak chyběla.

Pixel Shadery 1.4 situaci vylepšily tím, že umožňovaly rozdělit celý program do dvou fází. Přitom texturovací instrukce z fáze druhé, mohly využívat výsledky výpočtu z fáze první. Pixel Shadery 2.0 celý proces dokonale zprůhlěďnují (zejména při omezení maximální hloubky závislosti u nv30) - přístup do textury je zkrátka jen obyčejná instrukce, jež může být umístěna kdykoliv uvnitř bloku výpočtů. Pro psaní Pixel Shaderů je toto doslova přelom.

Datové typy

O těch více v kapitole o zvýšené přesnosti

CgFX

CgFX není přímo hardwareovou novinkou, a není nutně ani novinkou specifickou pro NVidii. Jedná se ovšem o aktivitu této firmy a proto by ji bylo vhodné zmínit. O co jde? Shadery pro grafické karty se ve své základní formě píšou ve speciálním assembleru. Reakce některých herních firem "v tom se nedá nic rozumně napsat" jsou poněkud přehnané, uvědomíme-li si fakt, že dříve byly v assembleru psány celé hry, ovšem je  nutno přiznat, že v assembleru se přece jen nepíše tak rychle jako ve vyšším programovacím jazyce.

NVidia na tento problém zareagovala vyvinutím jazyka Cg (C pro Grafiku) a posléze jeho rozšířením CgFX, které popisuje kompletní materiál objektu (tedy včetně přiřazení textur a podobně). Kompilátor pro tento jazyk je k dispozici ve zdrojové podobě (respektive jeho konečný stupeň) a tak je teoreticky možné generovat v něm optimální programy pro všechen dostupný hardware.

Firmě ATI se do tohoto projektu ovšem nijak zvlášť zapojit nechce, a tak je v současné době výstup kompilátoru omezen na standardni shadery z DirectX 8.0 a OpenGl 1.4, plus OpenGl rozhraní pro NV30.

CgFX ovšem není jedinou možností. Přímo DirectX 9 obsahuje High Level Shading Language (HLSL) a tak zvané "techniky". NVidia tvrdí, že jejich Cg je kompatibilní s HLSL a CgFX s Microsoftími technikami.

Firma 3dlabs (nedávno koupená firmou Creative) pak pracuje na vývoji OpenGl 2.0, jehož součástí je i vlastní vyšší programovací jazyk pro shadery.  Spíše ve stádiu výzkumu je programovací jazyk Standfordské univerzity. Tento jazyk se snaží mnohem více přiblížit Rendermanovi a mimo jiné zvládá automatické rozdělení vykreslování objektů na potřebný počet průchodů v závislosti na schopnostech hardware (u ostatních adeptů toto musí provést programátor sám).

Jen čas tedy ukáže, který z konkurentů na trhu zůstane (pokud vůbec některý - výkon v této oblasti je poměrně překotný), ovšem v konečné fázi bych osobně sázel na něco na způsob jazyka se Standfordu.

Proč "2.0 a více?"

Jak je z tabulky zřejmé, NV30 v mnohém překonává model haderů verze 2.0. Některé recenze ji proto označují jako "kartu překonávající DirectX 9", ovšem toto zatím není zcela jisté. Podle nedávno uniknuvších specifikací DirectX 9 (oficiální SDK zatím bylo dáno k dispozici pouze betatesterům, a to pod NDA) se totiž Microsoft rozhodl specifikovat také shadery "2.0 extended" a "3.0". Zatím se zdá, že by NV30 mohla odpovídat Vertex Shaderům 2.0 extended a pixel shaderům 2.0. Ovšem jen konkrétní hardware a první drivery ukážou, jsou-li tyto spekulace pravdivé.

Já chci přesné barvy!

Ačkoliv každý zanícený příznivce 3dfx hardware ví, že nic víc než 16bitové barevné zobrazení (hicolor) není třeba, výrobci grafických karet a my ostatní to stále nechápeme. V současné době nejčastěji používané 32 bitové barevné zobrazení (s 8 bity, tedy 256 hodnotami na složku) má v zásadě tyto tři problémy:

Ačkoliv za normálních okolností 256 úrovní jasu stačí, v některých případech (v obzvláště jemných barevných přechodech) si toho oko všimne. Průměrné lidské oko je údajně schopno rozlisit přibližně 1000 odstínu šedi. Truecolor zobrazení ovšem umožňuje zobrazení jen 256 odstínů čísté šedi (trikem s nepatrným přidaním příměsí lze tento počet zvýšit)

  • Tradiční zobrazení rozděluje zobrazovací rozsah monitoru na 256 stupňů lineárně. Citlivost lidského oka ovšem není lineární, odpovídá spíše gamma křivce s koeficientem 2.2
  • I pokud Truecolor krásně stačí pro zobrazení výsledného obrázku, je hrubě nedostačující pro jakékoliv složitější mezivýpočty.

Zatímco grafické stanice Silicon Graphics umožňují počítat s 12bity na složku (tedy 48bitové barvy, započítáme-li i alfa kanál) již dlouho, na PC platformě se s uvedenými problémy poprvé pokusila vypořádat firma Matrox s grafickou kartou Parhelia 512. Tato karta přišla
s formátem, který používá 10 bitů na složku.

DirectX9 se rozhodlo vypořádat s druhým problémem zavedením formátu textur sRGB (http://www.srgb.com/), který ukládá barvy textur po gamma korekci. NV30 by měla tuto vlastnost podporovat.

Třetí problém řeší karty částečně již dělší dobu - nVidie minimálně od GeForce1 pracují interně s 9 bitovou přesností, Radeon 8500 ma interně přesnost 12 bitovou. I tohle však řeší pouze malé problémy s přetečením, a navíc pouze tehdy, je-li karta schopna spočítat objekt během jednoho průchodu. V opačném případě dojde k uložení mezivýsledku v konvenčním 8-bitovém formátu a přesnost se ztratí.

Pixel shadery 2.0 řeší i tento problém zavedením barev reprezentovaných jako desetinná čísla s plovoucí čárkou (floating-point numbers). Tuto zvýšenou přesnost je možno použít jak uvnitř Pixel Shaderů, tak pro ukládání mezivýsledků do textur v tomto novém formátu.

Takový obrázek pak ovšem není možno přímo zobrazit, ale je třeba ho nakonec převést do tradičního (8 bit případně 10 bit) formátu.

Obrovský rozdíl v kvalitě výpočtů ukázala ve svých demech už firma ATI (http://www.ati.com/developer/demos/r9700.html), a NVidia se samozřejmě přidala.

Nezbývá než doufat, že se tato zvýšená přesnost začne používat co nejdříve (konkretně hře Doom3 by v některých scénách velice prospěla).

Pro úplnost zbývá dodat, že čip nVidie podporuje přesnost výpočtů v 32bitových a 16 bitových desetiných číslech. Radeon9700 podporuje 24bitová desetinná čísla.

Povrchy

Specifikace DirectX 8 přinesla zcela novou možnost - místo tradičních placatých trojúhelníků nechat vykreslovat zaoblené povrchy popsané křivkami vyššího stupně (HOS = Higher Order Surfaces). Zatímco NVidia přišla s podporou Beziérových a Catmull plátů, ATI implementovala svou verzi "subdivision surfaces" zvanou n-patches.

Řešení NVidie má v počítačové grafice větší tradici, ovšem ATI má výhodu snažší použitelnosti. A zatímco pro nVidii je třeba vytvořit zcela nové modely, technologie ATI lze aplikovat na tradiční modely sestavené z trojúhelníků (i když je třeba je někdy speciálně upravit, jinak se dočkáme nafouknutých zbraní ze hry Serious Sam).

Do rozhraní DirectX 9 pak firma Matrox přinesla "displacement mapping". Tato technologie je založena na n-patches, ovšem výsledné vrcholy jsou posunuty (displaced) podle speciální textury, díky čemuž lze jednoduše vykreslit hrbolaté povrchy nebo třeba terén.

NVidia se k n-patches vždy vyjadřovala odmítavě, a jejich podporu odstranila z detonátorů někdy kolem verze 30. Podle jejích propagačních materiálů ovšem GeForce FX podporuje všechny výše zmíněné technologie. Bude tedy zajímavé sledovat, zda se dočkají nějakého výraznějšího nasazení ve hrách (prozatím to nebyla žádná sláva).

Multiple Render Target

Pod tímto názvem se skrývá jedna z posledních výrazných vlastností nových DirectX (a poslední v tomto článku, neboť o podpoře zbývajících se nikdo nezmiňuje). Zjednodušene jde o to, že karta může během vykreslování zapsat do výsledného obrazu více údajů než pouze barvu pixelu. ATI například demonstrovala technologii, jež ukládá vzdálenost pixelů od kamery a jejich normálový vektor a pomocí nich pak detekovala obrysy objektů (často požadovaný efekt pro tak zvaný cartoon rendering, tedy zobrazování napodobující animované filmy).

Zatímco Radeon9700 tuto vlastnost podporuje přímo, u NV30 je funkce poněkud zastřená. Pixel Shadery tohoto čipu podporují pakovací a rozpakovávací instrukce, které umožňují uložit více hodnot do výsledné 128-bitové hodnoty, jež je pak zapsána do V-RAM (videoram), je ovšem otázkou, zda se nVidii podaří tuto schopnost zpřístupnit tak, jak ji specifikuje DirectX, nebo bude omezena na OpenGL rozříření.

Výkon, výkon, výkon...

Přecházející kapitoly byly tak trochu programátorské orgie, ovšem doufám, že i běžným smrtelníkům alespoň částečně naznačily možnosti, jenž nový produkt nVidie přináší (a vlastně nejen on, ale spíše DirectX 9 karty obecně).

Běžný uživatel si však na základě předchozích zkušeností zcela jiste povzdechne - je to všechno pěkné, ale hry to budou využívat kdy? Za 2 roky? Proto bude nejspíš mnohem zvědavější na přínos okamžitý - výkon.

Jak to tedy je?

NVidia naštěstí pochopila, že jen nové technologie její kartu neprodají, a tak neponechala výkon stranou. I tak je však z propagačních materiálů zřejmé, že se snaží nenápadně přesunout pozornost zákazníků od kvantity ke kvalitě – nebude tedy již záležet jen na tom, kolik miliard pixelů umí karta vykreslit za sekundu, ale také na tom, jak kvalitní tyto pixely jsou (ať už mluvíme o jejich antialiasingu nebo o vlastních výpočtech použitých při jejich "obarvení").

Tento tah je zcela pochopitelný - rozlišení monitorů je omezené a v okamžiku, kdy se dostaneme na plnou rychlost v 1600x1200, není už moc prostoru, kam dále postupovat.

Navíc tradiční brzdou akcelerátorů poslední doby jsou pomalé paměti, a je tudíž zřejmě jednodušší použít více výpočtů na pixel, než pak pixel uložit. Ale vezměme to postupně..

Geometrický výkon

Tradičním testem připravenosti karty ke zpracování milionů trojúhelníků se stal počet Vertex Shader jednotek. NVidia nám to ovšem ztížila. Geforce FX totiž neobsahuje několik rozdělených jednotek, ale jeden masivně-paralelní blok pro zpracování vektorových operací (tímto se velice podobá čipu P10 od 3dlabs).

Prozatím tedy nezbývá než se spokojit s udávaným výkonem 350 milionů trojúhelníků za sekundu. Pro srovnání, Radeon9700 Pro dosahuje výkonu 325 milionů.

Nicméně ze srovnání výkonu a frekvence Radeonu a NV30 vyplývá, že výkon transformačního bloku nVidie by mohl odpovídat zhruba třem Vertex Shader jednotkám.

Grafický výkon

V tomto se NV30 velmi podobá Radeonu 9700. Karta obsahuje 8 renderovacích cest, každá z nich má k dispozici jednu texturovací jednotku. V praxi to znamená, že karta je schopna vykreslit maximálně 8 bodů současně během jednoho taktu. To ovšem pouze tehdy, pokud budou objekty používat jen jednu texturu. Při použití více textur (tradičních
2 textur) by měl výkon víceméně odpovídat GeForce4 (pomineme-li rozdíl v pracovních frekvencích).

Osm renderovacích cest by ovšem mělo přinést výrazné zrychlení v situacích, kdy nám 1 textura stačí, nebo dokonce nepotřebujeme žádnou. Typickou ukázkou je vykleslování stínových těles (shadow volumes), používaných například zmíněnou hrou Doom3.

Shrnuto, podtrženo, GeForce FX bude výkonná a to tak, že velmi.

Benchmark GF FX ze hry DOOM3 (ID Software)
(Zdroj: 3Dcenter.org)



AGP 8x

AGP8x je nový standard pro sběrnice grafických karet. Umožňuje teoreticky přenést až 2.1GB/sec, tedy dvojnásobek oproti dnes běžnému AGP 4x. Podporuje také isochronní přenos (neplést s asynchronním..), tedy v podstatě přenos s garantovanou rychlostí a volitelně více, než jeden AGP konektor.

Podle dosavadních testů je rozdíl mezi AGP4x a AGP8x kartami prakticky nulový, ale je třeba přiznat, že často používaný 3dmark2001 je už poměrně vousatý. Uvidíme, jestli bude nějaký rozdíl viditelný u 3dmarku2003.

Intellisample


Pod tímto názvem se skrývá souhrn technologíí umožňujících zvýšený výkonu celé karty a také kvality výsledku.

  • Z komprese a rychlé mazání z-bufferu
  • Beze ztrátová komprese barev s účinností až 1:4. Zajímavost =>> Odsud zřejmě pochází údaj nVidie o efektivní přenosové rychlosti paměti až 48 GB za sekundu, neboť reálná přenosová rychlost je "jen" 16GB/sec.

Tyto dvě optimalizace budou zřejmě klíčovým faktorem v boji proti Radeonu9700, který disponuje 256-bitovou paměťovou sběrnicí a má přenosovou rychlost téměř 20GB/sec. Jak ukázal příklad Parhelie 512, jsou optimalizace přístupu do paměti poměrně důležité
(tato karta má 256-bitovou sběrnici a přesto se výkonově drží za Geforce4 s poloviční šířkou sběrnice).

Geforce FX také umožňuje

  • Vylepšený antialiasing (zahlazování hran). 6xS v DirectX a 8x v OpenGL. Navíc by díky kompresi barev mělo být snížení rychlosti pri aktivaci méně kvalitních módů minimální.
  • Vylepšené anisotropické filtrování. NV30 umožňuje podobně jako Radeon 9700 adaptivní anisotropické filtrování, díky čemuž by se měl pokles v rychlosti projevit pouze na texturách, které toto zvýšení kvality využijí. Podle dostupných údajů by tento režim měl jít v ovladačích zakázat, pokud dáváte přednost kvalitě obrazu před rychlostí.
  • Digital Vibrance Control verze 3: Kromě dosavadního zvýšení sytosti barev má tato funkce zvýšit ostrost textu a dalších hran.
  • Video Mixing Renderer (VMR), podobně jako u Radeonu se jedná o filtrování videosekvencí pomocí pixel shaderů
  • NVidia se údajně zaměřila na zvýšení kvality výstupu pro analogové monitory a televize. Uvidíme, co s tím zvládnou udělat naši oblíbení bastliči noname karet.

Srovnání GeForce FX versus Radeon 9700 Pro

Přijít muselo - Ale toto srovnání je samozřejmě obtížné, neboť Radeon je karta, jež je k dostání na pultech již nějakou dobu, zatímco GeForce FX je prozatím jen snůška reklamních materiálů, prvních prototypů a pár fotek z vývojových laboratoří nVidie.

Co se týká podporovaných vlastností, zdá se, že nVidia má tentokráte navrch. GeForce FX přesahuje výrazně specifikace Vertex a Pixel Shaderů 2.0, zatímco Radeon 9700 Pro je víceméně kopíruje (ovšem pokud je mi známo, ATI zatím nezveřejnila žádné specifické OpenGL rozšíření pro svůj hardware, a tak se může ještě nějaká nová vlastnost objevit).

GeForce FX také používá vyšší přesnost pro výpočty bodů. Otázkou je, zda tento rozdíl bude nějak patrný.

Pokud se jedná o výkon, Radonu hraje jednoznačně do ruk jeho širší paměťová sběrnice, zatímco GeForce běží na výrazně vyšších frekvencích, a má pravděpodobně unikátní schopnost komprese barev.

Na celkový výsledek souboje si tedy musíme počkat do té doby, než se objeví první vzorky k otestování. Jisté je, že nVidia to nebude mít jednoduché, protože počátkem příštího roku se od ATI očekává ohlášení nové vylepšené verze R300. Kdo říkal, že trh 3D hardwaru je nudný..?

GeForce FX

Maminko, kdy?

Geforce FX je hodně opožďěná, a i tak si na konkrétní hardware chvíli počkáme. Očekává se, že masová produkce čipů začne někdy v průběhu prosince, a karty by měly být běžně k dostání v průběhu ledna nebo spíše února.

NVidia ovšem pravděpodobně bude mít k dispozici pár desítek (stovek?) kusů již tento měsíc. Několik šťastlivých výherců z www.cgshaders.org  (což je mimochodem pěkná stránka pro ty, kteří chtějí vidět, co vše NV30 umí) zřejmě obdrží vysněný balíček již pred vánocemi, no a my ostatní si...

...si musíme počkat, až se karta dostane do spárů vybraným recenzentům.

A budoucnost...

Ačkoliv NVidia teprve ohlásila Geforce FX, po internetu se už delší dobu potulují dlouhodobější plány společnosti. Příští rok by měla přinést vylepšenou verzi NV35 (pravděpodobně nejdříve někdy na podzim), náhradu řady GeForce MX s plnou podporou DirectX 9, a možná i obdobný čip pro notebooky. Mluví se také o následníku čipsetu pro základní desky nForce s touto grafikou. Nezbývá než doufat, že si produktové řady ATi a NVidie povšimnou i výrobci her, a konečně všem konzolím ukážou, co PC zvládá.