21/04/21

Dodavateľsko-spracovateľský reťazec

ZX Spectrum, keď nahráva do celej svojej 48 kilovej pamäte hru z magneťáku o rýchlosti 1500 baudov, tak mu to trvá tesne nad 5 minút. Známe turbo-loadery pre Atari si pomohli vyššou rýchlosťou. Najčastejšie to bola 2000ka. S zvyšujúcou sa mierou nestability až na 9600 baudov. Amiga 500 má desať krát toľko pamäte v základe, takže sa bežná MG páska použiť nedá. Chválabohu tam máme floppy mechaniku s typickou rýchlosťou čítania okolo 30 KB/sec. Pri amige s rozšírenou RAM na 1 megabajt sa však už načakáte. Záchrana prišla s oveľa rýchlejším a drahším HDD. Ten s nami /konzoly/ vydržal až dodnes. A dohnali sme jeho možnosti až do krajnosti, lebo ládovať 8000 mega RAM z HDD o rýchlosti 20-100 mega/sec nie je o nič lepšie ako tá jedno megová amiga s floppy diskom. A potom prišlo SSD, teda polovodičové úložisko, bez pohyblivých mechanických častí. Pri konzolách  poslednej generácie sme konečne "rýchlejší" než veľkosť RAM a sme schopný dosiahnúť "okamžité" nahrávanie ako na starých konzolách s kartridžom /vtedy veľmi rýchle a veľmi drahé riešenie so silne obmedzenou kapacitou/.

SSD máme, ale týmto sa to ešte len začína. Mohli by ste povedať, že na PC, kde sa SSD už roky používa ide o rutinérsku nudu a iba sa čakalo až sa do moderných čias dotiahnú aj konzoly. Opak je však pravdou. PC vošlo s SSD iba do fázy jedna a samo stojí a prešlapuje na mieste. Konzoly v skutočnosti musia presadiť tento štandard s kompletnou zmenou fyzických a softvérových častí celej nahrávacej reťaze. Požiadavka, dodávka, spracovanie. Pri PC je to totiž groteskne neefektívne a pocitovo sa teoreticky udávaná rýchlosť v gigabajtoch za sekundu v praxi vníma skôr v "tých stovkách megabajtov" a nevšímam si to len ja. 

  

PC riešenie SSD - príliš pomalé, motor z ferrari na podvozku fabie

PC s SSD manažuje pre hry kritické, grafické dáta takto - CPU ich načíta z SSD, uloží ich do systémovej RAM, ak sú zabalené, tak ich CPU rozbalí. Rozbalené idú zo systémovej RAM do grafickej VRAM. Po ceste miniete niekoľko zberníc, ktoré poriadne zaťažíte. Konzola to robí takto - CPU načíta dáta a uloží ich priamo na určené miesto do VRAM. Úplne zámerne som obe cesty maximálne z didaktických príčin zjednodušil. Ak sú dáta na konzole zabalené, nerozbaľuje ich CPU, ale v reálnom čase na to určený HW. Zaťaženie CPU, SSD IOP, pamätí a zberníc je pri PC vysoké. Konzoly sú o generáciu ďalej.

DOOM na PC, ten najnovší. Herné asety, ak nie ste schopný ich všetky natlačiť do relatívne malej VRAM /najčastejšie 3 až 8 GB/, pochodujú do systémovej RAM. Žonglovanie s bajtami po celom PC. Ak ich náhodou aj streamujete v reálnom čase a rozbaľujete, tak na PC idete na doraz generického riešenia, ktoré Windows, jeho API a bežné SSD radiče poskytujú. Ako asi podobné PC skončí pri pokuse konvertovať natívnu hru pre SSD konzolu ? Rýchlosť toho PS5 SSD /kompletné riešenie/ nemáte, HW depacker nemáte, Win API je pomalé, PC SSD radič nemá zákaznické úpravy. Jediným riešením je nafúknúť hlavnú systemovú RAM na 32 gigabajtov, nech slúži ako buffer a dostať na GPU toľko VRAM koľko je ekonomicky možné.

Xbox Series X a XVA s SFS. To je zas čo prepána ? XVA je Xbox Velocity Architecture a SFS je Sampler Feedback Streaming. PS5 je vybavené podobne, len pod iným názvom. Nástroje skazy určené na demoralizáciu zastaralého PC. Proste riešenie SSD ala konzoly. Herný príklad. Tank v hre vzdialený od vás 500 metrov, vy ležite na kopci s 0.50 cal snajperkou. Keď nečumíte do optiky - má tank na obrazovke 4x4 pixely. Keď čumíte je tých pixelov viac. Tank je balík 8K textúr aj s mip-mapami. Nech je toho 8 mega dát. PC správne netuší, ktorú z "blízkych/vzdialených" dát-textúr kedy budete potrebovať. Prechod medzi "malým" a "veľkým" tankom, teda voľné oko a snajperka je zlomok sekundy. PC teda bude opäť správne pre istotu držať všetky dáta VRAM. V tej istej scéne však pri Xboxe alebo PS5 alokácia pamäte pre ten tank ukáže 16 kilobajtov alebo pol mega. Ako je to možné ?

XVA s SFS /ten sampler fídbek/ môže držať aktívne textúry, zlomky textúr v pohybe iba pre každý viditeľný a aktívny pixel na obrazovke toho objektu !! Nie pre celý tank v každom okamihu a "pre istotu" ako je to bežné na PC. Ak je tank viditeľný na 2x2 pixely, tak 2x2 pixely najmenšej mipmapy. Nemusíte držať vo VRAM alebo presúvať z RAM do VRAM hore a dole celý texturovací set pre tú tankovú mašinu. Pozor. Celá architektúra GPU, SSD, jeho radiča, zberníc, API a nakoniec softvér /samotná hra/ musí byť okolo toho faktu precízne obostavaná. Obzvlášť PS5 je gigantickým spôsobom práve takto dizajnovaná. Intímny spôsob komunikácie medzi SSD a GPU s výmenou ohromného množstva dát. Považujem za vylúčené, aby dnešné lepšie, štandardné PC za 1500 euro a viac s CPU Zen 8 jadrom, nejakou NV 2080 super, PCIe 3.0 SSD a 16 giga RAM dokázalo rozumne rozbehať budúcu "ťažko" natívnu SSD PS5 hru.

 
PC riešenie SSD - ako na konzolách to ešte dlho nebude

PC pozná pojmy ako virtuálne textúrovanie, PRT /Partially Resident Textures - čiastočne v MEM umiestnené textúry/, dokonca aj vyššie spomenutú SFS. Nikdy sa však nerozšírili, neintegrovali vzhľadom na množstvo HW PC konfigurácií bežiacich od DX9 po DX12 a stoviek GPU od desiatok výrobcov, každá s vlastným uplakaným drajverom kompatibilným "sám so sebou". Klasická achillova päta PC platformy. MS na PC zavádza veci ako DirectStorage API, ktoré sa priamo týka nášho problému, ale sú roky /celú generáciu/ vzdialený od pravej a univerzálnej implementácie SSD, tak ako to má vyzerať. Upravený radič, upravené herné API, HW dekompresor, priame uloženie dát do VRAM atakďalej. Pri troche šťastia posunú konzoly /výborné CPU, GPU, SSD/ herný, hrateľnostný vývoj viac ako posledných 25 rokov dokopy. Zoberte si hry DOOM /pioner 3D FPS technológie/, Half Life /narácia/, Counter Strike /referenčné MP/ a vývoj odvtedy prakticky stojí. Iné herné žánre sú na tom úplne rovnako. Tieto stojaté vody by sa teraz mali rozhýbať. Vďaka konzolám a ich SSD, ktoré na tom bude mať leví podiel. Pri PC celé tie roky akurát zrýchľuje načítanie Windows pod 10 sekúnd.

16/04/21

Stationeers - izolačná páska, WD-40, kombinačky

Mačkám tlačítko X a vyhrávam. Hovoríme o takzvanej hrateľnosti triedy Playstation 1. Chodím, skáčem, občas niečo rozbijem, zabijem, pozbieram. Aj hry s tak banálnym herným oblúkom môžu byť stále zábavné, ale hrať iba toto 30-40 rokov vkuse je už na palicu. Prostredie hier by malo viac hrať s nami. Elektrické drôty všade dookola, plynové potrubie pod cestou, voda v 1000 litrovom akváriu. Podobných bežných položiek sú v hre okolo vás tisíce, ale iba ako neinteraktívna kulisa. Ak si teda chcete trochu interaktívne "vedecky" zablbnúť musíte v "early access" formáte lustrovať rôzne obskúrnosti. Ako je aj hra Stationeers. Menej akcie, viac vedy, more paniky.

Stationeers /PC, Steam/. Sólo alebo kooperatívne sa snažíte založiť stanicu na našom vlastnom mesiaci /neskôr aj väčšie výzvy v pásme asteroidov alebo na mesiacoch Jupitera v pekelných podmienkach/. Hra, v ktorej je najväčším problémom ako prežiť vaše vlastné chyby. Nastavenie funkčného vzduchového prielezu. Inštalácia solárneho panelu s automatickým systémom sledovania polohy slnka. Ohrievače vzduchu. Zvlhčovače. Odstránenie vydýchanej CO2. Ventilácia, trubky, filtre, drôty, ističe, relé, poistky. Toto všetko však nie je realizované prostým odklikávaním políčok v zozname. Náročnosť hry "vyžaduje" vysokoškolský titul inžiniera. Tie potrubie škutočne fyzicky ťaháte. Baterka, kombinačky v ruke, pekne sa plazíte po bruchu. Farebne jednotlivé linky rozlišujete. Kde čo začína a končí. Atmosferický tlak ak treba vyrovnáte vlastnými rukami a telom. Ako píšem na začiatku, takmer každá väčšia chyba v nemilosrdnom vákuu vesmíru končí mimoriadnou situáciou. Požiar, dekompresia, smrť, zánik stanice. 

Príklad. Budujte hydroponický skleník /voda, čerpadlá, správne natlakovanie vzduchom atď., more práce/. Energiu zabezpečuje solárny panel. O šiestej večer však elektrika vypadne, vzduch chladne, zemiaky mrznú a vy zhebnete hladom. To preto, lebo slnko zapadlo, solárko ide spinkať a mimo núdzovej baterky na riešenie krátkodobého prepadu, ste mali hlavné trafo spojiť aj s veľkým "nočným" akumulátorom. V panike vás teda napadne, že baterka vášho skafandra je pinovo zhodná s tou v skleníku, tak ich bleskom prehodíte. Upsa hejsa. Aj ta skafandrová je na 15% kapacity a teda skleník už asi nezachránite a mrznú vám guľky v obleku bez ohrevu. Navyše dýchate len to čo ostalo vnútri obleku. Dvere skleníka nemajú dosť šťavy, aby vás pustili von. Roxorom teda rozbijete sklo, dekompresia vás vycucne preč a v posledných sekundách svojho biedneho života pelášite ku hlavnej základni. Podobných situácií sú tam stovky.


aj obyčajná diera v zemi je komplexný problém 
a riešenie vyžaduje brilantný mozog, rozvahu a odvahu

Hra je podobná inému projektu Space Engineers ale oproti nej je náročnejšia. V inžinieroch na nejakú hmotu plácnete trysku a palivo a máte JetPac. V našej gamesa inštalujete ručne aj palivové potrubie a musíte určiť bohatosť zmesi. Zmes vzduchu a metánu je inak v prítomnosti iskry pekne výbušná, to aby ste vedeli čo vás čaká pri kopaní tunelov a explorácií podzemia pod mesačným regolitom /regolit = "hlina" bez biologickej prímesi, proste čistý kamenný prach/. V skutočnosti sa Stationners inšpiruje "2D" hrou Space Station 13, na ktorú výrazne ideovo nadväzuje a s  ktorej komunitou hráčov aj intenzívne komunikuje.

Dobývanie cudzích mesiacov a planét je /bolo/ mimoriadne náročné na výkon CPU. Nebuďte preto prekvapený, keď pôjde o limitujúci faktor rýchlosti hry. Simulácia je v tejto fáze /a kvalite, efektivite kódu/ veľmi žravá po pracovnom takte. Vcelku ostro sa kritizuje aj práca s herným inventárom a vlastne manipulácia s čimkoľvek.  A kritika prichádza aj od skutočného leteckého inžiniera, ktorý to hraje. Dev tím počúva, akceptuje, odpovedal mu a veci sa budú meniť. Tak som čítal. Ak teda chcete zistiť ako inžiniersky ťažké je vykopaným tunelom spojiť dva body na povrchu, tak aby sa ním dalo neskôr prejsť bez skafandra, tak táto hra vám ten víťazný pocit umožní zažiť /po mnohých úmrtiach samozrejme/. Očakávam, že sa to časom dostane aj na konzoly. PS5. Slušné CPU.

Skutočný dôvod prečo píšem tento článok. Hrať moderné hry na extrémne výkonnom HW starým "PS1/PS2" spôsobom je to isté ako na Lamborghini na jednotke "pretekať" medzi zaparkovanými autami na Tesco parkovisku. Zmena, ktorá navrhujem nebude zadarmo. Predstavte si filmový New York, ktorý je kulisou pre filmy od Marvelu alebo Woody Allena. Či po chodníku ide Spiderman alebo nejaký neurotik so židovskými pajkalesami okolo vás je fungujúci svet. Jazdia taxíky, civilné autá, hasiči, smetiari, policajti. Predávajú sa noviny, hotdogy, v reštaurácii sa baští žrádlo. Filmový žáner si z tohto života zoberie podľa vlastnej potreby. Nová FPS hra by to mohla robiť rovnako. Viem, že keď odpálim ten stĺp, tak v tom bare vedľa zhasnú neóny a s krikom budú vybiehať roštenky. Šírku "simulácie" možem nastaviť do ľubovoľnej hĺbky. Znovuhrateľnosť levelu je prakticky neobmedzená. Je vyslovene čas, keď musím konštatovať, že aj blbé akčné hry potrebujú trochu aplikovanej vedy, fyziky a prenesie funkčných vzťahov /človek-človek, človek-okolie/ do jadrovej hrateľnosti. Inak to bude stále iba iná verzia starého Wolfensteina.

02/04/21

Blast "ML" Processing

Elektroizolačnú pásku už v ruke držal každý chlap a vie, že sa to rôzne krčí, keď tým olepujete nejaký dvakrát zakrivený povrch. Ak hodíte autofóliu na blatník, nebude to bez vrások a bublín. Necháme to na profíkov. Mapovanie 2D textúry na plastický 3D objekt nie je jednoduchá vec ani v hernej grafike. Ak sa ten objekt navyše aj deformuje a textúra na to má prirodzene reagovať, chce to iný chochmes. ZivaRT /realtime/ je technológia firmy Ziva Dynamics, ktorá tieto problémy rieši za vás. Model, svalové skupiny, textúra, šaty sú deformované realisticky, bez artefaktov, profesionálne, rýchlo, efektívne. A využívajú na to strojové učenie /ML - machine learning, AI/. Insomniac Games práve teraz uvoľnili patch, ktorý podporu pre ZivaRT pridáva na PS5 pre niektoré obleky Spidermana.

Na fóre neogaf.com /Beyond3d/ sa následne spustila debata, o čo tu vlastne ide. Nvidia pre ML kalkulácie používa extra HW bloky s názvom Tensor Cores. Časť silikónu GPU je proste vyhradená na špecializované maticové výpočty a tie môžu bežať paralelne so s spracovaním grafiky. Nvidia tensor jednotky používa napríklad na AI riadený upscale grafiky, aby to GPU nemuselo rátať natívne, takže ide ušetrený výkon do framerejtu. AMD GPU /PS5, XSX/ však oficiálne žiadne tensor jednotky nemajú. V špecifikáciach RDNA2 sa síce udáva schopnosť spracovať v "bežnom" GPU compute poli aj int4/8/16, fp16/32 výpočty potrebné pre ML potreby, ale ani slovo nepadlo o efektivite ich behu paralelne s grafikou alebo ešte náročnejšie, zmiešanú presnosť kalkulácií naraz /rôzne triedy integer alebo integer aj floats simultánne/.

Vieme, je to potvrdené konkrétnym talianskym SONY inžinierom, že PS5 GPU sa nedá označiť ako RDNA2 GPU. Je to mix množstvo upravených funkcií aj úplne mimo rámec RDNA2 PC grafík a člen Insomniac Games dokonca potvrdil, že ZivaRT beží na PS5 GPU bez akejkoľvek výkonnostnej penalty. Okamžite teda každého napadne, ak teda PS5 má nejake použiteľné ML schopnosti, čo tak ich nabudúce využiť pre PS5 variantu AI reškálovania rozlíšenia obrazu ala DLSS 2.0 na Nvidia GPU ? Budúce náročné hry sa teda vyriešia "iba" v 1440p/60 režime a následne ich ML nahodí do 4K rozlíšenia, blízko kvalite natívneho 4K.

SONY pri PS4 Pro zaviedlo do obehu pojem Rapid Packet Math. Ide o úpravu HW registrov GPU, aby dokázali namiesto jednej 32 bit fp inštrukcie spracovať dvojicu 16 bitových. Ak teda máte napríklad grafickú operáciu, ktorej stačí polovičná presnosť výpočtu, tak to beží dvojnásobnou rýchlosťou /z 4.2 na 8.4 TFLOPs/. Bolo mi teda naivné si myslieť, že podobné future-proof finesy /a SONY o nich stále odmieta debatovať/ nie sú implementované aj pri PS5. Máme tu teda veľmi výkonné CPU, veľmi výkonné SSD, veľmi výkonný GPU rasterizér, prijateľne výkonný raytracing a zatiaľ záhadné ML schopnosti. Pieskovisko na 10 rokov zábavy pri dolovaní potenciálnych herných diamantov.