Microsoft odhalil detaily GPU Xboxu Series X a akcelerace ray tracingu v AMD RDNA 2

20. 8. 2020

Sdílet

 Autor: Tom's Hardware
Microsoft prozradil architekturu GPU AMD RDNA 2 včetně toho, jak řeší akceleraci ray tracingu a další zajímavé podrobnosti. Podívali jsme se na to podrobně.

Vedle architektury a parametrů čipů nových grafiky Nvidia Ampere se teď už asi netrpělivě vyhlížejí také podrobnosti o tom, co přinesou a jak budou vypadat konkurenční nové Radeony s architekturou RDNA 2. Tam AMD zatím všechno drží v tajnosti, ale nyní za něj během konference HotChips 32 vyzradil tajemství Microsoft.

Architektura RDNA 2 totiž pohání grafiku v Xboxu Series X a MS prezentoval jeho architekturu, včetně schémat výpočetních jednotek a toho, jak do nich byla přidána akcelerace ray tracingu. Mezi APU v Xboxu a samostatnými GPU by přitom neměly být zásadní rozdíly, takže nám to dává hodně zajímavý vhled do architektury Radeonů RX 6000.

APU v Xboxu Series X

Semicustom čip v konzoli obsahuje osm jader Zen 2 a grafiku se 52 jednotkami CU (respektive 26 Workgroup procesory, které obsahují stejně jako v RDNA 1 každý dvě CU). Z toho vychází 3328 shaderů. Fyzicky je GPU poněkud větší a obsahuje 56 jednotek. To je však jenom rezerva pro vylepšení výtěžnosti, aby se daly použít čipy s defektem v GPU.

Křemík je vyráběný „enhanced 7nm“ procesem TSMC. Jde asi o vyladění původního procesu N7 (jaký používají Ryzeny 3000, Navi 10/14 a APU Renoir), nikoliv o proces N7P nebo N7+. Na plochu měří 360,4 mm², což je dost, ale ne zas nějak supervýrazně moc (podobná plocha jako u Xboxu One X).

Čip tvořen 15,3 miliardami tranzistorů. Rozměr celého pouzdra, které se pájí na desku 2963 kontakty, je docela velkých 5,25 × 5,25 cm. Podle Microsoftu je cena waferů i cena výsledného čipu na 7nm procesu výrazně vyšší než u předchozích (SoC v Xbox One X na 16 nm).

Čip má trošku nezvyklou paměťovou sběrnici s 320 bitovou šířkou, na níž je pověšená 14GHz GDDR6, jež dodává propustnost 560 GB/s. Kapacita je 16 GB, kde prvních 10 GB má plnou propustnost pro herní data, dalších 6 GB už jen 192bitovou sběrnici a tím sníženou propustnost (336 GB/s), tato sekce se asi bude používat pro systém/CPU a méně náročné části herních dat.

Paměť není ovšem vyhrazená jen pro GPU, ale i pro osm jader Zen 2. Ta běží na taktu až 3,8 GHz (má jít o trvalou frekvenci, ne turbo a jsou organizována ve dvou CCX, kde každý obsahuje své 4 MB L3 cache. Procesorová část tedy odpovídá spíše APU Renoir než CPU Ryzenům 3000 Matisse.

GPU architektury RDNA 2

Podle Microsoftu podporuje použitá GPU architektura (RDNA 2) hardwarově feature level DirectX 12.2 a měla by umět celé DirectX 12 Ultimate. Je potvrzený hardwarový ray tracing, podpora Mesh Shaders with geometrickém enginu i funkce Sampler Feedback. Tu konzole využívá k lepšímu využití paměti, protože může načítat z SSD části textur selektivně dle jejich využití/nevyužití.

Tip: DirectX 12 Ultimate: Přichází nová generace herní grafiky. Co přináší a jaká GPU ji umí?

Variable Rate Shading je také podporován. Microsoft zmiňuje, že s podporou faktorů 1×1, 1×2/2×1 a 2×2. Zdá se, že nejsou podporovány tak vysoké faktory redukce jako u Nvidie (u Turingu se uváděl i shading v blocích 4×2/2×4 a 4×4).

Compute Unit architektury RDNA 2

Základní schéma architektury se hodně podobá tomu, jak vypadá RDNA 1 – GPU používá CU (Compute Unit) o 64 shaderech, přičemž CU je rozdělena na dvě SIMD32 poloviny obsahují 32 shaderů (ALU).

Stejně jako u první generace Navi není už jedna celá CU úplně základním stavebním blokem, tím je tzv. Workgroup Processor s dvěma CU (Microsoft pro něj ale používá označení Dual Compute Unit), které sdílejí jednu instrukční L1 cache a paměť pro sdílená data.

Tip: Popis GPU architektury RDNA 1/Navi 10 z roku 2019

Jedna CU má kromě 2×32 shaderů, na nichž lze tedy za takt zpracovat dvě vektorové (SIMD32) operace za cyklus, ještě dvě skalární ALU, takže lze současně také zpracovat dvě skalární operace na CU a cyklus. Dvě skalární jednotky na CU jsou stejný počet jako u RDNA 1. Load/store lze zřejmě provést jen jedno za cyklus/na CU. Vektorové operace jinak shadery zvládají také s přesností FP16, kdy je výkon proti standardním hodnotám FP32 dvojnásobný.

Microsoft jinak uvádí, že jedna CU RDNA 2 má proti CU předchozí generace při stejném taktu asi o 25 % vyšší výkon. Ovšem pozor, toto asi není srovnání RDNA versus RDNA 2, ale RDNA 2 proti architektuře GCN v Xboxu One X, protože RDNA 1 Microsoft nepoužil.

5MB L2, 64× ROP

GPU Xboxu Series X má větší L2 cache než v čipech RDNA 1 – rovnou 5 MB proti 4 MB u Navi 10. Toto ovšem je zvětšení úměrné počtu shaderů v čipu (ze 40 CU zvýšení na 52), takže asi nelze očekávat nějaký dopad na „IPC“. GPU má 64 rasterizačních jednotek (ROP), zde tedy pořád AMD zůstává na svých předchozích maximech (128 ROP zatím myslím žádné GPU nemělo, podobně jako zatím žádný čip od AMD neprolomil limit 64 CU/4096 shaderů).

Akcelerace ray tracingu

A tím se dostáváme k novince, která vás asi zajímá nejvíc. Hardwarová akcelerace ray tracingu je v RDNA 2 realizována speciálními jednotkami, v podstatě dle očekávání (spekulace, že by AMD nějak používalo jen generické ALU shaderů, nedávaly moc smysl, respektive by to nebylo dobré řešení, pokud by se trefily).

RDNA 2 má pro zpracování ray tracingových efektů (DXR či „RTX“ v označení Nvidie) jednotky označené v prezentaci MS jako Ray Acceleratory, i když je možné, že AMD jim bude říkat ještě trochu jinak, až vydá samostatná GPU. Ray Accelerator je integrován na úrovni jednoho bloku CU, stejně jako texturovací jednotky. Není úplně jasné, zda je přítomen jen jeden na CU nebo více kusů.

Ray Accelerator funguje zdá se prakticky stejně jako RT jádro Nvidie. Akceleruje hledání průsečíku paprsku světla s objekty scény. Respektive, nejprve hledá průsečíky s boxy v stromu tzv. Bounding Volume Hierarchy, což je neviditelná pomocná struktura obalující objekty na scéně a hierarchickou eliminací usnadňující analýzu (viz článek o architektuře Turingu, kde jsme to vysvětlovali).

Metoda BVH analyzuje průniky/interakce paprsků a objektů na scéně hierarchicky pomocí tzv. bounding volume boxů, až nakonec se hledá průsečík přímo s trjúhelníkem jen v rámci nejmenšího BVH boxu (Zdroj: Nvidia)

Když se strom BVH proanalyzuje až k průsečíku s nejmenším Bounding Volume boxy v hierarchii, začne Ray Accelerator hledat průsečík už rovnou s konkrétními trojúhelníky objektu. Tento sled operací by měl být iniciován shadery a po nalezení průsečíku se výsledek shaderům vrátí, takže ty pak dokončí výpočet bodu, o který se jednalo.

Je možné, že zde budou nějaké odlišnosti ve schopnostech a omezeních proti Nvidii, ale princip akcelerace je zdá se stejný. Tato analýza běží paralelně s jinými výpočty na shaderech, neblokuje tedy GPU od jiné práce.

Výkon 3× až 10× lepší než jen s shaderovými výpočty

Výkon Ray Acceleratorů od AMD versus RT jader od Nvidie zatím nemůžeme nijak porovnat. Nvidia sice uvádí, kolik GPU mohou zpracovat „giga paprsků za sekundu“, ale tato čísla asi nejsou srovnatelná s tím, co uvádí AMD/MS kvůli odlišným metodikám. Microsoft například říká, že Xbox Series X má špičkově či teoreticky zvládat až 380 miliard operací hledání průsečíků s BVH boxy a 95 miliard operací hledání průsečíku s trojúhelníkem polygonu (tyto operace mají tedy zdá se čtvrtinový výkon).

Jestli to nakonec bude rychlejší nebo pomalejší než u Turingu, to netušíme. Výkon v praxi není určen jen touto výpočetní kapacitou, ale i omezeními danými propustností paměti a tím kolik boxů musí analýza projít od kolika trojúhelníků se jeden paprsek odrazí nebo je protne.

Podle prezentace Microsoftu nejsou Ray Acceleratory na čipu příliš velké (plocha zabraná navíc je „minor“, takže nejspíš pod 10 % z celé grafické části, které je sama jen částí čipu). Ovšem při této relativně menší investici údajně akcelerátory zvyšují výkon ray tracingových efektů 3–10× proti hypotetické situaci, kdy by je počítaly čistě shadery. To je asi řádově podobné jako u Nvidie (podle toho, jaký výkon mají v ray tracingu karty Pascal proti Turingu).

Ray tracing v Xboxu Series X bude mít roli specifálního efektu nad rasterizačním základem

Ray tracingová grafika jinak v Xboxu Series X nemá být „hlavním chlebem“. Používána bude klasicky rasterizace a ray tracing poslouží jen pro efekty tvořící nadstavbu nad ní. Toto je ovšem stejné i u současných DXR her po PC.

Strategie Microsoftu je údajně taková, že DXR efekty mají s relativně malými („ekonomicky efektivními“) náklady zlepšit vizuální kvalitu klasického rasterizačního vykreslování. Ale ne ho úplně nahradit.

Pro akceleraci AI ale Xbox/RDNA 2 speciální jádra/ASIC bloky nemá

Naopak nějakou obdobu tensor jader Nvidie, tedy speciálních akcelerátorů pro výpočty neuronových sítí (maticové operace), zdá se RDNA 2 nepřináší. Microsoft uvádí, že GPU má nějakou formu akcelerace pro inferenci neuronových sítí, která se využije pro AI nepřítel/postav nebo třeba „škálování rozlišení“ (upscaling – nepředstavujte si ale hned DLSS, upscaling pomocí neuronové sítě může být i jednodušší a je to nápad mnohem starší).

Podle starších informací se zde ale zřejmě nejedná o použití samostatného ASIC akcelerátoru jako jsou tensor jádra Nvidie, měly by být použité standardně shadery grafiky, ovšem údajně s operacemi nad celočíselnými hodnotami INT4 či INT8, které dávají 4× nebo 8× vyšší výkon než FP32 (49/97 TOPS proti 12 TFLOPS základního výkonu GPU v FP32).

To by celkem odpovídalo údaji Microsoftu z prezentace na HotChips, dle nějž má zmíněná akcelerace AI asi 3× až 10× lepší výkon než běžný hardware, s jen velmi drobnou cenou v ploše/počtu tranzistorů. Podpora INT4 a INT8 výpočtů byla poprvé v GPU Vega 20, architektura RDNA 2 tedy zřejmě toto přebrala.

Další akcelerátory už od MS

Zatímco pro AI nějaké ASIC akcelerátory použité nejsou, APU bude mít akcelerátor MSP pro dekompresi textur načítaných ze SSD (to je připojené přes PCI Express 4.0 ×2), Microsoft má algoritmus, který prý bezeztrátově zmenší textury ve formátu BCn na disku až o 50 %. Rychlost dekomprese je přes 6 GB/s, akcelerovaná je i dekomprese Deflate/Zlib.

Stejně tak je integrovaná akcelerace kryptografie a hashování (obojí má propustnost přes 5 GB/s) a SoC má i různé bezpečnostní funkce.

Speciální akceleraci dostalo také audio. Microsoft bude používat formát Opus a akcelerátor MOVAD ho dokáže dekódovat 300× rychleji než v reálném čase. Současně také poskytuje velmi výkonou akceleraci pro konverzi vzorkovací konverze s vysokou kvalitou. 300× reálné rychlosti bude dávat také akcelerátor Logan dekódující XMA audio a provádějící pomocí čtyř DSP další audio efekty.

Třetí audio akcelerátor CFPU2 obsahuje 2×4 floating-point SIMD DSP a 4× FPU pro programovatelné filtrování zvuku, FFT, ozvěny a 3D audio efekty. Všechny tyto speciální jednotky mají uvolnit velké množství výkonu CPU pro jiné účely. Všechny tyto pomocné jednotky jsou již ale vlastní IP Microsoftu, nebudou tedy součástí samostatných Radeonů RX 6000.

Galerie: Prezentace APU Arden v konzoli Xbox Series X a architektury GPU AMD RDNA 2 na HotChips 32

Nadějný příslib pro samostatné Radeony?

Implementace GPU architektury v APU Xboxu Series X (čip má prý kódové označení Arden) vypadá tedy zatím dobře. Výkon GPU má být 12 TFLOPS v jednoduché přesnosti, výkon geometrie 7,3 miliard trojúhelníků za sekundu a výkon rasterizace 116 miliard bodů za sekundu (texely/s uvedené nejsou, ale jedna CU má 4 TMU jako dříve).

To je při taktu 1825 MHz, na němž by grafika měla běžet. Vypadá to, že by spotřeba nemusela současně být moc vysoká, snad odpovídající Xboxu One X. Toto má implikace pro výkon, který by AMD mohlo dosáhnout u samostatného GPU se stejnou architekturou RDNA 2. Ovšem raději bych zde neprováděl žádné výpočty a extrapolace, nepřesnost/míra nejistoty je pro užitečné odhady příliš velká.

ICTS24

Kdo tipujete, že bude mít nejlepší akceleraci (výkon) hardwarového ray tracingu?

Nicméně AMD by mělo být být schopné vyškálovat výkon výš použitím širší sběrnice (aspoň 384 bitů by mělo být možných, pokud už se nepotvrdí drby o 512 bitech, které ale nejsou z těch nejověřenějších zdrojů), více jednotek CU a vyššího TDP (250–300 W). Kolik výkonu se tím ale přesně získá a jak si nakonec takové GPU povede proti top GeForce RTX 2080 Ti a novým GeForce RTX 3000 generace Ampere, to je něco, kde asi bude lepší počkat a nehádat.

Zdroje: Tom's Hardware, AnandTech