AMD Radeon HD 6900: Cayman v rybníku
29.12.2010, Petr Štefek, technologie
V dnešním článku se podíváme na zbrusu nový grafický čip AMD Cayman, jenž reprezentuje značný evoluční krok a základ architektury budoucnosti, na které bude AMD v dalších letech stavět další generace grafických karet.
Kapitoly článku:
- AMD Radeon HD 6900: Cayman v rybníku
- Změna VLIW architektury – méně je někdy více
- Cayman a GPU computing
- Paralelní grafický engine a ROPs
- Závěr
Nvidia se svým PolymorphEngine zasadila AMD strašnou ránu v oblasti geometrického výkonu a spousta recenzí vyznívala tak, že bez dostatečného geometrického výkonu především pro teselaci nemá smysl ani žádnou grafickou kartu kupovat. Pravda je vždy někde uprostřed. Teselace a potažmo výkon geometrické části bude jednou velmi důležitou součástí každého grafického jádra. AMD si bylo své podřazenosti v této oblasti vědomo, a tak u Caymanu zapracovalo na výkonech geometrické části.
Cypress alias Radeon HD 5800 má jediný grafický engine, jenž zahrnuje rasterizéry, hierarchické Z jednotky, geometrické/vertex assemblery a teselátor. Cypress umí zpracovat 32 pixel za takt díky tomu, že disponuje druhými Z jednotkami a rasterizérem. Chybí nám tedy k dokonalému zdvojení ještě teselátor. Cayman má tedy k dispozici dva samostatné Graphics Engine.
Graphics Engine - Radeon HD 5800/5900/6800
Fermi od Nvidie představovalo masivní skok v oblasti výkonu geometrie. Cypress nemá tak komplexní geometrické jednotky jako Nvidia, a tak nebylo nic jednoduššího než v případě Caymanu tyto jednotky zdvojnásobit. Fermi může teoreticky zpracovat tolik funkcí, jako má ve svém jádru GPC. V případě GF110 to znamená čtveřici současně. AMD muselo vsadit na méně drastické řešení, a tak zvolilo cestu dvojice samostatných grafický engine, které teoreticky poskytnou dvojnásobný výkon v oblasti geometrie.
Graphics Engines - Radeon HD 6900
AMD k podobnému kroku sáhlo vůbec poprvé a především proto, aby bylo alespoň trochu schopno konkurovat přestřelenému teselačnímu výkonu Fermi. Ten můžeme obdivovat v technologických demech jako Stone Giant, ale ve hrách se podobných kouzel bohužel nedočkáme. Teselace bude na programu dne, až budou vývojáři vyvíjet současně pro grafické možnosti konzol a také grafických karet, které jsou notně popředu. Konzolové grafické čipy vedle nich vypadají poněkud zastarale.
AMD naučilo svůj grafický engine na principu tile-based (rozdělení scény do polí) pracovat s nimi v rámci této dvojice maximálně efektivně. Nejen to, AMD může v budoucnu počet grafických enginů násobit bez větších omezení. Nvidia se svým Fermi se naopak musí spokojit s poměrem GPC/SM/SP a v případě nutnosti opravdu velkého výkonu se může u čipů dalších generací stát, že AMD bude mít vyšší geometrický výkon. To je samozřejmě velmi teoretické a v současnosti platí, že Polymorph Engine trhá asfalt a konkurenci příliš nemá.
AMD ale nemohlo jít pouze cestou zdvojení jednotek, aby dosáhlo toho, co potřebuje, tedy vyrovnat se Nvidii. Předchozí teselátor v čipu Cypress měl úzké hrdlo v případě nižších teselačních faktorů (jednoduše řečeno tehdy, když z geometrie stávajícího modelu, respektive jeho polygonu, vzniká menší počet dalších – viz. graf). Naopak při práci s vyššími teselačními faktory docházelo k zahlcení grafického engine více grafickými primitivami (např. vrcholy, úsečky, trojúhelníky atd.), než byl schopen zvládnout. Tento problém je odstraněn, respektive zmírněn tím, že za takt zvládnou grafické enginy zpracovat dvě primitivy.
Radeon HD 6970 (červeně) vs. Radeon HD 5870 (žlutě)
AMD ovšem nezměnilo kapacity cache, které jsou stejné jako u Cypressu, takže muselo v rámci zvětšeného množství dat svázaného se dvěma grafickými enginy vymyslet něco nového. Data se tedy přenáší do RAM grafického akcelerátoru, což je násobně pomalejší než v případě ukládání do cache, ale na druhou stranu mnohem lepší než pipeline kompletně zastavit, dokud si rasterizéry nevyčistí svůj backlog. K tomu jevu dochází pouze tehdy, pokud stávající cache nepojme objem dat, tedy né vždy. Je to spíše taková krabička poslední záchrany, než že by si AMD myslelo, že bude RAM využívat tímto způsobem zcela běžně.
AMD uvádí, že výkon grafického engine se pohybuje někde okolo 2.5 násobku výkonu Cypressu, což je více než pozitivní zpráva. Dle ilustračního grafu je jasné, že se čip stále nezbavil mírného poklesu výkonu při velmi nízkých teselačních faktorech, kde se propadá jeho výkon až na 1.5 násobek Cypressu. Nízké teselační faktory jsou doménou současných her, ale v budoucnu budou velmi pravděpodobně narůstat na levely podobné současným technologickým demům.
Pro herní využití má stěžejní význam také úprava ROP jednotek, které mají samozřejmě co dělat se zpracováním všech těch testovaných modelů, potažmo nové geometrie, která vznikne. Vznik mnoha dalších trojúhelníků má za následek, že v případě využití vyhlazování mohou být ROP jednotky brzdou. AMD potřebovalo zapracovat na výkonech s MSAA pod různými levely, takže toto byla jediná schůdná cesta.
Cayman disponuje sice stejným počtem ROP jednotek (32), ale v rámci evoluce patřičně vyztuženými pro další úkoly. Celočíselné operace (INT16) jsou nyní dvakrát rychlejší a operace FP32 rovnou 2-4 x rychlejší než v případě Cypressu. Operace zapisování pro grafiku mohou být slučovány, s čímž jde ruku v ruce větší rychlost a efektivita. Uvidíme, nakolik budeme moci sledovat nárůsty v případě využití MSAA a teselace, která doposud lámala kartám vaz (např. Metro 2033).
Cypress alias Radeon HD 5800 má jediný grafický engine, jenž zahrnuje rasterizéry, hierarchické Z jednotky, geometrické/vertex assemblery a teselátor. Cypress umí zpracovat 32 pixel za takt díky tomu, že disponuje druhými Z jednotkami a rasterizérem. Chybí nám tedy k dokonalému zdvojení ještě teselátor. Cayman má tedy k dispozici dva samostatné Graphics Engine.
Graphics Engine - Radeon HD 5800/5900/6800
Fermi od Nvidie představovalo masivní skok v oblasti výkonu geometrie. Cypress nemá tak komplexní geometrické jednotky jako Nvidia, a tak nebylo nic jednoduššího než v případě Caymanu tyto jednotky zdvojnásobit. Fermi může teoreticky zpracovat tolik funkcí, jako má ve svém jádru GPC. V případě GF110 to znamená čtveřici současně. AMD muselo vsadit na méně drastické řešení, a tak zvolilo cestu dvojice samostatných grafický engine, které teoreticky poskytnou dvojnásobný výkon v oblasti geometrie.
Graphics Engines - Radeon HD 6900
AMD k podobnému kroku sáhlo vůbec poprvé a především proto, aby bylo alespoň trochu schopno konkurovat přestřelenému teselačnímu výkonu Fermi. Ten můžeme obdivovat v technologických demech jako Stone Giant, ale ve hrách se podobných kouzel bohužel nedočkáme. Teselace bude na programu dne, až budou vývojáři vyvíjet současně pro grafické možnosti konzol a také grafických karet, které jsou notně popředu. Konzolové grafické čipy vedle nich vypadají poněkud zastarale.
AMD naučilo svůj grafický engine na principu tile-based (rozdělení scény do polí) pracovat s nimi v rámci této dvojice maximálně efektivně. Nejen to, AMD může v budoucnu počet grafických enginů násobit bez větších omezení. Nvidia se svým Fermi se naopak musí spokojit s poměrem GPC/SM/SP a v případě nutnosti opravdu velkého výkonu se může u čipů dalších generací stát, že AMD bude mít vyšší geometrický výkon. To je samozřejmě velmi teoretické a v současnosti platí, že Polymorph Engine trhá asfalt a konkurenci příliš nemá.
AMD ale nemohlo jít pouze cestou zdvojení jednotek, aby dosáhlo toho, co potřebuje, tedy vyrovnat se Nvidii. Předchozí teselátor v čipu Cypress měl úzké hrdlo v případě nižších teselačních faktorů (jednoduše řečeno tehdy, když z geometrie stávajícího modelu, respektive jeho polygonu, vzniká menší počet dalších – viz. graf). Naopak při práci s vyššími teselačními faktory docházelo k zahlcení grafického engine více grafickými primitivami (např. vrcholy, úsečky, trojúhelníky atd.), než byl schopen zvládnout. Tento problém je odstraněn, respektive zmírněn tím, že za takt zvládnou grafické enginy zpracovat dvě primitivy.
Radeon HD 6970 (červeně) vs. Radeon HD 5870 (žlutě)
AMD ovšem nezměnilo kapacity cache, které jsou stejné jako u Cypressu, takže muselo v rámci zvětšeného množství dat svázaného se dvěma grafickými enginy vymyslet něco nového. Data se tedy přenáší do RAM grafického akcelerátoru, což je násobně pomalejší než v případě ukládání do cache, ale na druhou stranu mnohem lepší než pipeline kompletně zastavit, dokud si rasterizéry nevyčistí svůj backlog. K tomu jevu dochází pouze tehdy, pokud stávající cache nepojme objem dat, tedy né vždy. Je to spíše taková krabička poslední záchrany, než že by si AMD myslelo, že bude RAM využívat tímto způsobem zcela běžně.
AMD uvádí, že výkon grafického engine se pohybuje někde okolo 2.5 násobku výkonu Cypressu, což je více než pozitivní zpráva. Dle ilustračního grafu je jasné, že se čip stále nezbavil mírného poklesu výkonu při velmi nízkých teselačních faktorech, kde se propadá jeho výkon až na 1.5 násobek Cypressu. Nízké teselační faktory jsou doménou současných her, ale v budoucnu budou velmi pravděpodobně narůstat na levely podobné současným technologickým demům.
Pro herní využití má stěžejní význam také úprava ROP jednotek, které mají samozřejmě co dělat se zpracováním všech těch testovaných modelů, potažmo nové geometrie, která vznikne. Vznik mnoha dalších trojúhelníků má za následek, že v případě využití vyhlazování mohou být ROP jednotky brzdou. AMD potřebovalo zapracovat na výkonech s MSAA pod různými levely, takže toto byla jediná schůdná cesta.
Cayman disponuje sice stejným počtem ROP jednotek (32), ale v rámci evoluce patřičně vyztuženými pro další úkoly. Celočíselné operace (INT16) jsou nyní dvakrát rychlejší a operace FP32 rovnou 2-4 x rychlejší než v případě Cypressu. Operace zapisování pro grafiku mohou být slučovány, s čímž jde ruku v ruce větší rychlost a efektivita. Uvidíme, nakolik budeme moci sledovat nárůsty v případě využití MSAA a teselace, která doposud lámala kartám vaz (např. Metro 2033).