23. 8. 2013

RAM nie je nikdy dosť veľká a rýchla


Hýbateľom pokroku v oblasti herného hardvéru sú nepochybne herné konzoly /predtým arcade kabinety/. Bez debaty. Psone mala GTE engine - akcelerácia transoformácie a nasvietenie bez asistencie CPU dávno pred Nvidia Geforce. PS2 - šialené, programovateľné VU jednotky /Dx9+ level flexibility hlavne pre vertex shaders/. PS3 zas dala do obehu heterogénny programovací model, keď SPE jednotky vypomáhali so všetkým, kde bolo treba priložiť ruku k dielu /grafika, fyzika, AI, audio/. Dnes sa tomu hovorí GPGPU a chce to Dx11 GPU. PS4 má štandardné AMD bazmeky z výkladu, výpredaj v akcii a nedokáže nič extra.

To bol ftip. Spolu s AMD sa totiž SONY pustilo do novej paradigmy a chcú zmeniť zmeniť a dobiť svet. V článku o PS4 GPU som už napísal, že za chystaným AMD GPU GCN 2.0 štandardom stoja aj vylepšenia, ktoré Mark Cerny osobne navrhol pre PS4 a do PC segmentu sa dostanu až niekedy na budúci rok. Xbone ich mať nebude. Druhou oblasťou kde podľa všetkého /istá neurčitosť v prípade PS4 je namieste, ako si ukážeme neskôr/ AMD a SONY popracovalo ešte viac je hUMA. Nový, pochopiteľne výrazne rýchlejši manažment pohybu dát v pämaťovom systéme. Ako urobiť tu GDDR5 v PS4ke ešte oveľa, oveľa lepšou. O čo teda vlastne ide ? Malá prednáška.

Najlacnejšia "vyrobená" energia je tá, ktorú dokážete ušetriť

Pamäťová klasika /PS1, PS3, dnešné PC/ - CPU a GPU má každá vlastnú ramku, na vlastnej zbernici. Limitovane si obe hlavné čipy šahajú do chlieviku toho druhého, pochopiteľne ide o dosť pomalý proces. GPU sa prednostne stará o grafiku, CPU o herný kod /engine/ a teda aj AI a fyziku. Latencia /čakanie hyper rýchlych registrov CPU - nanosekundy a GPU za večne pomalými pamäťami a zbernicami - milisekundy/ nie je až tak vypuklý problém /v prípade PS1/ aj keď ide o rozdiel "šiestich núl". Pri PS3 sa to čiastočne rieši použitím mimoriadne výkonnej LS /lokálna ram/ SPE jednotiek, pri PC ide o brute force prístup. Žiadna výhra tu či tam.

Nadštandard /PS2, xrap 360/- výkonnosť CPU sa všeobecne rýchlo blíži ku limite, hľadali sa cesty ako tento problém vyriešiť, naopak GPU enormne posilnelo a preberá niektoré funkcie CPU. Rýchlosť pamäti relatívne ku výkonu CPU/GPU ďalej prudko klesá. Výkonná ram alebo zbernica, ktorá je schopná saturovať dobré CPU/GPU je príliš drahá. Veľké problémy s latenciou. CPU je na ňu veľmi chulostivé, GPU to maskuje extrémnym multithreadingom. RAM máme v tomto prípade v systéme iba jednu a CPU s GPU si na nej vytvárajú vlastné logické odiely /partície/. Dáta sa teda medzi nimi nepresúvaju po zberniciach ale iba kopírujú na rôzne miesta jednéj mem banky. Napriek tomuto stále zbytočnému "pohybu" - výrazný nárast výkonnosti.

"hUMA is a cache coherent system, meaning that the CPU and GPU will always see a consistent view of data in memory." - nepotrebujete ani stlačiť F5 aby ste videli čo sa deje na stránke a do jednej diery ďobú naraz 2 ftáky.

Blízka budúcnosť /hUMA/ - jediná ram a v nej dáta pre CPU a GPU - avšak pozor, obe čipy vidia zmeny, ktoré ten druhý urobí v reálnom čase a ak chce ten či onen tie dáta použiť, zmeniť - nemusí ich kopírovať do "svojej časti". AMD toto riešenie volá hUMA /kritérii je pochopiteľne oveľa viac/ a je to vskutku extrémne výkonná architektúra. Moderné GPU dnes vie v herných podmienkách suplovať značnú časť funkcií CPU a je žiadúce aby bol pohyb dát čo najmenší, najlepšie žiaden. Dáta pri hUMA štandardne ležia na tej istej adrese, GPU urobí svoju prácu, následne na to isté miesto skočí CPU a cyklus sa opakuje 30 až 60+ krát za sekundu. Samozrejme to chce vyriešiť množstvo technických problém /HW aj SW, CPU a GPU používajú odlišné programovacie jazyky, tvar datových štruktúr alebo manažment svojich dát, dynamická alokácia pamäte pre jednotlivé procesy/.

  
Vzdialená budúcnosť - maximalne zjednodušenie celej architektúry:  hUMA + HSA. V preklade to bude znamenať, že hUMA "agnostickú" pamäť spojíte s programovacím prostredím, ktoré vie dynamický meniť vykonávanie kódu na CPU /viac "seriový" čip/ a GPU /viac "paralelný" čip/ podľa efektivity spracovania inštrukcií na tom či onom švábe /HSA/. Čiste technicky vlastne pre programovanie CPU a GPU používate jeden a ten istý jazyk. V ideálnom prípade vlastne od seba, z pohľadu programu, neviete CPU a GPU vôbec odlíšiť. AMD už teraz špekuluje o vytvorení novej jednotky, nazvime to APU+, kde na jednom silikóne je mix základných "CPU a GPU" štruktúr /ALU, SIMD, ROPs/ a tie si program volá podľa potreby. Koniec klasického, dedikovaného CPU a GPU. Takéto super hUMA+HSA kombo drvivo porazí "oddelenú" klasiku per watt alebo Mhz. Samo HSA /alfa prototypom bol vlastne CELL procesor/ vlastne automaticky podmieňuje prítomnosť hUMA.

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

Návrat na začiatok. PS4 podľa istých indicií je niečo viac ako bežné AMD CPU a GPU. Na mnohých fórach sa toho času vedie zúrivá debata či PS4 má implementovaný hUMA /neopatrne sa prekecol jeden AMD vývojár, samotné AMD všetko rýchlo dementovalo/ spolu s HSA architektúrou /opäť sa medzi riadkami tvrdí, že PS4 je v pohode a dokonca SONY perspektívne hovorí o vývoji HSA jazyka/. Fakt je ten, že PS4 má všetky logické predpoklady a HW úpravy, ktoré nám opravňujú hovoriť o tejto konzole ako o hUMA+HSA kompatibilnom zariadení a je to aj vo vlastnom záujme AMD - použiť PS4 ako trojského koňa /vývoj hUMA-HSA hier na hUMA-HSA AMD HW/ na úkor produktov Intel a Nvidie. Pri Xbone to nie je tak až tak horúce. Nesmie podľa dohody SONY a AMD používať GCN 2.0 úpravy svojho GPU /napr. volatilný L2 tag - hUMA !!/ a použitie eSRAM technicky znemožňuje použitie plne koherentnej pamäte /limitovaný, menej výkonný spôsob je možný/, lebo dáta máte v dvoch rozdielnych mem bankach /DDR3, eSRAM/, oddelených množstvom zberníc /DMA data engines/ dokonca s nerovnocenným pristupom CPU a GPU do tých pamätí !!

Ak teda PS4 tieto fíčury má /hlavne hUMA, využitie HSA je investícia do future proof budúcnosti/ automaticky získavate minimálne 10% k dobru v multiplat hrách, aj keby sa third party vývojár nijako zvlášť jej výhodám nevenoval. Mark Cerny niekoľkokrát povedal, že každá multiplat hra pobeží na PS4ke lepšie /v zákulisí samotní vývojári hovoria, že omnoho lepšie/. Tetno údaj môžte použiť minimálne ako PR argument, ak vás už teda nezaujíma plynulejšia hra, hlavne keď ide engine do tuhého.

V prípade first party SONY dev tímov by bola hUMA+HSA+GCN 2.0 PS4 GPU /GPGPU úpravy/ absolútne vražednou zbraňou. Len pripomeniem, že EPIC zrušil svoje riešenie globálnej iluminácie /SVOGI/ v Unreal 4.x engine hlavne z dôvodu bolestne nedostatočného výkonu xcrapu 180. Po pravde sa s EPIC riešením zapotí aj PC zostava s i7kou a NV Titan /SVOGI je značne náročné aj an CPU/. Nuž, posledný výzkum na PS4 platforme, ukazuje presne tento algoritmus, modifikovaný o "PS4 magic" na hrateľných framerejtoch. A to ide o tzv. "naivné", teda veľmi hrubé, neoptimalizované riešenie, test nového konceptu. Som si istý, že keď na to niekde SONY zoberie prachy, tak sa na launch KZ:SF pre PS4 budete pozerať o 6 rokov ako na Resistance 1 pre PS3 dnes z pohľadu Killzone3 /alebo Crysis 3 aby som nebol tak zlý/. Ten zatiaľ spiaci potenciál PS4ky je omnoho väčší ako pri CELL v PS3ke.

Updejt, 27.8.2013, 15:45 hod - PS4 má hUMA vlastnosti /vgleaks/ !!!