A gépi tanulásra és a shaderek fordítására tesz fel mindent a DirectX

A Microsoft részletezte, hogy merre fejlődik jelenleg az API, és ennek a vezéráldozata a kooperatív vektor lesz.

A Microsoft az idei GDC-n nem pihen, ugyanis az új Xbox és a DirectStorage 1.4 után most a DirectX 12 készülő újításairól beszéltek. Ezek két nagy területet fednek le: gépi tanulás és shader fordítás.

A gépi tanulással kezdve rögtön egy érdekes vezéráldozatot láthatunk, ugyanis az előző év elején bejelentett kooperatív vektor nem fog elkészülni az eredeti elképzelés szerint, a helyét pedig a DirectX Linear Algebra veszi át.

A döntés hátterében az húzódik, hogy maga a kooperatív vektor jó volt a nagymértékben párhuzamosítható, pixelszintű következtetési feladatokhoz, de a fejlesztése és tesztelése során rájött a Microsoft, hogy nem minden munkaterhelés illeszkedik ehhez a végrehajtási modellhez. Emiatt inkább masszívan kiegészítették a lehetőségeket, hogy végeredményben elérhetővé tegyék a HLSL nyelven belül a vektor- és mátrixalapú operációk egységes alkalmazását, amelynek hála a fejlesztők közvetlen kontrollt kapnak a shaderekben a matematikai műveletek kezelése, az adatfolyam menedzselése, illetve a tényleges végrehajtás felett.

A fenti újítás mellé érkezik a DirectX Compute Graph Compiler is, ami egy kritikus gondot old meg. A gépi tanulás grafikai alkalmazása amiatt nem egyszerű, mert az eredeti végrehajtási modell arra épült, hogy a GPU relatíve kicsi izolált feladatokon dolgozhasson. Ebbe technikailag beleerőszakolható a gépi tanulás, de közel sem lesz optimális a feldolgozás, mert a jellemző lokális optimalizációval egyáltalán nem lesz kedvező az adatmozgás.

A DirectX Compute Graph Compiler célja, hogy ezeket a korlátokat a számítási gráf szintjén kezelje, vagyis teljes modellek illeszthetők majd be a videojáték-motorokba, méghozzá anélkül, hogy át kellene írni a shadereket. Az egész koncepció illeszkedik a gépi tanulás tipikus feldolgozási formáihoz, mivel a modellek modern keretrendszerekből érkeznek.

A DirectX Linear Algebra és DirectX Compute Graph Compiler jól kiegészíti majd egymást, mivel előbbi jól alkalmazható majd a kisebb, beágyazott feladatokhoz, míg utóbbi optimális a nagyobb modellekhez. Ezek várhatóan a shader modell 6.10-ben érkeznek, arról viszont még nincs információ, hogy mikor lesznek véglegesítve. Mindenesetre a mai modern, mátrixfeldolgozóval rendelkező grafikus vezérlők mindkettőt képesek támogatni.

A shader fordítóra rátérve az Advanced Shader Delivery kapott fókuszt, amely az Xbox ROG Ally és Ally X eszközökön már elérhető. A Microsoft célja innen az, hogy a shader fordítással kapcsolatos gondokat PC-n is megoldja, eltüntetve az első programindítás lassúságát vagy éppen az akadozó játékmenetet.

Annak érdekében, hogy az Advanced Shader Delivery általánosan használható technika legyen, az 1.619-es Agility SDK bevezeti az alkalmazásregisztrációs és a statisztikai API-t. Előbbi azért felel, hogy a fejlesztők által generált SODB fájl, Xbox Partner Centerbe való benyújtásakor a játék azonosítható legyen, míg utóbbival ellenőrizhető, hogy az adott PSDB állomány mennyire jól működik egy konkrét hardverkonfiguráción.

Az Advanced Shader Delivery persze nem áll meg az aktuális fejlettségi szinten, ugyanis már készül hozzá az úgynevezett Partial Graphics Programs (PGP) kiegészítés. Ez egy még fennálló problémára reagál, ugyanis az egyes játékokban annyi PSO található, hogy a legtöbb videojáték-motor nem is képes ezeket felsorolni. Emiatt a sok PSO-t tartalmazó címek előfordítása rengeteg időt venne igénybe, figyelembe véve azt is, hogy mennyi eltérő hardverkonfigurációra kell majd kiadni a megfelelő állományokat. Ennek kezelésére szolgál a PGP, ami a futószalagkreálást két lépésre bontja. Először készülnek részleges, előrasterizációs és pixel shader programok, amelyek a különböző grafikai futószalagok közös állapotát tartalmazzák, majd ezek összekapcsolhatók más állapotokkal. Ilyen módon a fejlesztők kedvezőbb terepet kapnak az Advanced Shader Delivery használatára akkor is, ha a játék tele van PSO-val.

Az új shader fordítási lehetőséget a gyártók még idén támogatni fogják a meghajtók oldalán, de ugye előbb meg kell várni, hogy a Microsoft általánosan is kihasználhatóvá tegye.

Előzmények