23. 1. 2014

Lara Croft - PS4 60fps versus Xbone 30fps


Pragmatické a kultivované vysvetlenie toho, k čomu tu pravdepodobne došlo. Vydržte však najprv trochu populárno-vedeckej teórie, je to naozaj nutné. V ideálnom svete podľa Carmacka stoji v strede výkonného systému hypotetické CPU - optimálne iba s jedným strašne výkonným jadrom, suverénne zvláda veľa vetvení /branching/ a je celé žeravé pri rýchlom a náhodnom čítaní z ram. Štandardné GPU ponúka presný opak - extrémna paralelnosť /stovky a tisíce jednotiek/, nemá rado početné vetvenia a ani náhodné čítanie dát, dobre však maskuje veľké latencie pri práci s ram, s tým má zas CPU značné problémy. Rozdiely medzi týmito dvoma protipólmi sa však už roky pomaly stieraju /vynútené faktom, že nie je možné donekonečna zdvojnásobovať počet tranďákov každých 18 mesiacov/. CPU sa teda naučilo paralelnosti /jadrá, vlákna, SSE, SIMD !!/ a GPU zas lepšie vetví a náhodne skáče. Sme na dohľad hybridov, kde na jednom silikóne je "niečo" s vlastnosťami jedného aj druhého. Dovtedy však využijeme to, čo sme v next gen konzolách dostali a nie je toho málo. AMD GCN 2.0 - minimálne v prípade PS4 GPU. A takáto architektúra sa dá konečne efektívne zneužiť aj na CPU/GPGPU operácie na grafickej karte. Dáta ako dáta a aj tak sa to už robí celé veky. Univerzálne DSP/vektor jednotky v PS2ke, Atari Falcon či N64 by vedeli rozprávať. Dokážu cez seba prehnať aj zvuk /3D efekty/ alebo grafiku /3D transformácie/, rozbaľovanie komprimovaných dát a na PS4ke aj vlasy lary croft !!

AMD TressFX 1.0: v závislosti od typu GPU - veľký až dramatický prepad výkonu

PS4 GPU túto prácu ale zvláda oveľa lepšie, než bolo roky zvykom. Máme tu vyše 1100 SIMD subprocesorov, ktoré napriek istým limitom  poslúžia aj na množstvo práce mimo "multimédií", na ktoré sú v herných strojoch primárne určené. Hovoríme napríklad o next gen Lare Croft a TressFX fyzike jej vlasov /časom aj šiat, vlajok, trávy a inej "organiky"/. Technicky na to môžte vyčleniť časť SIMD GPU a zvyšok nech maká na grafike. Dá sa to ale urobiť aj elegantnejšie. AMD a jej ACE. Asynchronous Compute Engine. Jednoducho povedané ide o zabezpečenie simultánneho behu grafického a "CPU" kódu na tej istej SIMD jednotke /poli/ v tom istom čase. Zdanlivo. Po starom ste mali jedno alebo druhé. GPU fyziku na úkor grafiky. Po novom tu máme to ACE.

AMD TressFX 2.0 : vyše 200% zrýchlenie 
/K-buffer =  RMW read-modify-write, A-buffer = anti-aliased, area-averaged, accumulation/

Je to komplikovaný systém a do podrobnosti zabiehať nebudem. Základné princípy.  Predstavte si, že chcete tu TressFX fyziku napasovať na PS4 GPU, bez toho aby ste trápili jej CPU. Viete, že je tu tých 1100 SIMD muklov. GPU ich bez ohľadu na hru nikdy nevyužíva všetky a nadoraz po 100% času spracovania frejmu, lebo početné kroky render pipelajny sa spoliehajú aj na non-SIMD kalkulácie /rasterizácia, ROPs, napr. generovanie shadow máp/. Vtedy vlastne SIMD "stoja" a práve tieto voľné pracovné cykly /zlomky milisekúnd/ si pre seba vychytáva ACE engine v prospech negrafického kodu bežiaceho na GPU.

 
Lara na PS1 a PS4 /ja tam inak herne vidím stále tú istú hru/

PS4 má ACE dizajn oproti aktuálnej generácií mainstreamových PC kariet podstatne vylepšený. Zvláda až osem rozličných GPGPU úloh naraz,  pričom každý ten ACE kánal má buffer pre 8 mikrooperácii, to znamená 8x8=64. Granularita. Tie TressFX dáta čakajúce na spracovanie môžu byť teoreticky rozsekané až na 64 čiastočiek a tie sa okamžite lepia na tie voľné cykly. Xbone ich zvládne 16 /konfigurácia 2x8/ a dnešné bežné GPU dokonca iba 2 !! Práve PS4 ACE ako súčasť GCN 2.0 štandardu spolu s HSA /plus špeciálne zbernice/ a hUMA pamäťou sa považuje za ten obrovský skrytý potenciál PS4, z ktorého budú šikovní vývojári ťažiť celé roky. To ale neznamená, že sa už zajtra neobjavia hry, kde táto sila PS4 jasne nevynikne. Mimochodom je vonku najnovšie TressFX 2.0 middleware /rátame, že sa dostalo aj do "definitívnej" lary pre konzoly/ s polovičnými nárokmi na systém /hlavne GPU/ v porovnaní s prvou verziou, to pomôže hlavne anemickému Xbone.

"Yes, the PlayStation 4 build is, on average, twice the framerate of the Xbox One build. Both builds are rendering at native 1080p resolution, and generally look the same in graphical effects"

Lara Croft: Definitívna Edícia sa zdá byť jednou z prvých takýchto hier, ktoré sa dajú vzhľadom na multiplat charakter využiť na porovnanie PS4 a Xbone aj z pohľadu GPGPU výkonu /direct compute/. Môj článok vychádza z tohto odkazu a zdravú mieru skepticizmu si stále ponechávam v zálohe. Každopádne obe hry vraj bežia v natívnom 1080p rozlíšení, vyzerajú po grafickej stránke takmer zhodne avšak priemerný framerate PS4 verzie sa drží okolo 60 fps, kým pri Xbone len na 30ke. Čo stojí za tým 100% rozdielom, to zrejme už teraz tušíte. PS4 GPU skutočne je signifikantne výkonnejšie, aplikačne-herne by však ten rozdiel nemal byť vyšší ako 50% /framerate, efekty/. Udialo sa asi to, na čo som upozorňoval už pred rokom. Ak sa PS4 GPU používa ako klasická grafická karta, môže byť oproti XBone GPU výkonnejšia o 25-50% podľa prevažujúceho typu grafických operácii /SIMD, ROPs, stencils/ ale ak bude hra tlačiť na pílu pri použití GPGPU kalkulácii /TressFX !!/, rozdiel môže byť aj vyšší ako 100%. Skvelé PS4 ACE jadro a prevaha SIMD jednotiek - 1152 versus 768. A práve k tomu sa zdá aj došlo, a bude sa to v budúcnosti znovu a znovu opakovať a to tým viac či bude hra intenzívnejšie a naraz odkázaná na premakané shader výpočty /ALU, SIMD/, husté transparencie /ROPs, fillrate/ a divokú fyziku /ACE/.  PS4 je proste postavená oveľa róbustnejšia na tú záťaž je lepšie pripravená. Vivat Mark Cerny.