20. 11. 2008

Rozbíjanie jadra pokračuje

Stále v tom nemáte jasno. OK, takže Naughty Dog tvrdí, že prvý diel Uncharted využíva možný výkon CELL procesora na slabých 30%. Mnohí to považujú za blábol, ďalší sa pýtaju či to dnes nie je možné poriešiť "patchom". Veď sú o nejaký ten rok mudrejší. Já tvrdím - ND pravdu má, a nie .. "patch múdrosti to neporieši". Počujem tiež zadné rady kričať, že programovanie pre Xšmejd, konkrétne jeho CPU je jednoduchšie. Prd vo vetre, a psie chcanky. Iný vynikajúci kóder Marco "nAo" Salvi -Heavenly Sword ukludňuje tvrdením, že výkon RSX GPU je dostatočný, a bez akejkoľvek asistencie SPE zvládol sám všetky pixel/vertex operácie - aj jeho nový, pre RSX "natívny" render formát umožňujúci vysokokvalitný antialiasing /4x/ a HDR naraz. Použil trik, využijúc pixel shader jednotky na RGB/CIE luv konverzie /32 bit LogLuv HDR kódovanie/. K dispozície je aj super rýchla, ale trochu menej kvalitná nAo24 varianta. Nejde teda o klasickú "hárdvérovú" fp16/HDR cestu s enormnou spotrebou priepustnosti, pamäte a výkonu. Tá navyše v prípade RSX vylučuje simultánne použitie antialiasingu. Aj slepé oko si však všimne, že HS obsahuje kopu nepríjemného tearingu. Aby som to zkrátil, problém NIE JE na strane GPU. Marco potvrdil, čo asi tušíte, ich herný kód nestačí samotné CELL CORE CPU, centrálna PPE .. obslúžiť. Doslova povedal: "ak by sme dokázali-stihli preniesť na plecia SPE časť herného kódu, tak by ste sa na tento artefakt nesťažovali".

Jadrom problému je teda vyvinúť nové programovacie techniky. Vytvárané za pochodu. Je srdečne jedno KOĽKO SPE jednotiek máte k dispozícii, ak nemáte algoritmus pre ich využitie. Metodiku. Insomniac už druhý rok krvopotne školí svojich progišov, ako to zvládnuť /prechod z klasiky to jest - jedno CPU, jedno GPU .. na modernú budúcnosť/. Plus efektívne low level kódovanie SPE v assembleri. Programovanie viacjadrových/multithreadových systémov je satanova práca, už si to uvedomte. Nie nadarmo to tlsté prasa Gabe neustále pindá o zlých viacjadrových systémoch, a v roku 2008 stále používa už vo svojom čase zastaralý SOURCE engine. Carmack to isté. Ten blbec ešte minulé vianoce nezmyselne žvatlal, že by omnoho radšej pracoval s jedným výkonným CPU ďalších desať rokov. Bejvavalo.

Určite vám stále nedá spať "jednoduché" programovanie pre Xcrap s troma CPU. Niečo si musíme upresniť. Xšmejd má homogénnu architektúru. Máme tu jednotný HW design jadier a jednu inštrukčnú sadu /VMX teraz ignorujme/. Jedno celé jadro je vyhradené pre beh OS v pozadí, kódovanie audia a iné - napríklad IOP operácie. V skutočnosti je teda Billov výblitok štandardným dvojjadrovým systémom. Na druhej strane stojí sedemjadrová PS3 /už som odpočítal jednu SPE pre OS a druhú "nefunkčnú"/ s heterogénnou achitektúrou. SPE inštrukčná sada je iná ako tá, ktorú používa PPE. Laicky povedané. Centrálne PS3 CPU sa správa ako Motorola v Amige, SPE ako Intel v Pentiu. A na tieto "komplikácie" drvivá väčšina dnešných third party multiplatformových progišov z výšky kaká.

"If, you find yourself digging deep into multiple sub-systems, stop yourself before you loose your mind." Insomniac - ani s SPE voodoo mágiou sa to nemá preháňať.

Ani na Xcrape však napriek "jednoduchosti" CPU nie je situácia ružová. Opäť použijem hru Bioshock. Je zjavne, že tá hra JE ladená pre Xcrap. Máme tu teda jeho dve pre herné účely použiteľné jadrá na 3.2Ghz, a štyri HW vlákna. Jeden by teda predpokladal, že pri konverzii na PC, tu bude snaha natvrdo vyžadovať DUAL CORE CPU. S prekvapením však zistíte, že vám hravo stači aj tri roky staré jedno jadrové CPU na smiešnych 1.8Ghz. Neprepokladám, že patetická PS3 verzia využíva viac ako to centrálne CPU a jeho dve HW vlákna. Mimochodom CELL CORE PPE je takmer dvojčaťom toho z Xšmejdu. Asi vidíte kde tým smerujem. Napríklad taký EA Madden. Minuloročný diel bežal na Xšmejde na 60 fps /2 jadrá a 4 vlákna/, na PS3ke iba na tridsiatich /nepochybne 1 centrálne jadro a 2 vlákna/. O rok neskôr už OBE verzie bežia na 60 fps /pri PS3ke do práce po protestoch hráčov nabehli aj SPE jednotky/.

Mám teraz v pozadí otvorené dve pdf prednášky od Insomniac tímu. Sú venované práve problematike, ako prejsť od toho nízkeho 10-20-30% využitia CELL výkonu do vyšších sfér. Pamätajte, že o 5 rokov bude tých jadier v PS4 aspoň 20-30 !! Kopa vysokotechnických kecov o autonómnom asynchrónnom SPE subsystéme pre fyziku, AI, a kope ďalšieho pôvodne PPE kódu. Jeden slide by vás iste prekvapil. Ide o postmortem-rozborku hry Ratchet a Clank TOD, kde graf "hovorí" - hra beží na centrálnom PPE a troch SPE. PS3 má však k dispozícii šesť SPE jednotiek. Napriek tomu beži v 720p/60 režime a v Pixar CG kvalite. Píšem si preto do zápisníčka. Insomniac tvrdí, ze využívajú 50% bla bla. Viď začiatok článku. Mimochodom, Killzone 2 zneužíva podľa vývojárov "4 a pol jadier CELL CPU" a požičali si pár fint ako od Insomniacu, tak aj od borcov zo Santa Moniky /God of War/. Aké ponaučenie z toho pre nás vyplýva ? Zoberte do ruky čistý uterák, požičajte trpezlivosť budhu, a neprepadajte panike. Rátajte však s tým, že multiplatformy sa budú naďalej ladiť s ohľadom na ďaleko menej výkonný Xšmejd.