03/03/21

AI: cogito ergo sum

Tensor Cores je stále ešte relatívne nová časť hardvéru Nvidia grafických kariet pri architektúre Volta/Turing, ktorá značným spôsobom akceleruje výpočetné, maticové operácie triedy fp16, fp32,int4, int8. Deep Learning /DL/ je jedna z funkcií, pri ktorej ich využijete. DL ako "umelá inteligencia" okrem iného imituje spôsob práce ľudského mozgu. Neuróny, neurálna sieť, "deep neural network". V hrách to už asi poznáte pod implementáciou - DLSS /Deep Learning Super Sampling/, keď sa program prehnaný cez tensor jednotky snaží kombináciou dát z viacerých existujúcich frejmov obrazu a vlastnej inteligencie vyrobiť "nové" pixely. DLSS teda doručí 4K rozlíšenie z niečoho nižšieho, tak aby bežné ľudské oko nič alebo takmer nič nespozorovalo. A zachová lepší framerate. Natívny 4K/60 grafický režim dnes totiž zabije bez milosti každú HW konfiguráciu. Čaká sa na reakciu AMD, ktoré podobne ako pri HW podpore raytracingu, mešká aj v tomto bode. Nvidia zatiaľ vylepšuje kód tak, aby napríklad to DLSS nebolo nutné trénovať pre každú hru zvlášť, ale aby poskytovalo kvalitné a vyrovnané výsledky autonómne, na autopilota.

DLSS je schopné vytvoriť 4K obraz v lepšej kvalite ako je natívne 4K rozlíšenie !!  Toto bombastické tvrdenie nie je moje vlastné, tak prostoduchý a Nvidia pozitívny ja nie som. Ako však podobné trúfalé prehlásenie vzniklo. Natívny, surový 4K obraz bez akejkoľvek úpravy /antialiasing, postefekty/ je plný obrazových porúch a vysokofrekvenčných interferencií. Dôjde k tomu tak vtedy, keď sa veľa vyprodukovaných texelov snažíte dostať na relatívne malý počet fyzických pixelov obrazovky. Ak sa vám aj podarí vyhladiť hrany a textúry, tak vám to napríklad shader specular aliasing zas celé pokašle. Je to ako nová textúra aplikovaná už na tú, ktorú ste namáhovo "vyriešili". DLSS súperí v kvalite a výkone s inými postupmi, ako je najčastejšie používané TAA a "softvérový" upscale s využitím registrov hardvéroveho MSAA. V praxi však zistíte, že hento je lepšie v pohybe, tamto pri statickom obrazu, tu zas je problém s transparenciami a tam s "ghost" artefaktami /chyba, keď na obraze visia dáta z ineho frejmu/. A všetci riešia ako ziskať informácie o subpixeloch, lebo tie sú obzvlášť potrebné pre maximálnu stabilitu obrazu. DLSS 2.0 funguje zároveň aj ako dobrá forma antialiasingu /dokonca "ostrenia" textúr/ a preto môže byť jej výsledok po rekonštrukcii lepší ako natívne 4K bez AA.

Ak už teda obetujeme kus silikónu pre tensor jednotky, čo s nimi ďalej /okrem obligátnej hernej AI/. Mám niečo veľmi zaujímavé, čo jedným šupom vyrieší celý náš problém s hernou geometriou, pošle klasické polygóny do hajan, dramaticky zlepší interakciu s objektami, o niekoľko rádov zníži nároky na VRAM a definitívne odstráni hnusné doskakovanie pri zmene kvality /LOD - level of detail/ všetkých predmetov v hre. NSDF-SOT-CLOD. Takú peknú skratku som tomu dal. Ide sa vysvetľovať. Základom je SDF /signed distance field/, ktorá kompletne nahrádza klasické polygóny. Tento typ renderingu používa Dreams /PS4, PS5/. Hlavnou devízu SDF si všimne hneď každý laik - engine umožňuje manipuláciu s objektami prakticky bez obmedzenia, voľná deformácia.

Definovanie SDF objektu si predstavte následovne. Postavte sa pár metrov od auta a od svojej pozície ťahajte špagát ku kľúčovým bodom toho auta. Auto je teda definované ako tvar, ktorý vytyčujú v sústave súradníc tie špagátiky /vektor, smer, dĺžka/. Zmena tvaru = zmena parametrov špagáta. Jednoduché. Ľahko odskočim, lebo úžasným vedľajším produktom tejto techniky je aj to, že vlastne zároveň robíte primárny raytracing, tiene ambientnej oklúzie máte "zadarmo". Naspäť ku autu. Čím viac bodov ťaháte, tým lepšie rozlíšenie dostanete. A sme doma. Necháme neurálnu sieť interpolovať/rekonštruovať tie SDF /NeuralSDF/ body medzi sebou použitím implicitných plôch a uvidíme čo sa stane. Stane sa to, že v pár kilobajtoch dát získavate model s takmer nekonečnou detailnosťou a kontinuálnou tvorbou LOD /ContinuousLOD/ subverzii modelu. Aby tých dát pre výpočty v neurálnej sieti nebolo naraz príliš veľa, tak sa použije 3D verzia dobre známeho "2D tile based" delenia priestoru s názvom "sparse octree traversal" - SOT. 

SONY a MS podopiera PC, čo ťahá celý vývoj AI na svojich vetchých nôžkach

Tensor jednotky v budúcnosti teda použijeme na nový typ plne interaktívnej, parametrickej 3D geometrie. Na rekonštrukciu 2D obrazu do želaného rozlíšenie. Na hernú AI, animáciu a fyziku. Grafická karta - GPU prejde v ďalších rokoch obrovskými zmenami a uvidíme ako sa tomu prispôsobí CPU, aby nedošlo ku zbytočnej redundancii, duplicite výpočetných kapacít. V nasledujúcich rokov, teda pôjde PC vývoj rýchlo týmto smerom a behom dvoch generácií konzol /PS5, PS6/ by sme sa mali dostať ku ustálenej verzii niečoho, čo si dnes určite neviete predstaviť, ale bude to definitívne level Matrix a budú v tom už aj vládne investície a dostane sa to do ústavy. Taká zmena nás čaká. Moje otrepané brepty, že to bude stáť viac peňazí ako čierny obchod s drogami už nebudem opakovať. Prachy, nové pracovné priležitosti, nové závislosti, úplne nová dynamika v ekonomike, spoločnosti, kultúre. To hlavne pre tých, čo zažili rustikálne časy bez internetu, mobilov, telku s dvoma kanálmi, benzínové motory s karburátormi bez katalyzátoru.

No comments:

Post a Comment