Meghozta az RTXMG és RTXNTC fejlesztőkörnyezetét az NVIDIA

A címben említett SDK-k közül az első a sugárkövetéshez, míg a második a textúrák tömörítéséhez való.

Az NVIDIA az új GeForce RTX 50-es generációval párhuzamosan jelentette be a Mega Geometry és Neural Texture Compression technikákat, amelyekről a GeForce RTX 5080-as VGA-ról írt cikkben bővebben értekeztünk.

A vállalat most kiadta az első fejlesztőkörnyezeteket az említett újdonságokra vonatkozóan, de fontos, hogy ezek még nem véglegesek, így csak alapos megfontolás után érdemes ténylegesen elérhető szoftverben szállítani. Később nyilván majd lesznek 1.0-s, stabil SDK kiadások is.

Hirdetés

Az RTXMG a Mega Geometry alapjait fekteti le, és ez a technika jelenleg csak DirectX Raytracing mellett alkalmazható, ezen belül is kötelező a DXR 1.1-es verziója, az eredeti 1.0-s nem jó hozzá. Mindezek mellett a szükséges shaderekhez shader Model 6.6-ot támogató grafikus vezérlő szükséges, továbbá az NVIDIA legalább az 570-es sorozatú GeForce drivereket ajánlja, elsődlegesen azért, mert a szükséges NVAPI modulok ezekkel működnek együtt.

A hardvereket tekintve Turing, Ampere, Ada Lovelace és Blackwell architektúrára van támogatás, vagyis a GeForce RTX 20, 30, 40 és 50 sorozatra, viszont a VRAM szempontjából ajánlott legalább 10 GB.

A Mega Geometry elvi működését tekintve nem ismételnénk meg a fentebb belinkelt cikkben leírtakat. Sokkal inkább a gyakorlatra érdemes összpontosítani, ugyanis a mintaprogramon látszik, hogy a gyorsítóstruktúra felépítésének ideje jelentősen csökkenhet, akár a tizedére, viszont a sugarak követésével járó munka, hardvertől függően némileg lassulhat, nagyjából 30-40%-ot. Utóbbi elvileg azért van, mert a Blackwell architektúra előtti dizájnok esetében még nincs olyan részegység beépítve, amely a háromszögklasztereken való ütközésvizsgálatot elvégezné, így ehhez a rendszer ALU kapacitást használ fel, vagyis shaderrel segíti ezt a folyamatot. A Blackwell generáció esetében viszont erre nincs szükség, így ezt a lassulást nem kell benyelni.

Az RTXNTC már a neurális shaderek egyik felhasználási módját prezentálja, konkrétan a neurális textúratömörítést. Ehhez majd érkezik szabványos támogatás is a DirectX 12-n belül, konkrétan a kooperatív vektor formájában, de addig egy előzetes kód áll rendelkezésre, ami nagyrészt a tesztelést szolgálja, így végleges programon belül a szállítását még nem javasolja az NVIDIA.

Az RTXNTC papíron működőképes akármilyen, minimum shader modell 6-ot támogató grafikus vezérlővel, de ezek sebessége eltérő lehet. A vállalat szerint a mintavételre vonatkozó számítások a GeForce sorozaton belül az RTX 40-es és 50-es VGA-kkal a gyorsabbak.

A neurális textúratömörítés nagy előnye, hogy rendkívüli mértékben képes csökkenteni a textúrák helyigényét a VRAM-on belül. Akár 90%-os lehet az előny, de itt kiemelendő, hogy maga a rendszer összecsomagolva tömöríti a textúrákat. Ez a mellékelt példaprogramban logikus is, hiszen garantált, hogy a szállított tartalmat együtt fogja használni az alkalmazás, de egy játékban azért jóval bonyolultabb a helyzet. Egy komplexebb program során azért nagyon tipikus, hogy bizonyos anyagok több textúrát is megosztanak, sőt, ez egyre inkább terjedőben van, így a csomagolást végző eszköznek majd meg kell mondani, hogy mely textúrákat tömörítse egybe. Önmagában ezzel nincs is igazán gond, csak ez a fajta működés egy tényleges játékban azért nem fogja olyan jelentősen csökkenteni a memóriaigényt, mint a példaprogramban, hiszen bizonyos textúrák többször is szállítva lesznek az egyes összecsomagolt tömörített állományokban.

Végeredményben ugyanakkor biztos, hogy csökken a textúrák memóriaigénye, tehát az előrelépés látható lesz így is, csak függ az adott program komplexitásától. Az előny mértéke tehát leginkább 40-80% között lehet. Van azonban egy kellemetlen hatása is az RTXNTC-nek a hardverekre nézve, ugyanis nagyon sok helyet igényelnek az önálló textúránként szükséges adatszerkezetek, amelyek egyenként 1536 kB-osak. Erre a játékokban majd kiemelten figyelni kell, ugyanis ekkora adatszerkezetek csak az GPU-k utolsó szintű gyorsítótárában lehet elhelyezni, miközben egy komplex programban azért nagyon-nagyon sok textúra feldolgozása történik párhuzamosan. Ez normál textúratömörítés mellett nem is gond, mert arra rá vannak tervezve a mai GPU-k, de neurális textúratömörítéssel nagyon korlátozott lesz az utolsó szintű gyorsítótárba helyezhető adatszerkezetek száma, miközben utóbbi részegységet ez konkrétan telíti is, tehát semmi másra nem használható a továbbiakban.

Egy játékban tehát célirányosan kell majd mindezt menedzselni, ugyanis a VRAM-on belül a helyigény ugyan jelentősen csökkenthető, de annak az árán, hogy az utolsó szintű gyorsítótár terhelése a jelenlegi szint sokszázszorosára nő, vagyis nagymértékben lassulnak majd az egyéb grafikai számítások.

A fenti újítások közül az RTXMG annyira nem nehéz beépíteni egy mai játékba, nem igényli a szállított geometria módosítását, de azért extra shaderekre szükség van, illetve nyilván szem előtt tartandó limit, hogy kötelezővé teszi a DXR 1.1-et. Utóbbi nem baj, de nem mindenhova jó az inline raytracing. Az RTXNTC jóval nehezebb falat, több buktatója van, és nagyon sok munkaórát igényel majd a textúrák összecsomagolásának optimalizálása, nem beszélve az utolsó szintű gyorsítótár terhelésének problémájáról, amit kiemelten nehéz lesz kezelni. Emiatt rövidebb távon kisebb az esély a neurális textúratömörítés terjedésére, viszont az irány így is megfontolandó, és a következő generációban jöhetnek ehhez tervezett, optimális esetben több száz megabájtos utolsó szintű gyorsítótárral rendelkező GPU-k, ami meglökheti az újítás szekerét.

Előzmények

Hirdetés