A Microsoft és a Sony is a GPGPU-s AI felé menetel

Ha egy játékost megkérdezünk arról, hogy mi fejlődött a legkevésbé az elmúlt években, akkor nagy valószínűséggel a mesterséges intelligencia lesz rá a válasz. Bár az erre vonatkozó kutatások nem álltak le, a nagyobb teljesítmény egyértelműen igény. Ugyanakkor annak ellenére, hogy jönnek az újabbnál-újabb lapkák a piacra, a mesterséges intelligenciára szánt felhasználóható processzoridő folyamatosan csökken. Bár az évről-évre történő optimalizálással ezt túléltük, és mondhatni szinten tartottuk a játékokba épített AI minőségét, de a javulás lehetőségéről már szinte lemondtunk.

A probléma ma már nem csak abban keresendő, hogy a grafikus meghajtók az elavuló API-kkal egyre több processzoridőt vesznek el az alkalmazásoktól, hanem az is, hogy az elmúlt fél évtizedben kiadott processzorok az elődökhöz képest alig gyorsultak. Éppen ezért a mesterséges intelligencia szempontjából már olyan kutatások is készültek, amelyek speciális célhardverre tennék ki a számításokat. Ez biztosan radikális előrelépést hozna, de először szükség lenne a célhardverre, annak el kellene terjednie és utána lehetne arról beszélni, hogy az erejét kihasználják. Viszont a mesterséges intelligencia nem skálázható eljárás, tehát ha lesz is valaha célhardver rá, akkor gyakorlatilag a használata kötelező lesz, mivel a játékmenetnek ezt a részét nem lehet opcionálisan butítani.

Jelenleg ott tartunk, hogy egyre kevesebb cég vár a csodára. Borzalmasan csekély annak az esélye, hogy a következő években érkező processzorok teljesítménye ugrásszerűen nőjön. Bár az új API-k segítenek a helyzeten, mert rengeteg processzoridő szabadul fel, amit a programok szabadon befoghatnak, de ahhoz, hogy ezen a területen áttörést lehessen elérni más megközelítés kell.

March of the Froblins, az első technikai demonstráció GPGPU-s mesterséges intelligenciával
March of the Froblins, az első technikai demonstráció GPGPU-s mesterséges intelligenciával

A Sony és a Microsoft az új generációs konzolok miatt már egy ideje kutatja a GPGPU-s AI lehetőségét. Ez egy olyan koncepció, ami egyértelműen megfontolandó, mivel számos kutatás készült már erre vonatkozóan az előző évtizedben is. Működő konstrukciók is vannak, így megemlíthető például a March of the Froblins nevű technikai demonstráció, ami a maga kategóriájában nagyon kezdetleges volt, de bizonyította, hogy az irány lehetséges. A legtöbb kutatás azonban megfeneklett a processzor és a grafikus vezérlő közötti lassú összeköttetésnél, illetve a különálló memóriánál, amire viszont az új generációs konzolok már megosztott memóriával kínálnak megoldást. Sőt, a PC-kben is nagyon kedvező lett az elmúlt hónapokban a helyzet, mivel az Intel Broadwell és Skylake, illetve az AMD Kaveri/Godavari és Carrizo kódnevű lapkák is támogatják a megosztott virtuális memóriát. A korábbi, sokszor hardveres akadályok tehát sorra szűnnek meg, így az sem véletlen a kutatások újból erősödnek.

A mai játékokban az útkeresésre legtöbbet használt algoritmus az A*, amely kijelöli a megfelelő utat két pont között. A probléma ezzel annyi, hogy az A*-algoritmus egy útkeresése során jóval lassabb a GPGPU-n, mintha a processzor végezné el a feladatot. A hátrány itt sok dologtól függ, de a lemaradás tényleg sokszoros. az aktuális konzolok esetében akár 20-30-szor is lassabb lehet a GPGPU-s kód. A Sony és a Microsoft ötlete erre vonatkozóan egységesen az, hogy nagyon sok A*-algoritmus is futhat egyszerre. Ezen a ponton a GPGPU-k előnyre tesznek szert, mert a processzorokhoz képest nagyságrendekkel több szálat futtatnak, így végeredményben lehet olyan kódot írni, ahol a GPGPU-s útkeresés már 2-3-szor gyorsabb, mint a CPU-s.

Az A*-algoritmus azonban viszonylag memóriaigényes, vagyis egy ilyen GPGPU-s kódot nem a feldolgozók száma, hanem az elérhető memória mennyisége fog elsődlegesen limitálni. Ez önmagában rossz hír, de valójában mindkét konzolban ott van az aszinkron compute lehetősége, amely a grafikai munka során keletkező üres buborékok kitöltésére megfelelő. Ilyen formában egy A*-algoritmusra épülő GPGPU-s útkereső nagyjából a grafikus vezérlő elérhető erőforrásának a 10-20%-át venné igénybe, és a maradék 80-90% használható továbbra is a grafika számítására. Mivel a legtöbb videojáték-motor még eleve nem optimalizált annyira, hogy az új konzolok grafikus erejének 60-70%-ánál többet hasznosítson, így az aktuális rendszerekben egy GPGPU-s AI kvázi ingyenessé válik, hiszen olyan erőforrásokat fog be, amelyeket a mai programok még nem is használnak.

A jelenlegi adatok szerint a legjobb megoldás a hibrid AI alkalmazása lehet. Ilyenkor a jelenetben szereplő karakterek útkereséséről a főszereplőkre vonatkozóan a CPU gondoskodik, míg a nagy tömegeket mozgathatja az integrált grafikus vezérlő. Mivel a számítások eredményei a megosztott virtuális memóriának hála ugyanoda kerülnek az adatmásolás sem jelent problémák, továbbá mindegyik részegység eléri a másik által kiszámolt adatokat.

Bár a GPGPU-s AI elsődlegesen a konzolon lesz bevetve, valójában a PC szempontjából is reális opció. Már csak azért is, mert egy konzol ilyen formában sokkal könnyedebben fogja mozgatni a tömegeket, illetve a fentebb említett processzorokban ott az IGP, amely a legtöbb játékra használt PC-ben abszolút szabad erőforrás. A programozás szempontjából is meg lesz oldva a helyzet egy újabb SYCL segítségével, amely egy szabványos felületet kínál a fejlesztők számára. A konzolon ez valószínűleg nem lesz elérhető, de ott is egy SYCL-höz hasonló környezettel lehet majd ezekre megoldást találni, tehát a portolhatóság nem lesz akadály, bár nyilván a kódot némileg át kell majd írni. Szintén kedvező, hogy a SYCL-nél egy kódbázisból le lehet fedni a hagyományos processzorokat és a mélyen integrált IGP-vel rendelkező lapkákat.

Arról egyelőre nincs adat, hogy az efféle nyalánkságok mikor kerülnek bevetésre a játékokban. Első körben valószínűleg a pár exkluzív címre lesz korlátozva a Sony és a Microsoft portáján belül, de előbb-utóbb eljut a PC-re is.

Azóta történt

Előzmények

Hirdetés