A DLSS dióhéjban
Az NVIDIA még a GeForce RTX sorozat bemutatásakor beszélt először a DLSS-ről, vagyis a Deep Learning Super-Sampling nevű eljárásról. Ez valójában egy nagyon speciális élsimítás, ami a ma megszokott megoldásokkal ellentétben nem igazán a számítási teljesítményre, hanem az előzetes adatok megfelelő felhasználására koncentrál.
Hirdetés
Ha összegezni akarjuk röviden a lényegét, akkor prediktív szupermintavételezésről beszélhetünk leginkább. Utóbbi réginek tekinthető élsimítási eljárás, amit korábban SSAA néven emlegettünk, de bizonyos programokban és meghajtókban még ma is elérhető. A lényege igazából az, hogy minden egyes pixelt többször számol ki, de az eredeti pixelpozícióhoz képest mindig egy kicsit eltolva, majd összemossa a képet. A megoldás amolyan "mindent erőből" elvet alkalmaz, így teljesítményigénye óriási, de képminősége is félelmetesen jó, hiszen például a négyszeres mintavétel alkalmazása gyakorlatilag felér azzal, hogy a Full HD-s képet négyszer számolja ki, vagyis egy kvázi 4K-s eredményt generál. Azért csak kvázi, mert hagyományos értelemben a felbontás nem lesz natív, viszont a pixelpozíciók az átfedés szempontjából annyira változnak, hogy igazából a végeredmény eléggé közel lehet a natív 4K-hoz, ha az adatok összemosása helyett inkább felskálázná a képet egy utófeldolgozásra vonatkozó lépcső. Az egyetlen probléma az SSAA-val az, hogy nyilván a többszörös mintavétel miatt a feldolgozással járó munka is többszörös lesz, vagyis effektíve egy Full HD-s képet négyszeres SSAA-val számolni hozzávetőleg akkora terhelés, mintha natívan 4K-s kép születne a jelenetről.
Az NVIDIA a DLSS-sel egy olyan koncepciót próbál bevezetni, amely elméletben a kép kritikus részeit képes kezelni, ezeken a felületeken látszik ugyanis igazán az aliasing probléma. A DLSS azonban a legtöbb élsimításhoz képest egészen más, ugyanis amíg az ismert vagy kevésbé ismert eljárások gyakorlatilag olyan algoritmusok, amelyeket futtatva a hardver valamilyen módon kezeli a "recés éleket", addig a DLSS esetében itt nem a grafikus vezérlőn múlik a minőség. Ez furcsán hangzik, hiszen a számítás mégis az adott PC-ben található GPU-n fut le, de a munka oroszlánrésze a gépi tanulás tréning szakaszától függ.
A tréning az a feldolgozási folyamat, amely végeredményben meghatározza a DLSS minőségét. Ilyenkor a fejlesztők a megfelelő környezeten keresztül tréningelnek egy, az adott játékukhoz használható neuronhálót. Itt minden alkalmazáshoz másik szükséges, továbbá ahogy új tartalom kerül be, rögtön újra is kell kezdeni a tréninget, mivel a lementett neuronháló alapján lesz képes eldönteni a hardver, hogy a kép mely területeit kell máshogy, ezen belül is megfelelően kezelni.
A neuronhálót az NVIDIA az eszközillesztő NGX moduljában szállítja, és természetesen a partnereknek lehetőségük van gépidőt bérelni a cég Saturn V szuperszámítógépén. A gépi tanulás tréning szakaszának általános jellegzetessége, hogy minél tovább fut, annál jobb lehet az elkészülő neuronháló hatásfoka, de ilyenkor a gépidő megnő, vagyis drágul az egész procedúra. Az igények lefedésére az NVIDIA két lehetőséget kínál. Az egyik opció rengeteg referenciaképet készíteni a játék összes tartalmával, méghozzá 64x-es szupermintavétel mellett, és ugyanezeknek jeleneteknek szükség van a normál felbontású referenciáira is. A tréning ezek alapján történik, vagyis lényegében egy olyan neuronháló megalkotása a cél, amely a normál referenciaképekből képes a 64x-es szupermintavétel eredményéhez közeli kimeneteket generálni. Emellett a rendszer elméletben védekezik a temporális élsimításra jellemző nem kívánt jelenségek ellen is.
Van egy másik lehetőség, mégpedig a DLSS 2X, amelynél a bemeneti referenciaminőség nem a 64x-es szupermintavétel, hanem szimplán a célzott felbontás, viszont ebből a hálózat megpróbál 64x-es szupermintavételű képet generálni, és innen a folyamat már ugyanaz, mint az előző bekezdésben. Az egész lényege az, hogy a tréning szakasz viszonylag drága, és itt elsősorban az anyagiakra kell gondolni, hiszen a tréninget végző számítógépek működtetése bizony nem kevés energiát igényel. A fejlesztők pedig nem szívesen költenek túl sok pénzt olyan technológiára, amelyet a célpiac vásárlóbázisának csak a töredéke tud használni. Ez az a kritikus pont, ahol a DLSS problémákba ütközhet. Ha van kellő pénz, idő és akarat a jó minőségű neuronháló elkészítésére, akkor a végeredmény jó lehet, ellenkező esetben viszont nem fog jól működni az eljárás. Mindez független attól, hogy a szükséges hardver megvan a végfelhasználók gépében, a DLSS minősége nem ezen múlik, hanem a tréning során dől el.
További adalék, hogy a legfrissebb adatok szerint az NVIDIA nem használ teljesen konvolúciós hálót, vagyis nem elég egy megfelelően nagy felbontásra tréningelni, hanem szépen minden egyes célfelbontásra, illetve célbeállításra fel kell készíteni az NGX modulban szállított végeredményt, ami tényleg nagyon időigényessé teheti az egész munkafolyamatot. Emiatt van az, hogy a DLSS elérhetősége a mai játékokban felbontásfüggő. Szintén lényeges kiemelni, hogy a DLSS aktiválása gyakorlatilag azt is jelenti, hogy a valós számítás csak a kiválasztott felbontás 75%-ával valósul meg.
A cikk még nem ért véget, kérlek, lapozz!