Třetí tisícovka na krku: ATI Radeon HD 3850/3870 a jeho technologie
15.11.2007, Petr Papež, článek
Dnešním dnem končí NDA na jeden z nových produktů ATI/AMD. ATI Radeon HD 3850 a HD 3870 jsou grafické karty určené do středního cenového segmentu. Pojďme si projít co o nové kartě povídá samotná ATI a jak je to ve skutečnosti.
Kapitoly článku:
- Třetí tisícovka na krku: ATI Radeon HD 3850/3870 a jeho technologie
- ATI Radeon HD 3850 a HD 3870 teoreticky
- Recenze a závěr
Změny mimo hardware
Začneme mimo hardware. ATI obléklo logo do moderního hávu. Nové logo je, alespoň dle našeho názoru, povedené.
DirectX 10.1: Evoluce, revoluce nebo opět „popelnice“?
Na nové API rozhraní Microsoft DirectX 10.1 se mnoho uživatelů dívá skrz prsty s despektem. Po nepříliš úspěšném DirectX 10, jenž koncovým uživatelům prozatím nic moc nepřineslo, se nikdo nemůže divit. Snad jen na diskuzních fórech přibylo zmatených neznalých uživatelů, dychtících po kartě s DirectX 10 za 3000,- Kč včetně DPH. Ačkoliv z hlediska architektonických změn bylo nové rozhraní bohaté, v samotné kvalitě obrazu či rychlosti vykreslování se změny kvalitativně příliš neodrazily. Respektive značně negativně se použití knihoven DirectX 10 odrazilo v náročnosti scén.
Pokusím se Vám, alespoň teoreticky, vyvrátit zbytečnost DirectX 10.1. První karty s touto podporou se objevují na pultech obchodů právě teď, ačkoliv start rozhraní je naplánován až na začátek příštího roku společně s příchodem Microsoft Windows Vista SP1. Doufejme tedy, že příchod nového opravného balíčku nic neohrozí.
Hlavní brzdou dnešních grafických akcelerátorů jsou překvapivě procesory. I ta nejlepší dostupná procesorová architektura nedosahuje zdaleka tak vysokých výpočetních výkonů jako dnešní grafické akcelerátory, navíc rozdíl se stále prohlubuje. Jedním způsobem je zvyšování výpočetního výkonu CPU, což je však při současné x86 architektuře prozatím neřešitelný problém. S každým výpočetním jádrem enormně roste spotřeba, nároky na programátory/kompilátory a zjednodušení jader je spíše cestou zpět. Ani systém několika výpočetních jader a jednoho „hlavního“ jádra se prozatím příliš nerozšířil, jedinou masivně použitou vlaštovkou je IBM Cell v konzolích PlayStation 3 a některých serverech IBM. Odlehčení práce procesoru je tedy ta správná cesta, jak zvednout výkon bez ztráty kvality obrazu či nárůstu spotřeby elektrické energie. Právě touto cestou se chce ubírat Microsoft při návrhu příštích API.
Zauvažujeme-li o předchozí větě, dojde nám jedna věc. Jestliže chce GPU převzít úlohy doposud počítané procesory, musí zákonitě dodržovat i stejnou úroveň kvality a to je jeden z kamenů úrazu. Vyšší kvalita opět vyžaduje vyšší výpočetní výkon a toho nemá žádná grafická karta příliš navíc. Právě o zvyšování kvality a přesnoti výpočtů je i nové DirectX 10.1 především.
Ale pojďme se podívat na DirectX 10.1, takovou „nadstavbu“ DirectX 10.
Hlavní cíle a schopnosti DirectX 10.1 jak je vidí Microsoft a ATI:
Update na Shader model 4.1
Podpora WDDM 2.1 – Co je vlastně WDDM? WDDM přišlo společně s Microsoft Windows Vista, v angličtině se nazývá Windows Display Driver Model. Pod operačním systémem (dále jako OS) Microsoft Windows XP a starším komunikuje přímo ovladač grafické karty se samotným hardwarem. Ovladač je přímo součástí jádra operačního systému (tzv. kernel space). Ačkoliv pěkná myšlenka, Microsoftu příliš nevyhovuje. Hlavními nevýhodami jsou bezpečnost a stabilita. Jádro systému je tak zranitelnější (běží zde software třetí strany) a především při nestabilitě ovladače je nestabilní celý OS. Pomocí WDDM je co nejvíce ovladač přesunut mimo jádro (do tzv. user space). Stále však je část ovladače v jádře OS, ta se nazývá KMD (Kernel Mode Driver). Část mimo jádro se nazývá UMD (User Mode Driver). Implementace ovladačů ATI vždy nechávala OpenGL ovladač mimo jádro systému, zatímco Direct3D a DXVA (= přehrávání videa) ovladače byly typu KMD. Nový systém tak srovnal tyto tři části do stejné lajny, všechny se staly UMD. Jediným KMD, který zatím nelze z jádra odstranit je ovladač ATI pro přímou komunikaci s hardware. Nějaké praktické výhody? Především záležitost stability. Spadne-li ovladač Direct3D, pocítíte to pouze aplikacích využívajících tento ovladač, zbytek systému poběží dále. Tento systém byl uveden jako WDDM 2.0. WDDM 2.1 přináší změny, které však neznalému uživateli příliš neřeknou. Podívejme se na dvě zásadní vylepšení alespoň zevrubně:
- Zkrácená doba context switching - dnešní GPU jsou masivně paralelizované čipy. Context switching je přepínání mezi jednotlivými vlákny v GPU, u WDDM 2.1 je tato "čekací" doba zcela eliminována.
- Práce s chybou page fault (česky lze přeložit jako výpadek stránky) - page fault je chyba, kdy paměť je sice namapována, ale neobsahuje žádná data. V takovém případě grafická karta čeká na "znovudoručení" dat a ještě ke všemu začne pěkně od píky. WDDM 2.1 karty skončí s výpočtem daného vlákna a díky již velmi rychlému přepínání vláken (výše zmiňování context switching) pokračují ve výpočtu dalších dat. Nemusí se tak čekat a výpočetní jednotka pokračuje v práci.
Zlepšení kvality FSAA – uvidíme, zda bude mít nějaký reálný dopad na koncové uživatele nebo se bude jednat o výhody pouze pro vývojáře či uživatele hledající rozdíly na obrazovce lupou.
- Nové rozhraní se snaží dát vývojářům maximální volnost a předává jim větší kontrolu nad chováním FSAA. Dle ATI bychom se mohli dočkat kvalitnějšího FSAA u multi-GPU zapojení.
- Technologie Pixel Coverage Masks a inovovaná technologie Multi-sample buffer reads and writes - obecně kvalitnější FSAA
Zlepšení kvality shaderů a texturování - vlastnost více protěžovaná ATI spíše než Microsoftem.
- Cube Map Arrays - vlastnost, od které si asi slibujeme největší přínos. Tato možnost by opět měla zlepšit vyhlídky globálního osvětlení v moderních hrách. Ti, co se orientují v profesionální 3D grafice využivající vykreslování scény pomocí sledování paprsku (ray-tracing), moc dobře ví, jak zásadní vliv na výslednou kvalitu zobrazení globální osvětlení (tzv. GI) má. Kvalita zobrazení se tak kvapem blíží oné metě, kterou se snaží několik posledních let dobýt. To je kvalita zobrazení ray-tracingu alespoň při minimálních 25 snímcích za vteřinu. Přínosem je obecně posun k "filmové" kvalitě počítačové grafiky.
Vlevo obraz vyrenderovaný s aktivovaným globálním osvětlením (DiretctX 10.1), v pravo bez něj (DirectX 10).
ATI pro nás připravila ukázku z Ping-Pong dema, na kterém je krásně vidět rozdíl s a bez globálního osvětlení. Porovnejte sami na obrázcích pod tímto odstavcem (vlevo je vždy DirectX 10, vpravo DirectX 10.1). Opravdu zajímavý nápad útočit na ping-pongové míčky vysoušečem vlasů. Klikejte na obrázky pro zvětšení.
Jak si mnozí všimli, nejde pouze o globální osvětlení. ATI nás lehce "lakuje". Zatímco u DirectX 10 nejsou použity žádné stíny, u DirectX 10.1 je přítomno kromě GI i dynamické Ambient Occlusion (minimálně statické AO umí i DirectX 10) a vyhlazování stínů. Pod škatulkou globáního osvětlení si můžete představit především dvě "vychytávky": nepřímé osvětlení a díky nárůstu počtu zpracovaných "cube maps" lze použít podstatně větší počet odlesků, tzn. reálnější obraz.
ATI u svého dema uvádí až 5000 míčků při zachování "hratelnosti" a to včetně počítání kolizí objektů (ať jde o kolize typu míček - míček, míček s okolním prostředí či dokonce s větrem). Samozřejmou nutností je masivní paralelizace. Dvě jádra znamenají nárůst 35%, tři 52% a čtyři dokonce 92% výkonu. Proč ale ne 300%? Abychom mohli vůbec paralelizovat, jsou míčky rozděleny do osmi skupin. Totiž kolize míček - míček je záležitost počítaná "sériově". Při kolizi míčků, jejichž dráhy počítají různá vlákna/jádra, se musí vlákna/jádra synchronyzovat. Výhoda několika jader je zde znatelná. Uvidíme, co na to budoucí hry. Třeba i my budeme prohánět za několik měsíců míčky fénem v nějaké logické hře.
Zvýšení přesnosti/kvality -
- Je stanoven minimální požadavek na 4 vzorky MSAA (minimální podpora 4x MSAA) - to vše samozřejmě ve spojení výpočtu s shadery jak je vyžadováno u DirectX 10.
- Standardizace běžně používaného počtu vzorků FSAA (2x, 4x, 8x a 16x). Výrobci tedy již mají stanoveny určité standardy při návrhu FSAA.
- Nutnost počítání čísel v plovoucí desetinné čárce pomocí FP32 při filtraci 128-bitových textur. S výpočty v plovoucí desetinné čárce souvisí i zvýšení přesnosti, čímž grafické akcelerátory splní specifikace dané společností IEEE. Tato funkce by měla přispět především ke kvalitnějšímu HDR.
- Výpočty s pevnou desetinnou čárku při "míchání"/spojování textur (blending) musí nutně být typu Int16.
Plná zpětná kompatibilita s DirectX 10 - tuto vlastnost snad všichni považujeme za samozřejmost.
DirectX 10.1 přináší i další méně či více významné změny. Veskrze celé nové rozhraní je nadstavbou, takovou záplatou, na existující DirectX 10. Zlepšuje především kvalitu obrazu, o zvyšování výkonu se mluví pouze ve spojitosti s novým WDDM 2.1.