30. 3. 2013

Playstation 4 a Mark Cerny - krstný otec


Playstation 3 je dielom inžiniera - vizionára. Po úspešnej dvojke PS1 a PS2 sa Ken Kutaragi snažil o hlbší zárez na pažbe. CELL sa mal stať novou všeobecne používanou procesorovou radou /viď staršie epic shit články/, okolnosti mu však nepriali. Obtiažnosť programovania tiež trochu podcenil, eventuálne neodhadol správne nepripravenosť priemerného progiša na tak progresívnu architektúru. PS3 slúžila aj ako trójsky kôň pre BD formát. Úspešne. Prirátajte defaultne zabudovanú HDD mechaniku, wifi, HDMI výstup, plne hardverová spätná kompatibilita. Nepatrne sa nám to predražilo a takmer to stálo SONY krk.

Playstation 4 je dielom mimoriadne skúseného, herného vývojára. Mark Cerny sa prvýkrát priplietol ku vývoji PS4 na jeseň roku 2007 počas sviatku Vďakyvzdania. Vtedy už SONY tušilo, že bežní vývojári si proste s CELL archiktektúrou neporadia a cena mašiny je problém. Mark špekuloval o "developer friendly" next gen náhrade a do úvahy pripadal skutočne iba zabehaný x86 dizajn a teda drahší Intel alebo lacnejšie AMD. S touto myšlienkou zašiel za šéfom vývoja, ktorým bol vtedy plešatý Phill Harris a ten ho zoznámil s Masayuki Chatani /CTO - Chief technology officer/. Chlapík, ktorý stál pri vývoji PS3 od začiatku a dodnes sa v tejto pozícií stará o to ako napríklad zmenšiť PS3 alebo zlacniť vývobu PSV. Prechod na x86 by bohužiaľ znamenal stratu spätnej kompatibility /BC/. Softvérová emulácia CELLa nepripadá do úvahy a ani jeho fyzická prítomnosť na matičnej doske PS4. Ekonomické dôvody a kolaps svetovej ekonomiky v 2008 sú myslím dosť jasnými argumentami.

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

Rozhodnutie opustiť CELL a stratiť tak spätnú kompatibilitu nebolo vôbec jednoduché. Už vtedy sa však opatrne rozmýšlalo o emulácií PS3ky na Cloude a následnom streamingu dát do PS4. Ziskom pri voľbe x68 CPU na druhej strane bolo dobre zdokumentované prostredie a jednoduchosť programovania  /PS4 SDK beži na VS2010 pod Win7 64-bit , LLVM/Clang kompilér a s C++11 podporou/. Nástroje pre vývoj už nebolo nutné krvopotne písať na krivom kolene. Hodila sa im aj podpora pre SIMD inštrukcie ako AVX, SSE 4.x, ktoré sa dajú skvele využiť pre hry a multimédia. A na dohľad sa črtalo AMD APU riešenie /CPU+GPU/ na jednom čipe. Ako však PS4 s tak dokonalým "PC riešením" odlíšime od bežného herného PC. Dosť jednoducho. Mark Cerny a spol. sa pokusí o to, o čom sa na PC iba dlhé roky kecá.

Dokonalá GPGPU architektúra. Rýchle know-how. Máme PC s výkonným CPU a ninja GPU. Potrebujeme aby nám GPU s niečím helflo. Zoberiem teda dáta zo systémovej RAM, nabehnem na GPU L1/L2 cache, to znamená, že ich obsah, nech už tam bolo čokoľvek, ide do hajzlu. Zababrem videopamäť. GPU sa pustí do tých dát, pochopiteľne v tom istom čase sa nemôže na 100% svojich možností venovať grafike. Konečne je ta fuška hotová, návrat na GPU L1/L2 kešku. Opäť výmaz, zbohom grafické dáta, my máme prednosť. Konečne sme v systémovej RAM. CPU si prečíta čo mu GPU podhodilo, urobí hmmm, a cyklus sa opakuje. Asi tak 60 krát za sekundu. Ak sa vám to vidí ako dosť neohrabené a pomalé, drancujúce pamäť, priepustnosť a grafický výkon. Potom máte pravdu, musíte si veľmi dobre premyslieť, kedy sa vám to oplatí. PS4 GPU je ale iný tiger.

Ideme pekne poporiadku. Najprv odstraníme problém s presunom dát z jednej ram do druhej. PS4 dostane unifikovaný mem priestor /UMA/ s jednotným adresovaním. Na jednom mieste teda môžu byť dáta pre CPU a GPU, zmení sa iba návestie. Už v tejto chvili sa nám systém zrýchlil o 25%. Aj tak však tie mršky musíme dostať do GPU a narazíme na jeho kešku. Mark vymyslel toto - špeciálny by-pass režim, keď GPU zapíše vysledok priamo do systémovej ram, preskočí tu kešku. Nezabudnite, že v ďalšej nanosekunde na ten istý priestor pristupuje CPU, kukne čo sa stalo a dáta letia späť do GPU vynechajúc opäť jej kešku. Je to neuveriteľne výkonný mód a systém máme teraz minimálne o 50% nad referenčným nominálom. A ideme ďalej. Ako pomôcť GPU so spracovaním CPU inštrukcií. AMD tu už má pomôcku v podobe ACE enginu. Asynchrónny časovač spracovania inštrukcií. AMD PC GPU z ktorého PS4 GPU vychádza ich má dva a každá spracuje 2 operácie na cyklus. PS4 GPU tento počet zvýšilo na osem a každý spracuje osem operácii /4 versus 64 = 16 násobné zvyšenie výkonu v tomto bode/. Výkon systému nám poskočil minimálne o 100% len úpravou toku dát a vnútornej architektúry. Nezvyšovali sme kmitočet, nedotkli sme sa "flops" výkonu, napriek tomu, naše PS4 GPU hravo porazí PC GPU, z ktorého pochádza.

A to sme ešte ani nezačali. PS4 GPU dostane aj pre konzoly typické mimoriadne efektívne a výkonné API dokonca s odblokovaním všetkých možnosti čipu /nad rámec oficiálneho DX11 alebo shader model 5/. Pre pokročilých aj prístup ku hardvéru na super nízkej úrovni, dokonca špeciálny /custom/ shader model alebo GPU asembler. Všetko ? Ani omylom. PS4 GPU je upravené tak, že jej 8xACE engines simulujú virtualizovaný SPURs /SPU Runtime System/ CELL design /8xSPE jednotky !!/. Chcete ešte viac, vidím to na vás celkom zreteľne. SONY ďalej pracuje, v strednodobom horizonte, na implementácii HSA programovacieho modelu, teda jeden programovací jazyk pre CPU a GPU zároveň. Hra bude vidieť CPU a GPU ako jeden čip a kód rozhodne, kde bude tá či oná ionštrukcia spracovaná. Mark Cerny povedal, že skutočne nečaká, že mnoho z unikátnych vlastností PS4 GPU budú rutinne používané už v prvých hrách. Ide o potenciál, ktorý rokmi dozreje ako portské víno !!

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

To by sme mali GPGPU. PS4 CPU sme preplieskali minule, čo ďalej ? No druhé PS4 CPU, čo iné !! Pri PS3 sme mali CELL ako to dievča na všetko, dokonca boli dve SPE jednotka odpísané pre herné použitie. Jedna mimo hry pre zvýšenie vyťaženosti a druhá ako HW ochrana pred prelomením systému. PS4 CPU má 8 jadier plne k dispozícií iba pre herné použitie ako bezpečák tam slúži druhé CPU. Pravdepodobne ide o ARM CPU /neznáma konfigurácia - jednojadro/dvojjadro Cortex-A9, A15 ?/. Dôvodom jeho existencie je aj splnenie EU normy pre spotrebu elektroniky v semi-standby móde. Čo vlastne to pri PS4ke znamená ?. Konkrétny príklad. Doma máte vypnutú PS4. Vy ste niekde v riti s Xperiou Z v ruke, nabehnete na PSN store, kupíte nejaké DLC, poviete PS4ke nech toho bazmeka stiahne. PS4 je stále vypnutá. Príkaz vyhodnotí a zrealizuje práve to druhé CPU. Je inak súčasťou tzv. južného môstika /Southbridge/ matičnej dosky. Jeho aplikačné využitie je samozrejme omnoho širšie, nielen nejaké stealth alebo "optimalizované" sťahovanie-inštalovanie v pozadí /optimalizovené = špeci "chunk" režim ako vydrbať s príliš veľkou ram a príliš pomalou BD mechanikou, nebudem to tu rozpisať, pre vás technické a nudné žvásty/.

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

Máme tu teda super PS4 CPU, ktoré nestráca čas kravinami, druhé PS4 CPU, ďalej super vyladené PS4 GPU. Ešte nejaký procesor ? Jasné, o chvíľu, prkotinami ako audio DSP alebo HW depacker zabalených dát teraz nebudeme strácať čas. Ideme rovno na Wee Uuu killer fíčuru. Hranie 99% PS4 na PSV v jeho natívnom rozlíšení. Na rozdiel od Wee Uu nie ste limitovaný vzdialenosťou jednej izby. V dosahu pokrytia wifi signálom, ak vám nevadí v závislosti od podmienok vyšší "ping", tak môžte nechať starú pozerať na telku a ďalej smažíte svoju PS4 hru. S PSV na záchode. Podpora pre toto advanced remote play je v PS4 veľmi sofistikovane natvrdo vpálená priamo do stredu operačného systému. Ako vývojár sa o nič nestaráte, máte tu aj pomôcku ako namapovať všetky tlačítka dualshocku na PSV a naopak - dualshock má dotykovú plošku aby zemuloval dotykáč PSV. Geniálne. GAME OS teda obraz PS4 hry pre PSV vytvára automaticky, nároky na systém sú minimalizované na minimum aj vďaka HW podpore pre enkódovanie /alebo dekódovanie audio-video dát, 200 x mp3 stream, video-chat atď./, podľa potreby asistuje aj druhé ARM CPU.

Mark Cerny a Yu Suzuki /šepká sa, že kujú plány ako oživiť Shenmue/

Operačný systém PS4 je inak založený na BSD /Unix/. Ide o stabilnú a dobre prepracovanú platformu. Prvýkrát použitá v hernej konzole. Game OS pre PS3 si SONY napísalo samo, aj preto tie zmätky okolo chýbajúce cross game chatu. Chyby začiatočníka. Ideálne vám teda PS4 OS umožní kvalitný multitasking, potlačenie hry do pozadia a vybavenie si agendy /video chat, nákup na PS store, sťahovanie, čítanie rád ako prejsť nejaký ťažký moment v hre/ . A takto by som mohol pokračovať ešte zopár ďalších strán. Snapshot z hry si urobíte kedykoľvek dlhším podržaním klikateľného touchpadu na dualshock, alebo že PS4 EYE kamerka vidí dualshocky v izbe vďaka ledke na ich čele a vie teda prehodiť pri splitscreene v hre okno na tú strane, na ktorom konci gauča sedíte. Článok však má vzdať hold Markovi, ktorý bez problémov nahradil šialeného Kena a chystá nám pravdepodobne najlepšiu hernú konzolu v histórií a vlastne aj reštart značky playstation a návrat ku sláve a genialite PSone platformy.