12. 6. 2019

PS5 GPU - Next Gen RDNA


Oficiálne slajdy ku najnovšej AMD GPU RDNA architektúre. No vidíte, ešte sme si poriadne nepredstavili ani RDNA "jednotku" a už tu meliem o next gen "dvojke". Čo nám teda to pédéefko vlastne hovorí a aké zmeny AMD pri prechode z GCN /PS4/ na RDNA /PS5/ urobilo ? Článok som ani nemusel písať, technicky to len inak poprehadzovali. Zreteľne však vidím komplexné zmeny v granularite spracovania dát, modifikovanú L1 kešku, fillrate, primitive shader, raytracing a stovku ďalších drobností.

Granularita – predstavte si 20 metrový kĺbový autobus pendlujúci medzi zastávkami pričom v 68% percentách je na peróne len 8 ľudí, takže by stačila aj dvakrát rýchlejšia malá "ávia" s oknami a celý veľký autobus sa tam nemusí zbytočne pomaly otáčal, pálit hafo benzínu a drať drahé gumy. RDNA po novom dáva možnosť spracovania pracovných vláken /wavefront/ z originálnych natvrdo 64 /autobus/ aj na voliteľne 32/64 – malá ávia. Kompilér a kóderi sa rozhodnú podľa efektivity behu kódu. A zvýšil sa aj počet slotov, kde sa to divadlo odohráva z 16 na 32. Granularita teda znamená, že prácu „rozdrobíte“ tak aby sa ku nej vošlo viac ľudí a jeden zaspatý neblokoval celú linku /pri Wave64 znamená cache miss stratu 100 pracovných cyklov na SIMD, pri 2xWave32, ak sa jeden netrafí, ten druhý SIMD spracuje a nestojí zbytočne na mieste/. Podobné „granulačne “ zmeny sa udiali pri PS4 GPU na asynchrónnych výpočetných jednotkách /ACE engine/. Wavefront sa pri Nvidii volá tuším Warp a tieto úpravy tam majú tiež.

L1 keška – je to dosť, dosť veľká zmena. L1 pri GCN mala veľkosť 16KB. Po novom je z L1 – 16 kilová L0 a nová veľkosť L1 je 128KB /!/, koherencia s L0 a L2 umožňuje sa ku GPU správať aj ako ku CPU. To je veľká vec, alebo ak chcete ako ku SPE jednotkám CELL CPU PS3ky. Enormne stúpnu nielen grafické možnosti grafického čipu. Penále za cache miss pri príliš veľkom wavefronte som už spomínal vyššie, aj ten je možné maskovať, ide však vždy o trade off biznis, keď kompilér berie do úvahy ILP /inštrukčný paralelizmus/ alebo počet voľných registrov na SIMD  - nová vsuvka, zdieľanie registrov v SIMD Shader bloku, kompilér to robil istú dobu virtuálne, teraz to máte aj na HW úrovni. Opäť Nvidia pri Turing sérii urobili s L1 presne to isté.

Fillrate – AMD GPU sú tradične nedostižné v hrubej výpočtovej sile /ťaženie bitcoinov !!/ ale trochu to krývalo na zadnú lapku v chrlení pixelov /ROPs, TMUs atď./ Došlo tu ku náprave, nárast počtu ROPs, rasterizačných jednotiek z 32 /AMD RX 580ka/ na lepší štandard 64. Záujímavosť – pri PS4 si Mark Cerny vydupal GPU s 32 ROPs aj keď vtedy sa trochu špekulovalo čo z toho, keď tam nie je pamäť s až tak veľkou priepustnosťou aby to uživila. Nuž nakoniec to dobre dopadlo a tie ROPs "navyše" tam boli hlavne kvôli PS VR. Xbox One má GPU iba s 16 ROPs. 

Primitive Shader – ako začať, skúsení progiši hovoria, že ta stará klasická HW T@L, teda hardvérová podpora pre svetlo a transformácie sa časom ukázala ako strašná kravina proti VU vertex pipelajne PS2ky !! HW T@L viedlo ku vertex/pixel shaderom, tie zas ku riešeniu "špeciálnych" prípadov hlavne pri spracovaní geometrie. Takže tu máme geometry-domain-hull-mesh shader bordeľ, všetky solídne a opakovane zlyhávali pri performance indexoch. Primitive shader je návrat ku koreňom, veľa teórie, škoda vam to vysvetľovať. AMD jeho nasadenie dlho odkladalo. Nvidia to ako vždy už má rozbehané. Vzdialený cieľ je vlastne pomaly odstrániť rasterizáciu z cesty a všetko presunúť na čistú funkciu /tvar definovaný rovnicou ako je SDF - signed distance function/ a globálny tracing svetla.


Raytracing /RT/  – viď obrázok vyššie. Obe GPU konzol PS5 aj Xbox "three" ho budú podporovať na HW úrovni, čakajte ale skromné praktické výsledky, nie totálne, globálne riešenie celej scény do A po Z. Lepšie informované zdroje uvádzajú, že sa SONY asi vydá cestou akcelerácia octree/KD binárnych datových štruktúr a MS alernatívnou BHV /bounding volume hierarchy/. SONY photon mapping, MS rekurzívny raytracing. Chcel by som vidieť teraz vaše kyslé ksichty, hehehe. Neklikajte, nemusíte to zatiaľ chápať, keď príde čas a bude to zapísane do komeňa, potom to jednoducho vysvetlím. Stačí ak viete, že ide o pohľad na jeden problém z dvoch uhlov. Ako nákladné auto so štyroma veľkými kolesami a iné s ôsmimi presne polovičnými. Áno bla bla - Nvidia to už má.

Ilustračný obrázok je tu z iného dôvodu. Prvá PC grafika na RDNA architektúre - rada 5700 totiž nemá HW podporu pre raytracing. PS5/XBOX3 ju mať budú. PC 5700ka to má na "softvérovej úrovni" via shaders. Dobre známy PB engine AMD ProRender /môžte kombinovať CPU+GPU/ alebo knižnica Radeon Rays. AMD chystá RT podporu až pre budúcoročné RDNA modely tzv. Navi+ alias "Next Gen". A práve toto sa ocitne v PS5ke. Novší kus silikónu už asi nedostanete. A všetko to čakám na špičkovej 7nm+ EUV litografii.

Šťastný koniec. Aj keď s rok a pol ročným meškaním od Nvidie bude PS5 GPU založené na RDNA model 2020 so SONY extenziami /tie budú na samostatný pokec/ - jedným naozaj nádherným, super flexibilným a výkonným GPU, ktoré nebude možné vyťažiť naplno v žiadnom prípade pri bežnom  6-7 ročnom cykle ďalšej generácie konzol. Presné čísla stále nevieme - TDP /čakám max. 110 watt/, Mhz /čakám minimálne dvojnásobok PS4 GPU, teda 1600Mhz/, flops /čakám fp32 10TFLOPs /, rýchlosť pamäte /bude minimálne na úrovni 448 giga-sec pri 14gpps, dáta sú masívne realtime komprimované, farba, vertexy, delta kompresia v grafike na HW úrovni, reálne tam lieta minimalne ten "terabajt", dvadsaťnásobok bláznivej PS2 eDRAM/. V správných rukách tá grafická karta v PS5ke bude ako útok berserk Vikingov na materskú školku.