30. 7. 2013

PS4 GPU - skutočná pravda


Minule som si pekne od podlahy podal pamflet made by DF /Leadbetter/. Chlapec buď nevie ktorá tu bije, neorientuje sa v problematike, trvá to už pekne dlho a potom sú pravdepodobne aj ďalšie jeho články bezcenné, alebo dobre vie čo robí, úmyselne zavádza a potom je opäť dobré ho úplne ignorovať. Dnes si teda povieme ako to s tým PS4 GPU vlastne naozaj je, veľké mystérium.

Leadbetter si vybral jedno arbitrárne /svojvoľné/ kritérium, ktorým porovnával PS4 a Xbone GPU skrze ALU výkon. To sú tie stovky SIMD stream pseudo procesorov, ktoré papajú shader kód a výstupom je poloha a a farba pixelu na obrazovke. Povedal, že aplikačne bude PS4 výkonnejšia oproti Xbone len o nejakých plus/mínus 25%, napriek 50% prevahe v hrubom ALU výkone. Nie je to podstatné. Anandtech napríklad dosiahol v tak isto navrhnutom teste až 30-40% rozdiel, v závislosti od hry. Opakujem nie je to podstatné. Sila GPU nestojí iba na ALU výkone, je tu celá kaskáda parametrov a stupňov grafickej pipelajny /ALU, rasterizácia, ROPs, TMU, Z buffer, Stencils, bus, mem, API/, ktoré zásadným spôsobom ovplyvnia výsledný framerate alebo kvalitu obrazu. Ak zohľadníte aj tieto premenné dosiahnete hravo 50 až 100% rozdiel v prospech PS4.

Ale aj na to sere pes, vážení. Roky počúvame ako konzoly brzdia PC a že DirectX 11+ je budúcnosť grafiky a hier. Fajn. Sila DirectX 11+ však nie je v prachobyčajnom ALU výkone. Toto je archaická minulosť, ktorá začala s prvým billšmejšdom pred viac ako 10 rokmi /DX API, shader model/ a skončila dňom, keď SONY podpísalo kontrakt s AMD o vývojí GPU pre PS4. Ak to neviete, tak táto zmluva striktne vylučuje možnosť použitie vylepšenia GCN AMD architektúry pre PS4 GPU v konkurenčnej MS konzole Xbone. Môže ju však AMD použiť v PC grafikách. Deje sa tu teda následovné.

Mark Cerny ako veľmi skúsený progiš a dizajnér hier mal víziu, že DX11+ API /PS4 používa OpenGL 4.x alebo low level libGCM ekvivalent/ spolu s moderným GPU by bolo dobre použiť aj na niečo iné ako farbenie pixelov. Hovorím pochopiteľne o GPGPU operáciach /CPU kód na GPU: hlavne audio, fyzika, AI ale aj ta grafika/. Asi viete, že PS4 a Xbone GPU delí cirka 600GFLOPs v hrubých číslach /fpSIMD/. To je značný rozdiel. Oveľa viac ako má dokopy Wee + Wee Uu, alebo PS3 a xcrap 360. Po dohode s AMD teda SONY urobili tri hlavné zmeny HW dizajnu AMD HD grafik triedy 7xxx GCN 1.x. Všetky zmeny s cieľom dosiahnúť na PS4 GPU bezprecedentne výkonný beh GPGPU kódu.


Konkrétne. Totálnu prestavbu ACE /asynchrónny engine pre GPGPU výpočty/, navýšenie počtu týchto jednotiek z 2 na 8 a zvýšenie počtu operácií, ktoré urobí na cyklus z 2 na 8. PS4 GPU má teda 8xACE a 64 ops. To isté PC GPU ma konfiguráciu 2xACE a 4 ops. Tejto téme sa Leadbetter ani len nedotkol. A ideme ďalej. SONY maklo aj na úprave GPU kešky /tzv. volatilný L2 tag/ a GPU tiež dostalo špeciálnu by-pass zbernicu, ktorá tie GPU kešky obchádza a CPU môže napríklad priamo komunikovať s GPU. Podotýkam, žiadna z týchto úprav dramaticky zvýšujúcich výkon GPUGPU výpočtov sa nesmie podľa zmluvy s AMD dostať do Xbone GPU.

Budúcnosť programovania a hernej grafiky sú práve tzv. compute shaders. Speciálny režim, keď sa ku GPU správate ako keby išlo o  CPU. PS4 GPU je práve takto navrhnuté, tento typu kódu bude na ňom bežať o stovky percent lepšie /nezabúdajte, že tu máme aj tých 600 GLOPs prebytočného výkonu/ a MS alebo Leadbetter s tým nič nedokáže urobiť. A ako by to nestačilo. SONY pre PS4 GPU používa superset funkcií DX11, teda PS4 GPU zvládne všetko čo DX11 /navyše na skutočnej low level super flexibilnej a optimalizovanej úrovni/ plus more ďalších funkcií, ktoré sa objavia až v nejakej DX12. Dokonca SONY pracuje pomaly na hUMA jazyku, čo je agnostické programovacie prostredie, keď herný kód použivá CPU a GPU podľa toho, kde sa "cíti najlepšie", kde beží efektívnejšie a to automaticky a bez pracnej úpravy programu. Toto je budúcnosť, ktorú nám chystá Mark Cerny a Leadbetter vám ju takmer isto úmyselne zatajil.

 -------------------------------------

TL;DR /skrátená verzia/ pre tých čo ich to more textu vyššie nebaví. PS4 GPU je v každom smere výkonnejšie ako Xbone GPU. PS4 GPU má k dobru 600GFLOPs výkonu, ktoré Xbone GPU nemá. Tento prebytočný výkon bude utilizovaný veľmi sofistikovanými úpravami GCN AMD štandardu, ktoré Xbone GPU nemá a ani nemôže mať. SONY ďalej pracuje na skutočnej budúcnosti tvorby grafiky a hier /hUMA jazyk/. PS4 GPU API je ďaleko výkonnejšie ako DX 11.x, ktoré nájdete v Xbone GPU. SONY podporuje low level alebo ultra low level /asm GPU/ programovanie PS4 GPU, ktoré MS pri svojej grafike nepodporuje vzhľadom na beh Win8 Apps v jeho Xbone OS. Niekedy sa nabudúce sa strestneme pri krajne objektívnom a faktickom článku, prečo je eSRAM Xbone prd vo vetre, čuz. A ešte jedna maličkosť, ak teda Xbone GPU nič z hore uvedeného nemá, ako sa to asi objaví v multiplat hrách. Nuž neobjaví, ak - tak iba veľmi limitovane, pôjde o to, čo s tým urobia PS4 dev team a PS4 only hry. Sorry, bill príliš šetril na HW, skutočnú budúcnosť hier na svojich pleciach opäť ponesie SONY playstatiom mašina /už po štvrtýkrát/.

Update, 1.8.2013 : "GCN Performance Tip 3: Invest in DirectCompute R&D to unlock new performance levels in your games. Notes: DirectCompute, OpenCL and OpenGL compute shaders allow better access of shader features to the programmer. Direct control over execution kernel, explicit thread synchronization and the use of shared memory are very powerful features that can unlock new performance levels in modern algorithms."

Poznámka -  DirectCompute /DX API/, OpenCL /Open Computing Language/ alebo CUDA /Compute Unified Device Architecture/  je pomenovanie toho istého. GPGPU operácie. A na tie je PS4 GPU maximálne optimalizované. Budúcnosť je ružová a future proof potenciál PS4ky je obrovský.