Radeony HD 4890 a HD 6790: stejné parametry, různý výkon?
Skutečně (více méně shodou okolností) se stalo, že současný mainstreamový AMD Radeon HD 6790 specifikacemi prakticky přesně odpovídá o dva roky staršímu high-endu od (tehdy ještě) ATI. Nepatrně se lišící frekvence jádra a pamětí v testu INPAI vyřešili přetaktováním obou GPU na 900 MHz a podtaktováním pamětí novější z karet na úroveň starší HD 4890. Za upozornění stojí i rozdíl ve spotřebě, který je daný jednak použitím rozdílných výrobních procesů, a pak změnami na úrovni hardwaru, které umožnily snížit klidový odběr z 60 na 19 W (tedy na třetinu). V souvislosti s tím možná stojí za zmínku referenční vzorky Radeonu HD 4870 s předprodukčním BIOSem, který ještě neměl nastavené parametry pro klidový režim a dosahoval bez zátěže i 90 W :-)
ATI Radeon HD 4890 | AMD Radeon HD 6790 | |
---|---|---|
GPU |
ATI RV790 55 nm TSMC |
AMD Barts 40 nm TSMC |
Frekvence |
850 MHz @900 MHz |
840 MHz @900 MHz |
SPs | 800 (160×5D) | 800 (160×5D) |
TMUs | 40 | 40 |
ROPs | 16 | 16 |
Výkon (single precision) |
1,36 TFLOPs @1,44 TFLOPs |
1,34 TFLOPs @1,44 TFLOPs |
Paměti |
1 GB 256bit GDDR5 |
1 GB 256bit GDDR5 |
Frekvence pamětí | 3,9 GHz |
4,2 GHz @3,9 GHz |
Spotřeba ve 2D | 60 W | 19 W |
Spotřeba ve 3D | 190 W | 150 W |
Napájení | 2× 6-pin | 2× 6-pin |
Rozhraní | PCIe 16× | PCIe 16× |
Specifika | DX 10.1 | DX 11 |
Ač jsou rozdíly u spotřeby v tabulce poměrně výrazné, realita byla ještě zajímavější:
Podívejme se ale na samotný výkon, který by se s ohledem na parametry lišit neměl. Pro ilustraci jsem vybral dvě hry, kde byl rozdíl nejnižší a nejvyšší:
zdroj: en.inpai.com.cn
zdroj: en.inpai.com.cn
Rozdíly se pohybují od rozmezí chyby měření až po více než 10%, vždy ale ve prospěch staršího Radeonu HD 4890. Redakce INPAI ale nedošla k jednoznačnému závěru, proč tomu tak je. Takže se na to budeme muset podívat sami. Mezi architekturami RV790 a Barts jsou (mimo změn potřebných pro kompatibilitu s DX11) se vyskytly 2 zásadní změny, které by se mohly projevit na výkonu:
- přístup k atributové interpolaci
- změny v rasterizaci
Atributová interpolace je proces, který souvisí s aplikací textur na polygony. Samotné vrcholy polygonů mají přiřazené určité atributy, obvykle texturové, barevné a normálové souřadnice. Během rasterizace je třeba dopočítat hodnotu těchto atributů pro každý pixel zpracovaného polygonu. A to se provádí právě atributovou interpolací. Čip ATI (až po R790 včetně) obsahovaly specifické výpočetní jednotky, multifunkční interpolátory, které tyto výpočty prováděly. Protože DirectX 11 v tomhle ohledu funguje jinak a interpolace již není realizována staticky, ale na požádání, musela změny realizovat i ATI - původní fixní interpolátory byly odstraněny a na DX11 čipech byl tento proces přesunutý na unifikované jádro (stream procesory).
To na jednu stranu může znamenat nepatrně nižší výkon v některých aplikacích, na stranu druhou ale existují i situace, kdy byla situace opačná a limitem výkonu byl omezený počet fixních interpolátorů na starších čipech. Každopádně možný dopad na výkon v reálných hrách by se pohyboval řádově na úrovni jednotek procent.
Druhou změnou, kterou přechod od RV790 (HD 4890) k čipu Barts (HD 6790) provázel, bylo zdvojení rasterizéru a efektivnější zpracování polygonů, které souviselo s požadavky teselace. Teselaci bohužel na ENPAI netestovali (bylo by k tomu třeba využít specifická techdema, jako např. Froblins, protože běžné hry podporují teselaci až na DX11 kompatibilním hardwaru), a tak se vylepšené zpracování geometrie projevit nemohlo.
Ani jedna ze dvou nejvýznamnějších změn architektury tedy nevysvětluje ty rozdíly ve výkonu, které se pohybují kolem 10%. Pro vysvětlení je tedy třeba zajít ještě o kousek dál, konkrétně k procesu vzniku samotného Radeonu HD 6790. Ten je postaven na čipu Barts, u kterého byly deaktivovány 4 bloky z unifikovaného jádra (tzn. mínus 320 SPs a 16 TMUs) a 16 ze 32 ROPs. 256bit sběrnice ale zůstala zachována. A právě to nejlépe vysvětluje celou záhadu. ROPs u Radeonů řad HD 4000, 5000 i 6000 jsou uspořádané v blocích po 4, kterým jsou přiřazeny bloky paměťového řadiče. V praxi to znamená, že počet ROPs i šířka sběrnice na sobě úzce závisejí - při návrhu čipu je možné upravovat jejich vzájemný poměr, ale není možné jejich počet kombinovat zcela nahodile.
Když se podíváme na čip RV790, měl 16 ROPs na 256bit sběrnici. Čip Barts ale 256bit sběrnici využívá 32 ROPs, takže datové cesty k samotným ROPs mají poloviční šířku. Pokud se tedy polovina ROPs deaktivuje, zůstane sice celková sběrnice 256 bitů široká a počet ROPs 16 (jako na RV790 / HD 4890), ale šířka datových cest k samotným ROPs je poloviční než na starém Radeonu. V praxi to lze popsat (výstižně, ale ne zcela přesně), jako kdyby ROPs měly k dispozici 128 bitů širokou paměťovou sběrnici, zatímco zbytek čipu (cache pro textury, geometrie) mohl využívat 256bitovou.
To se samozřejmě do jisté míry může podepsat na výkonu, pokud se tyto datové cesty plně vytíží. S identickou „záhadou“ jsme se mohli setkat už v době Radeonu HD 5830, u kterého se rovněž stávalo, že ve specifických hrách neodpovídal výkon teoretickému rozdílu oproti dražší HD 5850.