6. 12. 2011

CELL >>> i7

Reagujem na spoločenskú objednávku. Nedávno som tu prdol jedno video z Bugthesda zvratku menom Skyrim. Chlapík tam v PC verzii spúšťal dolu kopcom 2500 bochníkov syra. Otázka zneje koľko trýznivo dlhých minút by musela PS3 renderovať jeden frame tejto "obdivuhodnej" ukážky sily PC master class výkonu ? Pri odpovedi si pomôžem technologickou ukážkou Infernal Engine® VELOCITY® Physics PS3, ktorý poháňal multiplat hru Ghostbusters. Čo tam teda vidíme ? Na plne nasvietenej scéne bežiacej v reálnom čase máme až 4000 objektov, drvivá väčšina je zničiteľná, a mimo solid-rigid body telies /nábytok, auto/ tam máme aj niekoľko soft body panduľákov /náročenejších na výpočetný výkon/ a dokonca aj rope physics ukážku pružneho lana-slizu.

Autori spomenuli aj následovné - celá ich fyzika beží prednostne na CPU /multithread/ a radi prenechajú celé GPU iba pre grafické operácie. Nevezú sa na hysterickej vlne, ktorá považuje GPGPU vlastnosti CUDA PC grafík nadradené akémukoľvek inému typu silikónu. Naopak sa veľmi pochvalne vyjadrajú na adresu CELL CPU. Citujem: "PS3 verziu týchto fyzikálnych ukážok prezentujeme najradšej. Zvládne všetky typy telies solid-soft-rope a to dokonca lepšie než PC build bežiaci na i7 a na všetkých jej 8 HW threadoch."

Ak teda šesť rokov starý CELL aplikačne-herne devastuje najnovšie intel CPU, prečo ho nedať aj do PS4. Obzvlášť, ked pomer cena/výkon/spotreba je vynimočne dobrý. Sledujte. Prvá verzia CELLu v PS3ke začínala na 90nm technológii s čistá spotreba siedmych SPE /bez PPE/ činila spolu 35w. Veríme, že nás SONY ešte obdaruje PS3 super slim verziou, kde bude CELL na 28nm a vtedy bude jedna SPE žrať iba jeden watt. Exclamation marks !!! Čisto laicky to teda znamená, že mýtické CELL super CPU v konfigurácii 4xPPE + 32xSPE by na 28nm bez zásahu do architektúry /dá sa pochopiteľne vylepšiť/ spotrebovala do 75w, rátam do toho aj integrované zbernice, rozhrania a PPE jadrá. Výkon cez jeden TERAFLOP.

"GPGPU is not as fast in running code with a lowish threadcount, lots of jumps, and small local memory pool."

Ak teraz niekto povie, že GPGPU CUDA PC grafika ten výkon má už dnes, potom vedzte, že ste podľahli marketingovým blábolom Nvidie a spol. Všetci samozrejme vieme, že dnešné špičkové PC GPU obsahuje stovky a stovky sub-procesorov. Zdanlivo gigantický výkon. V skutočnosti táto bezprecedentná paralelizácia iba maskuje latenciu ozrutne giganticky pomalých pamätí a render pipelajny vôbec. A nielen to - latencia pri spracovaní samotných inštrukcií vašich milovaných DX 11 shaders je tak veľká, že je GPU nútené to riešiť skrze zvýšený počet vláken-threadov vášho shader programu /ich počet je vyšší ako pri optimalizovanom CELL kóde/. Síce ide o automatizovaný proces, ale pekne drancujete ten kvázi teraflopový výkon.

Programátorsky komplikovaný CELL je zrazu ako leháro so studeným pifkom za teplého nedeľného ráno. Presne ten istý problém rieši aj prenosná PSV, preto tie štyri "redundantné" grafické a CPU jadrá. Minimalizácia nepriaznivých javov ako mem latencia, instruction stall, cache miss je vlastne alfa a omegou mierne šialeného designu CELL procesora. Teda - ako spojiť strašne výkonnú výpočetnú časť /1-5 ns/ s mimoriadne pomalými pamäťami, zbernicami a externou pamäťou /desiatky nanosekúnd až stovky milisekúnd/. Ako vyriešiť to, že sa stále za niečím čaká.