Navi 31: 5 nm i 6 nm GPU s novou architekturou RDNA 3
Včera 3. 11. přišlo ohlášené odhalení nové generace grafických karet Radeon firmy AMD s architekturou RDNA 3, tedy konkurence k již odhalené nové generaci grafik GeForce RTX 4000 od Nvidie. V tomto článku probereme jejich čipletovou konstrukci, změny v architektuře a nové funkce a výbavu, kterou 5nm GPU AMD přinášejí. RDNA 3 toho má proti předchozí generaci nového opravdu hodně.
Obě nové grafiky (jejich parametry probíráme v tomto článku), které včera AMD oznámilo, jsou založené na GPU Navi 31. Už o něm nemůžeme mluvit jako o „čipu“ (i když pro zjednodušení se toho asi lze dopouštět), AMD totiž nyní definitivně potvrdilo, že jde o čipletové řešení kombinující 5nm a 6nm čiplety. Celkem má toto řešení 58 miliard tranzistorů.
Hlavní část nazvaná GCD (Graphics Compute Die) je 5nm křemík vyráběný na procesu TSMC. Jeho plocha je relativně malá oproti 4nm GPU AD102 Nvidie s 608 mm², GCD Navi 31 zabírá jen 300 mm². Toto bude významné, výrobní náklady by totiž měly být výrazně nižší proti GPU od Nvidie, což umožňuje prodávat grafiky za nižší ceny.
Čiplet GCD obsahuje všechny výkonné výpočetní prostředky – zejména tedy bloky CU, ale také multimediální enginy pro práci s videem a také modul pro obrazový výstup. Bloků CU má Navi 31 celkem 96, což mu dává 6144 shaderů (proč zrovna tolik, o tom za chvíli).
Každý blok CU má čtveřici texturovacích jednotek (takže celkem 384), jeden ray accelerator (celkem 96) a dvě AI jednotky (celkem 192). 96 bloků CU je rozděleno do šesti shader enginů, přičemž celé GPU má 192 jednotek ROP, takže se zdá, že ty jsou spojené s shader enginy (32 ROP na jeden SE).
Okolo GCD je osazeno šest čipletů MCD (Memory Cache Die), které jsou vyráběné levnějším 6nm procesem. Tyto čiplety jsou výrazně menší (37 mm²) a obsahují součásti paměťového subsystému – zejména řadič paměti GDDR6 o celkové šířce 64 bitů na jeden čiplet a 16MB blok Infinity Cache. Protože je u Navi 31 čipletů MCD šest, dává to dohromady 384bitovou paměťovou sběrnici a 96 MB Infinity Cache druhé generace.
MCD budou podporovat rychlejší paměti než čipy generace RDNA 2 – v této první generaci byla dosažena efektivní propustnost 20 Gb/s na jeden bit sběrnice, či jak se zjednodušeně říká, efektivní frekvence 20,0 GHz.
Infinity Cache druhé generace
Tato Infinity Cache má nižší kapacitu než u předchozího GPU Navi 21 (to mělo 128 MB), ale její využití by údajně mělo být zlepšeno – i s nižší kapacitou by měla být schopná účinněji držet data, ke kterým GPU opakovaně přistupuje (podle AMD), takže by měla lépe eliminovat provoz do hlavní paměti a snižovat tím i spotřebu energie.
Aby fungovala přes její vyčlenění mimo hlavní čip (jde o ekvivalent L3 cache u CPU, u nichž ji AMD zatím vždy drželo na stejném kusu křemíku), jsou čiplety MCD připojené přes velmi výkonné rozhraní. Komunikace mezi GCD a MCD má propustnost až 5,3 TB/s (to je asi součet pro všech šest rozhraní). Infinity Cache druhé generace v Navi 21 by prý měla dodávat 2,7× lepší propustnost než Infinity Cache první generace v Navi 21.
Propojení čipletu GCD a čipletů MCD je údajně realizováno pomocí technologie Elevated Fanout Bridge, tedy křemíkovými můstky v substrátu (podobná technologie jako Intel EMIB).
Nová architektura CU, 2× tolik shaderů
Výpočetní jednotky CU architektury RDNA 3 jsou výrazně přepracované. Od prvních GPU architektury GCN téměř před 11 lety měl blok GPU vždy 64 shaderů („ALU“), byť se lišila implementace – u GCN to byly čtyři 16-wide SIMD jednotky, u RDNA a RDNA 2 dvě 32-wide SIMD.
RDNA 3 přináší u SIMD jednotek, které poskytují ony „shadery“, stream procesory či také „shader ALU“ či „FP32 jednotky“, o kterých se obvykle mluví, poprvé schopnost zpracovávat dvě instrukce za jeden cyklus. Stále by tedy měly být použité dvě 32-wide SIMD jednotky, ale se schopností „dual issue“ mají teoretický výpočetní výkon 128 shaderů místo dosavadních 64. Tyto dvě současně zpracované instrukce mohou být různého typu – celočíselné i FP32, mělo by tedy jít o pružné řešení. Nicméně toto zdvojení „ALU“ či shaderů je provedeno v rámci struktury jedné CU vycházející z předchozích generací, takže 64 dual-issue shaderů sdílí některé řídicí a výpočetní struktury, které u RDNA 2 obsluhovaly jen 64 shaderů.
Je to asi řešení blízké tomu, jak GPU architektura Ampere od Nvidie zdvojila počet FP32 jednotek. To bylo napůl začato už v Turingu, kde ale druhá instrukce mohla být jen méně častá celočíselná, ne floating-point. Udávaný počet shaderů se ale odvozuje od výpočtů FP32, proto se dvojnásobný počet shaderů „počítá“ až u Ampere. U Ampere také nevedlo 2× navýšení počtu FP32 jednotek k navýšení výsledného výkonu o 100 % (nebo aspoň ne obvykle) a podobné by to mělo asi být zde. 64 dual-issue shaderů RDNA 3 tedy v praxi bude mít o dost menší váhu relativně k výslednému výkonu, než by mělo 128 shaderů u RDNA 2.
Každopádně toto řešení má být optimalizované na zabranou plochu (viz onu malou plochu Compute čipletu), což je asi stejný důvod, který k podobné architektuře vedl nejen Nvidii, ale už také ARM (v GPU architektuře Valhall 4. generace).
12 288, nebo 6144 stream procesorů?
Poznámka: zda se teď bude počítat na jednu jednotku CU také 128 shaderů, není úplně jisté. Zdá se, že hardwarové weby to tak dělají, ale přímo v prezentaci se AMD nepřiklonilo ani k jedné formě a uvádí prostě jen počty CU (což také funguje, pokud si na to zvyknete, je to srovnatelné s Xe Core u Intelu nebo pojem GPU jádra používaný Applem). Na webu ve specifikacích nicméně AMD uvádí pro Radeon RX 7900 XTX údaj o 6144 shaderech, takže dual-issue nezohledňuje. Uvidíme, co se nakonec prosadí.
Když Nvidia u Ampere zdvojila FP32 jednotky, také prý dlouho neměla rozhodnuté, zda se to promítne do uváděného počtu shaderů (nebo jak říká Nvidia CUDA jader, což ale není přesné, protože pojmu jádro odpovídá jeden blok SM, tak jako CU u AMD). Někteří výrobci karet měli již prý natisknuté materiály s polovičními údaji, takže se Nvidia možná rozhodla počítat jeden SM za 128 shaderů možná dost na poslední chvíli.
Aktualizace: oficiální přepočet je nakonec „konzervativní“: jen 64 shaderů na jádro
Ukazuje se, že AMD nepoužije počítání shaderů, kde by každá CU měla 128 jednotek. Nakonec ve specifikacích bude každá CU brána jen jako 64 shaderů či jednotek FP32, ačkoliv každá jednotka nyní umí zpracovávat dvakrát víc operací než v architekturách RDNA a RDNA 2. To znamená, že nakonec budou počty jednotek nižší (poloviční) proti tomu, o čemž se psalo ze začátku a co se objevovalo v únicích. Jde ale jen o rozdíl ve značení, tato volba nijak nemění počet jednotek CU nebo teoretické „TFLOPS“, které tato GPU budou dosahovat. Mimo tuto diskrepanci ve značení se uniklé specifikace čipu Navi 31 ukázaly býti reálné, počet CU sedí. Je to 96 CU a 6144 shaderů, zatímco dřív jsme to počítali jako 12 288.
Efekt tohoto značení je, že zatímco zdvojení FP32 u Nvidie zdánlivě zhoršilo výkon na jednu jednotku FP32, protože dvojnásobek shaderů obvykle není plně vytížený, u AMD to bude zdánlivě naopak. Tím, že se zdvojení FP32 oficiálně nepočítá do udávaného počtu shaderů (či v řeči AMD stream processorů), výkon na jeden shader (jednotku FP32) jakoby stoupne. Je to samozřejmě jen věc nahlížení, ve skutečnosti se „IPC“ GPU musí vztahovat spíše k jednotlivému „jádru“ ve smyslu bloku SM u Nvidie a bloku CU u AMD. A na úrovni jednoho bloku se „IPC“ u obou architektur zdvojením FP32 jednotek zlepšilo.
AI jednotky
Potenciálně hodně důležitá změna je, že RDNA 3 by měla mít lepší výkon v akceleraci AI. Není úplně jasné, zda má separátní vykonávací jednotky v rámci CU, nebo zda jde spíš o jen o separátní režim stejných ALU, které počítají FP32 shadery (tedy něco jako když v procesorech stejný pipeline procesoru umí počítat instrukce SSEx i AVX/AVX2 a VNNI/256). Dvě AI jednotky na jednu CU by tedy odpovídaly dvěma SIMD pipeline v CU a sdílely s nimi větší nebo menší část prostředků.
Každopádně jsou pro tyto AI akcelerátory sdílené stejné schedulery, registry a další zdroje, jako používají běžné shaderové ALU (toto by ale myslím mělo být podobné také v architektuře Nvidie a Intelu). Tato AI akcelerace nebude proto mít nějaký řádově vyšší výkon, ale asi také její přidání nemá moc velkou cenu v ploše a spotřebě čipu.
Podle AMD se použitím těchto jednotek dá dosáhnout 2,7× vyššího výkonu. Ale to je srovnání Navi 31 a Navi 21 a tento nárůst výkonu je dán i větším počtem CU (96 místo 80) a vyšší frekvencí. Z hlediska „IPC“ je nárůst jen 2×, RDNA 3 umí v jedné CU zpracovat dvakrát více operací s hodnotami BFloat16, což ale odpovídá i 2× počtu FP32 operací za cyklus na jednu CU díky dual-issue. Z tohoto se zdá, že pro akceleraci AI nejsou vyhrazené nějaké úplně speciální maticové jednotky jako u architektur CDNA a CDNA 2. Otázka je, zda o AI jednotkách vůbec mluvit, byť na diagramu CU jsou.
Energetická efektivita stoupla o 54 %, hustota tranzistorů o 165 %
Významnou změnou v CU architektur RDNA 3 je zvětšení souboru pracovních registrů, s nimiž jednotka CU pracuje, o 50 %. Zdá se, že s těmito registry pracují shadery, ray acceleratory sloužící pro výpočet raytracingu i akcelerace AI. Toto sdílení prostředků má být podle AMD jednou z hlavních koncepčních vlastností architektury RDNA 3, snažící se o maximálně efektivní využití dané plochy křemíku.
Architektura RDNA 3 je podle všeho navržena s ohledem na dosažení velmi vysoké hustoty tranzistorů, na jeden milimetr čtvereční má mít o 165 % více tranzistorů než RDNA 2 na 7nm procesu. To je mnohem větší nárůst, než by umožňoval přechod ze 7nm na 5nm proces sám o sobě. V architektuře RDNA 2 měla dvojice jednotek CU 215 milionů tranzistorů v ploše 4,33 mm², u RDNA 3 má dvojice CU 331 milionů tranzistorů na ploše jen 2,50 mm².
AMD uvádí, že cílem bylo u RDNA 3 zlepšit energetickou efektivitu (výkon na 1 watt) o 50 % proti RDNA 2, což bylo veřejně oznámené dlouho dopředu. Nakonec je to víc, podle měření AMD má zlepšení vycházet až o 54 %.
Výkonnější ray acceleratory pro ray tracing
Již byly zmíněny ray acceleratory, tedy jednotky zodpovědné za hardwarovou akceleraci raytracingových efektů, které byly poprvé v grafikách architektury RDNA 2 coby obdoba RT jader u Nvidie. V architektuře RDNA 3 mají také vylepšenou architekturu, jejich výkon má být o 50 % vyšší na jednu jednotku CU a mají zvládat o 50 % více paprsků najednou.
Ray acceleratory mají různá zlepšení ve třídění a analyzování „boxů“ používaných během výpočtu raytracingu metodou BVH (Bounding Volume Hierarchy), která se u dnešních raytracingových her používá. Ale i obecné shadery, které v těchto výpočtech provádějí část práce, kterou nezastanou specializované RT jednotky, mají podle AMD některé nové instrukce pro zlepšení raytracingového výkonu.
Vyšší frekvence pro frontend, nižší pro shadery
Dost zajímavá změna je, že shadery budou v GPU na bázi RDNA 3 běžet na odlišné frekvenci proti frontendu. AMD uvádí, že podle jeho analýz je častěji limitujícím faktorem frontend GPU, který distribuuje instrukce výpočetním jednotkám. RDNA 3 má proto mezi nimi separaci, frontend běží asynchronně na vyšší frekvenci – nebo se možná lépe dá říct, že shadery běží na snížené frekvenci, čímž se zlepšuje energetická efektivita (a z daného přídělu TDP se tak dá vytřískat více výkonu).
Pro Navi 31 AMD uvádí, že frontend běží na 2,5 GHz (o 15 % rychleji), zatímco shadery na 2,3 GHz, což u nich znamená úsporu asi 25 % energie. Zdá se, že tyto konkrétní hodnoty by mohly platit pro Radeon RX 7900 XTX. Mimochodem, oněch 2,3 GHz u shaderů je podle AMD stále o 15 % víc, než s čím šla na trh 7nm GPU architektury RDNA 2.
Jinde v prezentaci AMD uvádí, že RDNA 3 dosahuje o 18 % vyšších taktů než RDNA 2, ale s tím, zda se takty zlepšily a o kolik, asi bude lepší počkat na data o reálných frekvencích ve hrách, které ukáží nezávislé testy.
Nový Display Engine, nový Media Engine
Vedle nové výpočetní a grafické architektury RDNA 3 mají tato GPU také nové bloky pro obrazový výstup a multimédia. Obrazový výstup obstarává komponenta nazvaná honosně AMD Radiance Display Engine. Její hlavní novinkou – a novinkou, na kterou nová generace GPU od Nvidie nemá odpověď (tedy mimo tvrzení Nvidie, že to nikdo nepotřebuje) – je podpora výstupu DisplayPort 2.1. Díky tomu AMD slibuje výrazně lepší podporu nových displejů s vysokým rozlišením a obnovovací frekvencí.
8K s až 165 Hz, 4K při 480 snímcích za sekundu s DP 2.1
Navi 31 a na něm založené Radeony díky tomuto výstupnímu bloku a DisplayPortu 2.1 podporují rozlišení 4K (3840 × 2160 bodů) s frekvencí až 480 Hz a obraz s rozlišením 8K (7680 × 4320 bodů) zvládnou až při 165 Hz (a toto dokáží s HDR barvami s 12 bity na kanál). V rozlišení 2560 × 1440 bodů prý má být možných až 900 snímků za sekundu, ale tam už je využitelnost dost otázka. Uvidíme, zda se nějaké takové monitory vůbec někdy objeví.
Maximální podporovaná propustnost při komunikaci přes DisplayPort 2.1 je podle AMD 54 Gb/s (přesněji by to ale mělo být 52,2 Gb/s pro obrazová data, 54 Gb/s je před odečtením režie), což by mělo znamenat, že je podporovaný subset UHBR 13.5 se čtyřmi 13,5 Gb/s linkami. Existuje ještě UHBR 20 s 20Gb/s linkami, s nímž se dosahuje propustnosti 77,37 Gb/s, ten bude ale asi implementován až v příštích generacích. AMD by s UHBR 13.5 mělo být o kousek napřed proti grafikám Intel Arc. Ty podporují DP 2.0 (ale měly by i DP 2.1) jen s UHBR 10, což znamená 10 Gb/s linky a o něco nižší maximální propustností 38,69 Gb/s.
I to ale pořád dává lepší možnosti, než mají GeForce RTX 4000, protože u těch se Nvidia spokojila jen s DisplayPortem 1.4a. Ten má propustnost 25,92 Gb/s a bez komprese nestačí ani na 4K při 120 Hz. Tyto karty Nvidie mají jako absolutní limit rozlišení 8K při 60 snímcích za sekundu. To není zdaleka ideální, pokud chcete s grafikou této generace vydržet několik let – už brzo budou na trhu monitory, které nebude schopná provozovat na jejich maximální frekvenci, ale Radeony RX 7900 XT a RX 7900 XTX ano.
Jak AMD podotklo, s upscalingem FSR/FSR 2.0 se i v rozlišení 8K už s novými grafikami můžete přes limit 60 Hz (FPS) dostat. Radeon RX 7900 XTX v ukázaném demu dokázal vyrobit 96 snímků za sekundu ve hře Assassin’s Creed Valhalla Dawn of Ragnarok a 73 snímků za sekundu Uncharted: Legacy of Thieves Collection.
Vedle DisplayPortu 2.1 je také samozřejmě podporováno HDMI 2.1 a rovněž obrazové výstupy USB-C (které by ale měly používat signál DisplayPort). Na referenčních kartách od AMD je podle renderů dvojice DisplayPortů 2.1, jedno HDMI 2.1 a jedno USB-C.
Enkódování i dekódování AV1 v 8K s 60 snímky za sekundu
Navi 31 má také nový multimediální engine s hardwarovými enkodéry a dekodéry videa. Respektive, enginy jsou v GPU dva, takže jsou podporované dva nezávislé enkódované nebo dekódované streamy. Podporované jsou formáty H.264, HEVC a AV1, u nějž je nově podporováno nejen dekódování (které uměly již grafiky RDNA 2), ale také hardwarové enkódování (komprese) do tohoto formátu, což je novinka rovněž přinášená grafikami GeForce RTX 4000 a Intel Arc generace Alchemist.
AV1 je možné enkódovat i dekódovat až při rozlišení 8K při 60 snímcích za sekundu a multimediální blok také podporuje použití různých postprocessingových filtrů na bázi AI. Multimediální engine mimochodem má běžet na frekvenci o 80 % vyšší než u čipů architektury RDNA 2.
SmartAccess Video
AMD v prezentaci také mluvilo o nové funkci SmartAccess Video, která patrně nesouvisí s PCIe Resizable BAR používaným ve hrách. Mělo by zřejmě jít o využití procesoru při enkódování a dekódování video ke zlepšení výkonu hardwarového enkódování a/nebo dekódovaní. Může to údajně zlepšit výkon až o 30 %, zejména asi v situacích, kdy se zpracovává více streamů najednou, takže dva multimediální enginy jsou již saturovány (AMD mluví o paralelním „multi-stream transkódování“).
Tato funkce má zřejmě ale být exkluzivní pro počítače, kde je jak Radeon generace RX 7000, tak procesor Ryzen 7000. Měla by být dostupná v různém softwaru typu OBS, Premiere Pro, ale také FFmpeg a dalších.
Některé neznámé zůstaly
Toto pravděpodobné nebudou jediné změny a novinky, které architektura RDNA 3 přináší, pod kapotou bude změněných detailů jako obvykle víc. Další věci se asi teprve dozvíme. V prezentaci například nikde nepadlo, zda budou GPU Navi 31 a s nimi Radeon RX 7900 XTX a Radeon RX 7900 XT podporovat připojení do systému přes PCI Express 5.0, nebo zda zůstanou u PCIe 4.0 jako Nvidia Ada.
Zatím to spíš vypadá, že se PCIe 5.0 nekoná, alespoň podle ComputerBase je tedy stále podporovaný jen PCI Express 4.0 ×16 (vedle frekvencí by to byl další drb, který se nevyplnil, ačkoliv třeba s počty jednotek a Infinity Cache i velikostí čipu měli leakeři pravdu). Ještě tedy možná přijdou nějaká překvapení.
Zdroje: AMD, AnandTech, ComputerBase
Jan Olšan, redaktor Cnews.cz
⠀