Teselace, DirectX 11.1 a PCIe 3.0
Kapitoly článků
Teselace
Téma teselace bylo mnohokrát rozebírané v souvislosti s Radeony HD 5000, ale po vydání šestitisícové řady diskuse poměrně utichly. Radeony HD 6000 přinesly jednak upravený front-end čipu (GPU Barts), a pak možnost použití více - konkrétně dvou - inovovaných teselátorů. Alespoň podle rozdílů v dosavadních hrách se zdá, že větší praktický rozdíl přinesl upravený teselátor (HD 6800) oproti původnímu (HD 5800) než použití dvou (HD 6900) oproti jednomu (HD 6800). I proto možná AMD upřednostnila vyřešení efektivity než implementaci dalších teselátorů.
Radeon HD 6970 oproti svým předchůdcům přinesl paralelní zpracování geometrie,
architektura GCN ho dále rozvíjí
Implementace architektury GCN vypadá velice slibně, neboť AMD vyřešila prakticky všechny slabiny, za které se jí dostalo kritiky. Hlavních změn je hned několik:
- přepracovaný algoritmus pro opětovné použití vrcholů (vertex re-use), který vychází z patentované technologie AMD
- zlepšení kapacity on-chip (ale i off-chip) bufferů
- zdvojnásobená parametrová cache (ta je určena pro uchování barvy, texturových souřadnic atp. pro každý vrchol) společně s novým algoritmem minimalizujícím duplikaci dat
- pro nižší faktory teselace je možné držet data na úrovni čipu, případně mohou přetéct až na úroveň L2 cache; domain shading může být redistribuován i mezi ostatní jádra
AMD ohledně detailů popsaných změn nebyla příliš sdílná a obzvlášť třetí bod není zcela jasný. Patrně jde o situaci, kdy teselátor vygeneruje určitý vertex vícenásobně jak prochází teselací vstupního troj- (nebo čtyř-) úhelníku. Každá instance zmíněného vertexu bude vyžadovat vygenerování příslušných parametrů (barvy, normála, texturové souřadnice…) doménovým shaderem. Tato data dále pokračují do cache vertexových parametrů, kde na jejich základě může začít pracovat pixel shader. Více instancí identických dat samozřejmě zbytečně přeplňuje tuto cache.
AMD proto přišla s nějakým řešením, jak duplicity odhalit a odstranit. V podstatě existují dvě základní možnosti. Buďto je detekovat už na výstupu teselátoru, což by šetřilo nejen parametrovou cache, ale i výkon doménového shaderu - na druhou stranu takové řešení by asi bylo náročnější. Nebo duplicity vyřazovat při (nebo po) realizaci domain shaderu. V současnosti můžeme jen spekulovat, kterou cestu AMD zvolila.
Výsledkem všech popsaných úprav je až čtyřnásobné zlepšení oproti tomu, čeho dosahoval čip Cayman - Radeon HD 6970. V reálných hrách je samozřejmě rozdíl nižší, protože teselace je jen jedním z řady faktorů, na kterých výsledný framerate záleží. Přesto jsou výsledky poměrně zajímavé:
DirectX 11.1
Architektura GCN a všechny produkty na ní postavené podporují DirectX 11.1. AMD to zatím zmiňuje jako holý fakt a nezdůrazňuje žádné konkrétní výhody, které soubor nových API přinese uživateli. Je to dáno hlavně tím, že DX 11.1 bude uvedené teprve s operačním systémem Windows 8 (zřejmě podzim / zima 2012), což je ještě relativně vzdálená budoucnost.
Z oficiálně známých novinek verze 11.1 můžeme jmenovat například nativní podporu pro stereo 3D zobrazování, shader tracing (analytický nástroj pro vývojáře), zrychlení softwarového rasterizéru WARP, lepší spolupráce Direct3D a MediaFoundation (možnost napojení výstupu video API na pixel shader), návrat cap bits (značky ohlašující podporu různých hardwarových vlastností - zrušené při zavedení DirectX 10 z důvodu sjednocení a zjednodušení, opětovné zavedení s DirectX 11.1 zejména kvůli podpoře specifických grafických čipů mobilních SoC). Nemá smysl vyjmenovávat všechny rozdíly - výčet najdete na oficiálních stránkách Microsoftu:
V tuto chvíli je pro nás důležité, že Direct 3D 11.1 kód by měl být realizovatelný i na Direct 3D 11 grafické kartě - může to však být na úkor výkonu. Můžeme očekávat podobnou situaci, jako v případě DirectX 8 / 8.1 a DirectX 10 / 10.1.
PCI Express 3.0
S PCI Express 3.0 to je v současnosti podobné jako s DirectX 11.1. Ačkoli jde o novou technologii, praktický význam z krátkodobého hlediska není velký a zřejmě se projeví až s využitím technologie PRT nebo při specifickém GPGPU nasazení (pokud samozřejmě nebudeme počítat low-endové uplatnění v podobě HyperMemory, kde by se význam mohl projevit rychleji). Specifikace PCIe 3.0 mluví o oboustranné zpětné kompatibilitě (stará platforma + nová grafika / nová platforma + stará grafika).
Hlavním přínosem oproti verzi 2.0 je zdvojnásobená přenosová kapacita (v obou směrech), ale v současné chvíli se tato sběrnice spíš než na přenos dat používá jako mocný marketingový nástroj, kterým výrobci s chutí pletou zákazníkům hlavy. Po hardwarové stránce je PCIe 3.0 zatím k dispozici pouze na vybraných konfiguracích platformy Intel, AMD podporu chystá.
AMD Tech Day, Mnichov (8. prosince)