Architektura RDNA 4: Detaily novinek a zlepšení v nových GPU Radeon
Informace, které prosakovaly neoficiálně ven, původně od RDNA 4 moc neslibovaly, mluvily o tom, že architektura jenom opravuje nespecifikované chyby v RDNA 3 – s výjimkou nových jednotek pro ray tracing. Ale to byl omyl, protože RDNA 4 velký upgrade je a „sahá“ na většinu subsystémů GPU, zdaleka ne jen na ray tacingové jednotky. Přináší také posílenou akceleraci umělé inteligence i přepracované výpočetní jednotky (shadery).
Nakonec jde podle všeho o regulérní novou generaci architektury, podobně jako jí je Blackwell u Nvidie, jen u AMD nepřišla podpora nové generace pamětí. Nic na tom nemění to, že tato generace je poznamenaná tím, že před časem byly z důvodu, který není veřejně známý, zrušeny výkonnější varianty, které měly být čipletové.
Původní plán podle průsaků (toto není oficiálně potvrzené) počítal s tím, že monolitický bude jen menší čip Navi 44, zatímco karty jako Radeon RX 9070 a 9070 XT měly již také obsahovat čipletové GPU (které by tak bylo čímsi jako následníkem Navi 32). Zdá se, že po zrušení čipletových modelů AMD navrhlo jako náhradu monolitické GPU s parametry představujícími zdvojení čipu Navi 44 (možná pro urychlení příprav), což je právě Navi 48, které jde teď na trh.
Navi 48
Čip Navi 48 je tedy monolitický kus křemíku vyráběný na 4nm procesu TSMC, nicméně není řečeno, která přesně varianta této rodiny je zvolená. Jde o mírně lepší procese proti 5nm technologii použité u GPU generace RDNA 3 (s výjimkou 6nm Navi 33), nicméně přínosy jsou omezené, nelze to srovnávat s potenciálem, který by otevřel 3nm proces.
Podle AMD je čip s plochou 356,5 mm² menší než GB203 používaný Nvidií v RTX 5080 (plně aktivní verze) a RTX 5070 Ti (částečně ořezaná verze umožňující uplatnění čipů s výrobním defektem), ten má plochu o 6 % větší (378 mm² s 45,6 miliardami tranzistorů). Trochu překvapivě má ale Navi 48 více tranzistorů (a tedy vyšší hustotu): 53,9 miliardy tranzistorů. Což je dáno odlišnými přístupy k návrhu architektury (nižší hustota může být například lokálně použitá ke zlepšení frekvencí). U různých firem ale teoreticky počty tranzistorů nemusí znamenat to samé.
CU a shadery
Architektura RDNA 4 přináší výrazně vyšší výkon na jednu výpočetní jednotku (podle AMD až o 40 %), což je z velké části dáno tím, že dosahuje výrazně vyšších taktů. Současně ale za tím stojí i zlepšení architektury. Ta začínají přepracovanou výpočetní jednotkou (Compute Unit). V architektuře RDNA 4 není žádná změna v tom, že CU obsahuje 64 shaderů (dva SIMD32 enginy) a zůstává i dual-issue schopnost z architektury RDNA 3, která umožňuje část operací vykonat s propustností dvě instrukce za cyklus místo jedné.
Out of Order Memory
AMD ale předělalo paměťový subsystém v rámci CU, tedy ekvivalent load/store jednotek v CPU jádrech, který nově dokáže zpracovávat požadavky různých shaderů na data z paměti mimo pořadí. Toto může mít značný dopad na výkon, pokud operace probíhající na shaderech postrádají data. V předchozích architekturách RDNA 3 vedl cache miss (situace, kdy se pro data musí do hlavní paměti) k tomu, že se zablokovalo vykonání následujících instrukcí až do chvíle, kdy data dorazila.
RDNA 4 má pro požadavky na data z paměti out-of-order fronty a je schopná na části CU (jedna ze SIMD32 jednotek) zpracovávat další instrukce, zatímco druhá část čeká na data. Toto by mělo zvýšit reálný výkon, který jedna CU může dosahovat. Zlepšení by asi mohla být skoro všude, i když v řadě shaderů, které jsou už optimalizované tak, aby netrpěly na čekání na VRAM, nemusí být vidět moc. Latence pamětí ale podle AMD ovlivňuje například raytracingové vykreslování, takže jeho vykonávání by tímto mělo být zrychleno.
Dynamic Registers
Trošku podobné zlepšení, které nemění teoretický maximální výpočetní výkon, ale umožní grafice realizovat z něj v praxi víc, se nachází v alokování registrů. Předchozí generace architektury používaly pro různé shaderové programy (čili jakékoli výpočetní operace na GPU) fixní alokování registrů, které bylo založeno na maximálním počtu registrů, které shader během svého běhu potřebuje. To ale může způsobit, že část registrů je po určitý čas nevyužitá. GPU nemůže například začít zpracovávat další shader, protože mu nemůže alokovat jeho požadovaný počet registrů.
RDNA 4 umí registry alokovat dynamicky, takže za určitých okolností může GPU být schopné zpracovat víc shaderů paralelně a zvýšit tak výkon vyšším využitím jednotek. V tomto případě je shaderu alokován nižší základní počet registrů a v průběhu svého vykonávání si může naalokovat (a pak případně zase uvolnit) další.
Podle AMD může dynamická alokace značně zlepšit efektivitu výpočetní jednotky. Netýká se to jenom shaderů v konvenčním smyslu. Jeden z případů, kdy shadery nepotřebují stejný počet registrů celou dobu, je podle AMD ray tracing, kdy velká část běhu programu během analýzy BVH nepotřebuje registrů moc, ale jejich spotřeba se zvyšuje na konci při zpracování samotného výsledku raytracingového kreslení. S fixní alokací registrů shader celou dobu blokuje vysoký počet registrů, zatímco na RDNA 4 při použití dynamické alokace by nemusel, takže GPU může současně udělat další práci.
Nevýhoda je, že GPU toto nemůže provést samo u shaderů, které nemají explicitně dynamickou alokaci začleněnou, protože za vyžádání nových registrů a jejich uvolnění je zodpovědný samotný shaderový program. Zda budou ovladače schopné u shaderů přidávat dynamickou alokaci při jejich kompilování (jež ovladače GPU vždy u hry provádějí), těžko říct.
V architektuře RDNA 4 by také měla být vylepšená pomocná skalární jednotka v rámci CU, která umožňuje nově práci s FP32 daty. A vylepšení má i scheduling operací na výpočetní jednotky. Podporuje nové bariéry, měl by mít rychlejší načítání dat do registrů a zápis zpět do paměti a také vylepšený prefetching. Ten je velmi důležitou komponentou u CPU i GPU, protože umožňuje načíst data z paměti předem, aby je běžící program měl k dispozici v momentě, kdy si vyžádá, místo aby se vykonávání zastavovalo čekáním na ně.
2× výkonnější, pokročilejší ray tracing
Největší událostí architektury RDNA 4 je zlepšená akcelerace ray tracingu pomocí Ray Acceleratorů, což by mělo už částečně vidět u PlayStation 5 Pro, jejíž APU (procesor s integrovaným GPU) už byl částečně na vývojové verzi RDNA 4 založený.
První změna je, že výkon Ray Acceleratorů (speciálních jednotek pro ray tracing, analogicky jako má Nvidia „RT jádra“) při analyzování průsečíků byl zdvojnásoben – což je uděláno tak, že byl zdvojen engine používaný pro tyto operace. RDNA 4 zvládá 8 průsečíků analyzovaného paprsku s pomocnou strukturou bounding boxů (BVH), která obaluje objekty ve scéně a používá se jako pomůcka pro lokalizaci trojúhelníku samotného objektu, s kterým paprsek koliduje. Poté už se analyzuje průsečík paprsku s trojúhelníkem, RDNA 4 umí analyzovat 2 takové průsečíky za cyklus. U RDNA 2 a 3 byl výkon 4 boxy a 1 trojúhelník za cyklus.
Zajímavé je zde srovnání s konkurenčními architekturami. GPU Ada Lovelace analyzovalo (zřejmě) 4 boxy a 4 trojúhelníky za takt, Blackwell asi 8 boxů a 8 trojúhelníků (v poslední době ale firma uvádí údaj jen pro druhý typ operace, takže za to nemůžeme ručit), vypadá to tedy, že Nvidia volí výrazně odlišnou rovnováhu. Mimochodem, už předchozí GPU architektura Xe HPG „Alchemist“ od Intelu uměla 12 boxů a dva trojúhelníky. Architektura Xe2 od Intelu použitá v grafikách Arc B580 a B570 „Battlemage“ umí dokonce 18 boxů a 2 trojúhelníky za cyklus (je zajímavé, že u nich Intel neviděl potřebu přidat). Intel tedy má rovnováhu těchto jednotek spíše podobnou AMD, respektive jde ještě dál.
Ray Acceleratory mají i další zlepšení. Nově speciální hardware pro provádění operací Instance Transform a pro správu stacku ray tracingových operací. Kromě toho také výkon ray tracingu benefituje z vylepšení výkonu shaderů (které zatím u všech GPU architektur dělají nějaký díl práce na raytracingové grafice). Jak už jsme zmiňovali, AMD uvádí pozitivní vliv schopnosti obsluhovat požadavky na data z paměti mimo pořadí a schopnosti dynamického přidělování registrů. Výsledkem je, že Ray Acceleratory mohou častěji běžet naplno díky omezení prostojů.
Oriented Bounding Boxes
Kromě toho RDNA 4 má zlepšení při práci s onou pomocnou BVH strukturou. Ta může být stavěná s ohledem na schopnost zpracovat osm průsečíků za takt (BVH8), což má být efektivnější. Zejména ale RDNA 4 umožňuje boxy okolo objektu natáčet. Tato funkce (Oriented Bounding Boxes) může snížit počet boxů, které určitý objekt ve scéně vygeneruje, pokud je pravidelný, ale je šikmo orientovaný. Místo boxů s kolmými hranami RDNA 4 umožňuje použít také šikmo orientované boxy, u nichž jsou uložené údaje o jejich rotaci (při hledání průsečíků je pak transformována orientace paprsku, aby odpovídala). Tím se sníží počet použitých boxů, což umožňuje poté dokončit analýzu BVH s nižší spotřebou výkonu.
Otočené boxy také objekt obklopují přesněji, což redukuje falešné pozitivní výsledky, kdy sice paprsek koliduje s boxem, ale už ne s trojúhelníkem, kolem kterého je box opsaný. Užitečnost této funkce se logicky bude měnit podle toho, jak jsou objekty na scéně orientované, u šikmých objektů je dopad velký, u zbytku scény bude menší nebo třeba i žádný. Celkově podle AMD může tato funkce zlepšit výkon při analýze paprsků v ray tracingu až o 10 %.
V prezentaci má AMD graf, který ilustruje, jak zhruba jednotlivá zlepšení akcelerace ray tracingu přispívající k celkovému výkonu RDNA 4. Kumulativně všechna zlepšení vedou ke zhruba dvojnásobnému výkonu v analýze ray tracingu proti architektuře RDNA 3 (čistě zdvojení výkonu při hledání průsečíků je tedy jen část receptu, není u něj lineární škálování).
Menší spotřeba paměti při ray tracingu
Nvidia u architektury Blackwell inzerovala jako jednu z novinek kompresi BVH, tedy oné struktury bounding volume boxů, které hra generuje okolo objektů scény coby pomůcku pro analýzu. Tato data potřebují místo v paměti a Blackwell přidává schopnost jejich komprese (Nvidia uváděla, že v ray tracingových hrách to může snížit zabranou paměť až o pár set MB).
Podle prezentace odhalující architekturu používá RDNA 4 kompresi BVH také (pod označením primitive node compression), takže i u těchto grafik by mělo být ušetřeno trochu paměti – ale jen při zapnutém ray tracingu, stejně jako u Blackwellu. AMD neuvádí nějaké orientační číslo v megabajtech, jen přibližný údaj, podle kterého by BVH v paměti mohla zabírat jen asi 60 % proti stavu u RDNA 3. Je to ale kombinované číslo pro kompresi BVH a efekt využití BVH8 hierarchie, ne tedy jen o izolovaný efekt komprese.
Akcelerace AI
U architektur RDNA se typicky uvádí, že neobsahují vyhrazené akcelerátory umělé inteligence ve smyslu tensor jader u Nvidie. Není ale úplně pravda, že by tato GPU neměla svůj systém hardwarové akcelerace AI. AMD si zvolilo cestu, kdy je akcelerace maticových operací zabudována do stejných výpočetních jednotek jako shadery (obecné programovatelné jednotky, „stream procesory“), ale s vyšším výkonem, než kdyby byly jen použité shadery.
U RDNA 4 firma uvádí, že tato GPU mají druhou generaci této akcelerace. Výrazně se zvýšil její výkon na jednu výpočetní jednotku, takže označování této zabudované podpory jako „AI Acceleratorů“ (které má GPU dva na jednu CU) asi není neopodstatněné.
Akcelerace v RDNA 4 má dvojnásobný výkon na jednu jednotku CU proti RDNA 3 v operacích s 16bitovými datovými typy (FP16, Bfloat16), ale rovnou čtyřnásobný výkon v 8bitových datových typech a v 4bitových datových typech. Z osmibitových GPU nově podporují výpočty s přesností FP8 a Bfloat8. Typ FP4, pro který zavedla podporu architektura Blackwell od Nvidie, RDNA 4 nepodporuje.
Kromě tohoto hrubého nárůstu výpočetního výkonu také RDNA 4 přidává podporu technologie 4:2 Structured Sparsity (jde o něco, co Nvidia přidala svým tensor jádrům v architektuře Ampere a používá ji dodnes). Tato funkce eliminuje část výpočtů a výsledkem je dvojnásobný efektivní výkon AI operací. Se započítáním Structured Sparsity má tedy RDNA 4 proti předchůdci čtyřnásobný výkon v FP16 a Bfloaf16 a osminásobný výkon v INT8, FP8 a INT4.
Pro orientaci – pro model Radeon RX 9070 XT je teoretický AI výkon 779 TOPS v osmibitové přesnosti a 1557 TOPS v čtyřbitové, pro Radeon RX 9070 je to 578 TOPS a 1156 TOPS. Konkurenční Nvidia GeForce RTX 5070 Ti má uváděno 703 TOPS v INT8/FP8 a 1406 TOPS v operacích FP4 (jde také o hodnoty včetně 2× výkonu pomocí sparsity, odvozené od oficiálně uvedeném boostu – takže reálně asi bude výkon o něco vyšší, jelikož boostovou frekvenci Nvidia uvádí podhodnocenou).
Paměti stále GDDR6
Jedno místo, kde AMD nepřineslo novinku, jsou paměti. GPU Navi 48 stále používá GDDR6 s 256bitovou šířkou sběrnice. Karty používají frekvenci 20,0 GHz efektivně, což už bylo použito na na Radeonu RX 7900 XTX před dvěma lety. Objevují se fanouškovské spekulace, že čip by mohl mít v záloze schovanou podporu pro GDDR7, které by pak byla použitá u nějakého refreshe. Zatím pro to ale nejsou vůbec žádné doklady, takže prozatím bude lepší to považovat za výmysl. AMD duální řadič pamětí v GPU historicky moc nepoužívalo.
Daná fyzická propustnost by ale měla být využitá lépe, protože u architektury RDNA 4 uvádí AMD zdokonalení v kompresi dat (které by se mělo týkat framebufferu a „pixelů“, textury jsou komprimované ztrátově už v samotné hře). Fyzická propustnost je sice tedy stále jen 640 GB/s, skoro jako u Radeonu RX 7800 XT (624 GB/s), ale Radeon RX 9070 (XT) by z ní měl těžit o něco více.
Stejný efekt by mohla mít i Infinity Cache, která je už v třetí generaci. Její kapacita zůstala na 64 MB (jako u Radeonu RX 7800 XT s plnotučným Navi 32), nicméně měla by mít architektonická zlepšení, které mohou posílit její efekt.
Nové enkodéry a dekodéry, zdvojený multimediální engine
Navi 48 a architektura RDNA 4 přinášejí také úplně nový engine pro multimédia (přesněji dva enginy, Navi 48 má tento blok zdvojený), který má mít vylepšené jak dekodéry, tak i enkodéry a má být optimalizovaný na streamování s nízkou latencí. Dekódování AV1 a VP9 má být o 50 % výkonnější, což má zlepšit energetickou efektivitu přehrávání při běhu na baterii.
Enkódování do AV1 má mít až dvojnásobný výkon (asi počítáno na maximální FPS), zatímco enkódování do formátu H.264 (AVC) má mít až o 25 % zlepšenou kvalitu obrazu. Je to měřeno metrikou VMAF). Jde o srovnání pro velmi nízkou bitrate (1080p s bitrate 500 Kb/s) a enkódování s nízkou latencí, které je obtížnější, při zkoušení s méně kazisvětskými datovými toky by asi rozdíl nebyl tak razantní. Nicméně AMD ukazovalo i slušné zlepšení vizuální kvality při 6000 Kb/s.
AMD slibuje také lepší kvalitu enkódování do formátu HEVC (+11 %) a do AV1, u kterého ale číslo nebylo sděleno, zlepšení mají spočítat v používání B-snímků (takových, které používají na pohybu založenou predikci směrem do minulého i budoucího snímku).
DisplayPort 2.1a, HDMI 2.1b
GPU má také nový blok pro výstup na monitory (kterému se říká Radiance Display Engine). Jeho součástí by měl být vylepšený blok pro škálování (ten se využije například při přehrávání videa, pokud nemá přehrávač implementovaný nějaký vlastní) a ostření videa. Nový blok by měl umět novější verze standardů – HDMI 2.1b a DisplayPort 2.1a, což jsou ale jen menší zlepšení proti generaci RDNA 3. DisplayPort 2.1b (oznámený Nvidií) podporován není, ten ovšem přináší jen podporu pro dražší aktivní kabely.
Omezení je, že Radeony RX 9070 XT i RX 9070 stále podporují jen režim DisplayPort 2.1a UHBR 13.5, jako RDNA 3. Tento režim má asi dvojnásobnou datovou propustnost proti staršímu DisplayPortu 1.4a. Grafiky GeForce RTX 5000 podporují ještě UHBR 20, což dává asi trojnásobnou propustnost proti starému DP 1.4a. Nicméně dokumenty Nvidie mluví o tom, že na tento režim už jsou vždy nutné drahé aktivní kabely. AMD už má podporu UHBR 20 u workstation modelů grafik (Radeon Pro), což možná opět bude platit pro takové karty generace RDNA 4.
Nižší spotřeba v klidu?
Podle prezentace k architektuře RDNA 4 by měla nová GPU mít některé úpravy, směřující k snížení spotřeb v klidu za některých scénárů, kde patrně teď byly rezervy. Podle AMD by Radeony RX 9070 a 9070 XT měly mít nižší spotřebu s většinou dvoumonitorových konfigurací, a tehdy, když máte na monitoru zapnuté FreeSync.
RDNA 4 má podporu pro hardwarovou „Flip Queue“, která přenáší zobrazování snímků, které jsou připravené softwarem, zcela do režie GPU. Vedlejší účinek bude, že přehrávání videa by mohlo mít nižší režii na procesoru v ovladačích, ale asi nepůjde o nic, co by vám doteď chybělo, většina procesorů má i na vysoká rozlišení výkonu dost a dost.
PCI Express 5.0
Navi 48 podporuje jako první GPU připojení přes PCI Express 5.0 ×16. Toto znamená dvojnásobnou datovou propustnost mezi procesorem a GPU proti starším generacím GPU, byť v praxi ve hrách nebývají přínosy rychlejšího PCIe moc vysoké (na PCIe 4.0 ×16 desce asi bude výkon prakticky bez poklesu).
Tato schopnost bude patrně důležitější u levného čipu Navi 44, který nejspíš bude mír jen osmilinkové rozhraní. V desce s podporou PCIe 5.0 ale bude schopen využít stejnou propustnost, jakou předchozí PCIe 4.0 karty měly s 16 linkami.
Výhled na další modely: Navi 44?
Zatím jdou na trh oficiálně jenom karty Radeon RX 9070 a RX 9070 XT, coby jediné grafiky s touto architekturou. Podle neoficiálních úniků by po nějaké době měl následovat ještě onen druhý, levnější čip, označený Navi 44. K němu zatím nejsou žádné oficiálně potvrzené údaje, ale zdá se, že by mohlo jít v podstatě o polovinu Navi 48, s 32 CU, 2048 shadery, 32 Ray Acceleratory a a 64 AI Acceleratory, plus 32MB Infinity Cache a 128bitovými pamětmi. Jaké karty budou na tomto čipu založené, ještě nevíme, možná něco jako Radeon RX 9060 (XT)?
Na závěr přidáváme ještě celou prezentaci k nové architektuře, pokud si chcete prohlédnout jednotlivé slajdy.
NAVI 4 Architecture Deep Dive
Zdroj: AMD
Jan Olšan, redaktor Cnews.cz
⠀
Ty poměry kontroly průsečíků Nvidia pravděpodobně drží jednak kvůli OptiX, kde nemá konkurenci. Ale pozitivní dopad na výkon to může mít i v Path Tracingu (RT), tam se asi bude lámat chleba stejně, jako tomu bylo doposud. V komentářích se lze dočíst, že hodně závisí na kvalitě FSR4. Tak snad zamakají, aby to co k čemu bylo.
Mě napadla jako teorie, proč by ray/box a ray/triangle mohly být stejné (pokud to tak je), že na to má Nvidia nějakou společnou jednotku která analyzuje obojí, místo zvzlášť jednotek které umí jen ray/box. Něco jako mají některé procesory komplexní a jednoduché dekodéry, zatímco některé mají všechny komplexní schopné dekódovat celou škálu instrukcí.
Také je možné, že ty starší informace nejsou přesné a v novějších architekturách bylo zvýšení ray/box propustnosti větší než u ray/triangle, ale z nějakého důvodu to Nvidia nikde neuvádí.
Nemám čas, abych to teďka lustroval všechno, tak jen hádám. Bylo by technicky fakt pozoruhodné, kdyby opravdu měli něco tak robustního jako unifikované jednotky pro výpočet průsečíků. Obávám se ale, že to tak alespoň zatím spíše nebude. Respektive by takové řešení teoreticky mělo umožňovat dynamické rozložení té kontroly podle potřeb, a pak by Nvidia ke konkrétnímu údaji uváděla nejspíš něco jako „up to“.
Len unifikácia by asi priniesla aj zvýšenie komplexnosti buď na strane HW alebo SW. … tipujem…
Ozaj nevie niekto, ako to bolo pri prechode z dedikovaných (geometry, vertex, pixel…) na unifikované shaders, o koľko stúpla komplexita HW (napr. počet tranzistorov), resp. SW (napr. code lines)?
Komplexita by určitě znatelně stoupla. Ale zase bys té flexibility mohl možná u OptiX využít, v jednom taktu třeba plná palba hierarchii, v dalším taktu trojúhelníkům.