Rozbor architektury Radeonu RX 480, GCN4
Když se AMD pustila do příprav Radeonu RX 480 s jádrem Polaris 10, nastavila si několik priorit, které měl produkt a architektura splňovat.
- výkon přinejmenším takový, aby dostačoval minimálním požadavkům pro VR (~Radeon R9 290)
- ~2× lepší poměr výkon na watt
- tišší referenční chladič
- mainstreamová cena
Tím bylo v podstatě dané, že Radeon RX 480 na trhu de facto nahradí Radeony R9 290 / 290X / 390 / 390X, byť by asi s ohledem na start vývoje bylo korektnější hovořit konkrétněji o Radeonu R9 290X. Ten ve své době nabízel (a doposud nabízí) velmi zajímavý výkon, který dostačuje řadě her. Zvlášť v režimu „Uber“, kdy se limit TDP zvýšil z 250 na 294 wattů, dokázal dorovnat nebo překonat tehdejší konkurenci: Titan. Neslo to ale s sebou dva zásadní problémy: Prvním byla hlučnost referenčního chladiče, který k odvodu ~300 wattů tepla zvyšoval otáčky a ke 3000 RPM, což bylo pro mnoho zájemců neakceptovatelné. Druhým nedostatkem byla samotná spotřeba, i když ve srovnání s generací Kepler ještě nešlo o takový problém, jako po vydání úspornějšího Maxwellu. GPU Hawaii vyžadovalo náhradu, čímž byla daná výkonnostní relace nového GPU a snížení spotřeby na polovinu už vyplynulo jako řešeí nejpalčivějšího problému.
Virtuální Realita
Ať už budeme na podporu virtuální reality nahlížet jako na příčinu nebo logický důsledek výkonu této karty, vzala ji AMD přes cenovou relaci, do které karta míří, poměrně vážně a není podporována pouze stylem: „výkonem na to stačí, můžeme na krabici namalovat logo VR a k němu zelenou fajfku“. Do setu technologií, které AMD označuje souhrnným názvem Liquid VR, přibylo několik novinek.
Jednou z nich je pokročilejší podpora prostorového zvuku TrueAudio Next. Podporuje ray-tracing a konvoluci pro více zdrojů zvuku a funguje asynchronně, takže je zpracováváno v samostatné frontě. Vývojářům jsou k dispozici open-source knihovny s efekty.
Podpora pro asynchronní shadery byla rozšířena o pokročilejší formu řízení, kterou AMD nazývá Quick Response Queue. Díky ní je možné řídit prioritu a dočasně omezit dostupné hardwarové prostředky pro jednu z front, pokud je potřeba, aby jiná z front byla zpracována dříve, prioritně. Této technologie využívá tzv. Asynchronous Time Warp pro Oculus Rift. Výhoda spočívá v tom, že vhodnou úpravou priority lze předejít vypadávání snímků a tím docílit plynulejšího obrazu.
Kromě řízení priority nyní může vývojář rozdělit hardwarové prostředky čipu, aby část byla vždy plně dostupná pro konkrétní využití - ať už grafiku, výpočty nebo zvuk.
Samotného obrazového výstupu se týká podpora pro rendering v rozlišení přizpůsobenému lidskému oku (vyšší rozlišení ve středu obrazu než u okrajů) a podpora pro sledování pohybu oka a automatickou kompenzaci rozlišení pro příslušnou zónu.
Architektura Polaris / GCN 4: Geometrie a teselace
Jednotlivé generace architektury GCN zvyšovaly geometrický nebo teselační výkon a to jak zvyšováním počtu geometrických procesorů, tak optimalizacemi architektury. Přesto se AMD od doby teselačního šílenství potýkala se situací, kdy polygony dosahují srovnatelných nebo menších rozměrů než samotné pixely. Z hlediska uživatele je úroveň teselace, při které vznikají polygony menší než pixel, nežádoucí. Polygony menší než pixel se totiž na výsledném obrazu neprojeví, protože spadnou pod rozlišení rastru, ale práce s nimi konzumuje výkon a tedy snižuje FPS. Logickým řešením by bylo použití vhodně koncipované adaptivní teselace, kdy je úroveň teselace regulována tak, aby při daném rozlišení nevznikaly „neviditelné“ polygony.
Praxe byla spíše opačná. Protože Nvidia disponovala hardwarem lépe zvládajícím zpracování těchto mikropolygonů, propagovala extrémní teselaci ve hrách i syntetických testech - zkrátka proto, že z těchto situací odcházela jako vítěz. Protože se vysoké úrovně teselace objevují v rámci proprietárních efektů GameWorks, které Nvidia distribuuje mezi herními vývojáři, rozhodla se AMD v rámci nové architektury namísto dalšího navyšování geometrického výkonu a optimalizací hardwaru doplnit nový prvek, který nazývá Primitive Discard Accelerator. Tento obvod dokáže detekovat polygony, které nebudou rasterizovány, případně vzorkovány při anti-aliasingu a odstraňovat je ještě v počáteční fázi zpracování.
Díky tomu není plýtváno výkonem na zpracování polygonů, které v obraze nebudou vidět. Při extrémních úrovních teselace a zapnutém anti-aliasingu může být celkový výkon i více než 3× vyšší než bez použití této technologie. Geometrické procesory dále doplnila index cache, která snižuje datové přenosy a uvolňuje datové cesty.
Architektura Polaris / GCN 4: Compute Units
Čtvrtá generace GCN přináší nejvýznamnější změny ve výpočetních jednotkách CU (Compute Unit). Doplňuje Instruction Prefetch (předběžné načítání instrukcí), aby nedocházelo k častějšímu zastavování běhu pipeline kvůli čekání na instrukce. Zvětšena byla také kapacita instrukčního bufferu, vyladěno využívání výpočetní L2 cache.
Dalšího rozvoje se dočkala podpora pro výpočty se sníženou přesností. Zatímco některá grafická jádra s GCN 3 podporovala výpočty s přesností FP16, GCN 4 podporuje FP16 / Int8 nativně u všech čipů postavených na této architektuře a přidává i podporu pro Int16. Teoretický výkon v FP16 a Int16 se sice neliší od teoretického výkonu v FP32 - klesají ale energetické nároky čipu a nároky na paměť. Popsané změny na úrovni výpočetních bloků zvyšují efektivitu reálného výkonu na CU až o 15 %.
Aby Radeon RX 480 s 2304 stream-procesory dosáhl výkonu GPU Hawaii s 2816 stream-procesory, musí dorovnat 22% deficit v papírovém výpočetním výkonu. Zhruba polovinu z tohoto deficitu dorovnává právě vyšší efektivita výpočetních bloků, druhou polovinu pak kompenzuje vyšší taktovací frekvence.
Architektura Polaris / GCN 4: paměťový řadič, sběrnice a ROP
Radeon R9 290X byl vybavený kombinací 64 ROP a 512bit paměťové sběrnice. Ve své době šlo o grafickou kartu zaměřenou na uživatele prvních 4k displejů, takže vysoký fillrate byl jedním z klíčových prvků návrhu. Radeon RX 480 cílí na trochu jinou skupinu uživatelů, čemuž odpovídá i odlišné vyvážení čipu.
GPU Polaris 10 je vybavené 256bit sběrnicí. Pro kompenzaci užší šířky pásma byla implementována pokročilá metoda delta-komprese, která umožňuje zvýšit objemy datových přenosů až o 40 %. Krom úspory šířky pásma je koncipována tak, aby zároveň snižovala energetické nároky přenosů. Dalších 60 % přináší nasazení 8Gb/s pamětí GDDR5 (oproti 5Gb/s Radeonu R9 290X), což v kombinaci s delta-kompresí více než dorovnává efektivní šířku pásma GPU Hawaii.
Zdvojnásobena byla kapacita L2 cache, což v kombinaci s delta-kompresí snižuje počet i objemy přístupů ke grafické paměti a snižuje energetické nároky paměťových přesunů až o 40 %.
Tím se vracíme k ROP jednotkám. Přestože se to často v diskusích děje, není možné přímo srovnávat počty ROP jednotek u různých architektur. Základní důvody jsou dva. První spočívá v architektonické odlišnosti ROP jednotek. To se týká především srovnání mezi výrobci. ROP AMD a ROP Nvidie nedosahují stejného výkonu ve všech podporovaných obrazových formátech (RT). Zatímco při použití Int8 je teoretický výkon obou totožný, FP16 podporuje Nvidia v poloviční rychlosti, AMD v plné. Pokud dojde na míchání (blending), je výkon při FP10 a FP16 u Nvidie poloviční, u AMD plný. V FP32 je u Nvidie čtvrtinový, u AMD poloviční (opět oproti Int8).
Druhým důvodem je, že papírově totožně výkonné ROP se na odlišných architekturách chovají odlišně. Přestože ROP jednotky GPU Hawaii / Radeonu R9 290X zvládají při formátu FP16 pracovat v plném výkonu (stejně jako v Int8), v praxi nebylo takového výkonu možné dosáhnout, protože pro datové přesuny datová propustnost Radeonu R9 290X ani přes 512bit sběrnici nestačila. Radeon RX 480 oproti tomu umožňuje dosáhnout svého teoretického výkonu při formátu FP16 - jednak díky tomu, že disponuje vyšším datovou propustností na ROP a jednak díky tomu, že podporuje delta-kompresi, která snižuje objemy potřebných datových přesunů. Přestože Radeon RX 480 dosahuje jen 63 % teoretického fillrate Radeonu R9 290X, díky možnosti reálně dosahovat teoretických mezí, doplnění delta-komprese a dvojnásobné L2 cache fungují ROP efektivněji a tudíž bude fillrate reálně dosahovaný ve hrách výrazně vyšší, než oněch papírových třiašedesát procent Radeonu R9 290X.
Radeon RX 480 - specifikace
Parametry Radeonu RX 480 byly z větší části známé již před oficiálním vydání. Zastavíme se proto jen u parametrů, které vyžadují určitý komentář.
Radeon R9 270X | Radeon R9 380 | Radeon RX 480 | Radeon R9 290X | |
---|---|---|---|---|
GPU | Curacao 2,8 mld. tr. | Antigua 5,0 mld. tr. | Polaris 10 5,7 mld. tr. | Hawaii 6,2 mld. tr. |
Plocha jádra | 212 mm² | 359 mm² | 232 mm² | 438 mm² |
Výrobní proces | 28nm | 28nm | 14nm | 28nm |
Architektura | GCN | GCN 3 | GCN 4 | GCN 2 |
Frekvence | 1050 MHz | ≤970 MHz | 1120 MHz 1266 MHz | ≤1000 MHz |
SPs | 1280 | 1792 | 2304 | 2816 |
TMUs | 80 | 112 | 144 | 176 |
ROPs | 32 | 32 | 32 | 64 |
Výkon | 2,69 TFLOPS | ≤3,48 TFLOPS | 5,2 TFLOPS 5,8 TFLOPS | 5,6 TFLOPS |
Výkon DP (64bit FP) | 0,17 TFLOPS | ≤0,22 TLOPS | 0,36 TFLOPS | 0,70 TFLOPS |
Paměti | 2-4 GB 256bit GDDR5 | 2-4 GB 256bit GDDR5 | 4-8 GB 256bit GDDR5 | 4 GB 512bit GDDR5 |
Frekvence pamětí | 5,7 GHz | 5,7 GHz | 7,0-8,0 GHz | 5,0 GHz |
Dat. propustnost | 182 GB/s | 182 GB/s | 224-256 GB/s | 320 GB/s |
TDP / TBP | 180 W | 110 W | 150 W | 250 / 294 W |
Napájení | 6+6-pin | 6-pin | 6-pin | 6+8-pin |
Výstupy | 2× DVI HDMI, DP | 2× DVI | HDMI 2.0b 3× DP 1.4 | 2× DVI HDMI, DP |
TrueAudio | ||||
XDMA CF | ||||
FreeSync | ||||
Rozhraní | PCIe 3.0 ×16 | PCIe 3.0 ×16 | PCIe 3.0 ×16 | PCIe 3.0 ×16 |
API | DirectX 11.2 OpenGL 4.3 Mantle | DirectX 11.2 DirectX 12 | DirectX 11.2 DirectX 12 Vulkan | DirectX 11.2 DirectX 12 Mantle |
Vydání | 13. 11. 2013 | 18. 6. 2015 | 29. 6. 2016 | 24. 10. 2013 |
Cena | $199 | $199 2GB | $199 4GB $229 8GB 7GHz $239 8GB 8GHz | $549 |
Základní taktovací frekvence je nastavena na 1120 MHz, boost na 1266 MHz. Takt, na kterém karta běží, těsně souvisí s TDP. Limit je nastaven na 150 wattů, ale řízení taktů není koncipované jako u předešlé generace, tzn. aby karta permanentně běžela na nejvyšší možné frekvenci, dokud není dosaženo TDP limitu. AMD tentokrát nezvolila přístup „až nadoraz“, což znamená, že reálná spotřeba nebude ve všech aplikacích dosahovat plných 150 wattů a stejně tak, že reálný takt nebude stále držen na 1266MHz maximu.
Layout jádra Polaris 10 (render)
(upozornění: obrázek v plném rozlišení má přes 3 MB)
Důležitá informace se týče pamětí. Přestože AMD původně hovořila o 8GHz (8Gb/s) GDDR5, nakonec zvolnila a dala výrobcům na výběr, zda zvolí 7GHz nebo 8GHz paměti. Obojí odpovídá finálním specifikacím. Většina karet sice ponese rychlejší 8GHz čipy, ale při výběru karty bude třeba kontrolovat, zda koukáte na 7GHz (~224 GB/s) nebo 8GHz (~256 GB/s) model. Nakolik to ovlivní výkon a která varianta nabídne lepší poměr cena/výkon zatím není jasné, to bude vyžadovat rozsáhlejší srovnávací testy. Proč k této změně došlo, AMD nespecifikovala. Můžeme ale předpokládat, že objemy výroby 8GHz GDDR5 zatím nejsou dostačující pro použití na všech Radeonech RX 480 a AMD dala přednost určité roztříštěnosti specifikací před omezenou dostupností.
Zítra se podíváme na novinky v multimediální výbavě.