Obrana NVIDIE před
protivenstvím osudu: Editor’s Day
NVIDIE už nějaký čas neprožívá lehké
období. Opodstatněné obvinění ze švindlování
v 3DMarku03 a zejména objevení shaderové chabosti karet
s čipy GeForce FX, které potvrdil i John Carmack, znamenalo sestup
dobré pověsti NVIDIE o mnoho stupňů. Těžké časy si často žádají neobvyklé
kroky, a NVIDIA k jednomu takovému před pár dny sáhla. Vědoma si
klíčové pozice počítačových médií, uspořádala v kalifornském San Franciscu
informační akci pro novináře s názvem Editor’s Day – akci, která nemá
v dějinách firmy obdoby. Zúčastnili se jí technické i manažerské
špičky NVIDIE, například David Kirk (hlavní vědecký pracovník), Nick Triantos
(ředitel sekce OpenGL), Ben De Waal (ředitel sekce DirectX) a dokonce
i šéf celé NVIDIE Jen-Hsun Huang. Na setkání byli pozváni i zástupci
významných vývojářských firem – např. šéf id Softwaru Todd Hollenshead.
Editor’s Day měl významný a nelehký účel: pokusit se opodstatnit a vysvětlit činy a rozhodnutí, která NVIDIA udělala a dělá. Tohoto úkolu se zhostil převážně David Kirk, který je osobou přímo určující technické směřování firmy. Jedna z klíčových otázek zněla: proč by měly být lepší grafické čipy pracující se dvěma přesnostmi v plovoucí desetinné čárce (16 a 32 bitů – NVIDIA GeForce FX) než čipy pracující s jednou přesností (24 bitů – ATI Radeony 95xx a vyšší)? Podle kapitána Kirka by nebyl čip s pouze 16 nebo 24bitovou přesností dobrý, protože by byl sice menší, rychlejší a jednodušší na programování, ale nepostačoval by nárokům některých programů. Ideální by bylo používat všude 32bitovou přesnost, což by ale bylo příliš drahé a čip NV35 (GeForceFX 5900 Ultra) by údajně musel mít dvojnásobnou velikost.
Další argument, který Kirk použil, zněl, že pro 32bitové výpočty existuje standard IEEE, pro 16bitové sice ne, ale používá ho mnoho programů (CADy, grafické a animační aplikace), zatímco pro 24bitové výpočty neexistuje žádný standard. Kirk nicméně uznal, že implementací dvou různých přesností znesnadnili práci programátorům her. Závěrem Kirk vypíchl, že architektura GeForce FX je optimalizovaná pro dlouhé shadery (až 1024 instrukcí) a prokládání texturových a matematických instrukcí a zároveň je citlivá na pořadí instrukcí. Naproti tomu architektura Radeonů je prý optimalizována na krátké shadery (do 64 instrukcí) a delší bloky texturových a matematických instrukcí.
Univerzálnější nebo
nepromyšlený?
Osobně bych řekl, že si NVIDIA vzala s architekturou
NV3x velké sousto, které teď těžko a za pomoci různých digestiv tráví – ATI
naopak těží z větší zavedenosti, jednoduchosti a z ní
plynoucí větší efektivity. Z výše uvedeného jasně vyplývá, že NVIDIA prostě
musí optimalizovat a musí autory her nutit
k optimalizacím, protože jinak by zůstala s výkonem svého hardwaru
zcela na chvostu. Je jen otázkou, do
jaké míry je pomalost shaderových jednotek čipů GeForce FX dána
jejich zaostalostí, a do jaké míry za to může jejich specifičnost.
Radeon 9700 byl první čip podporující DirectX 9 a byl to po dlouhou dobu
jediný takový čip, který byl vývojářům her k dispozici – nelze se proto
divit, že si na něj zvykli, a adaptace na nvidiácký koncept jim nebyla po
chuti.
Snahou usnadnit vývojářům život je Unified Compiler, který byl poprvé zahrnut do ovladačů Detonator 44.12 a podstatně vylepšen v nových ovladačích ForceWare. Tento „kompilátor“ pracuje s programy používající rozhraní DirectX i OpenGL; na jeho vstupu je původní shader, jak ho napsal autor, a na výstupu má být shader generující tentýž efekt, ale optimalizovaný pro GeForce FX.
Druhý základní bod, který se řešil na akci Editor’s Day, byly pochybné optimalizace, díky nimž upadla NVIDIA ledaskde v opovržení. Nick Triantos poměrně podrobně vysvětlil striktní pravidla, kterými se v této věci musejí programátoři NVIDIE nyní řídit. Celý proces naznačuje následující obrázek:
Vidíme, že po zformulování možné optimalizace přichází první kontrola pomocí pravidel, o kterých jsme referovali již dříve (např. že z ní nesmí mít prospěch jen jedna konkrétní aplikace). Projde-li optimalizace úspěšně touto víceméně diskusní fází, je implementována do ovladačů a podrobena automatické kontrole kvality obrazu systémem pro validaci ovladačů (DVS – Driver Validation System). Následuje revize kódu a nakonec „lidské“ vyhodnocení výsledku; ze všech těchto fází se při nevyhovění vrací celý proces na začátek.
Švindluje ATI?
Editor’s
Day samozřejmě nebyl jen na výše zmíněná témata – to by NVIDIA implicitně
přiznala, jak velmi závažná pro ni jsou. Příležitost dostali i vývojáři
her, aby prezentovali své chystané výtvory (jmenujme Deus Ex: The Invisible War, Halo: Combat Evolved nebo Unreal Tournament 2004). Ani prezentace
her se však neobešla bez zabroušení do otázek ovladačů – tentokrát přirozeně
obviňující firmu ATI, že Catalyst nevytváří korektní obraz. O tom ale zase
až příště.
Zdroje: Tom's Hardware Guide, Bjorn3D