Megint a Oxide Games ügyködik a multi-GPU-s forradalmon

A cég, amelynek sikerült egy Radeont és egy GeForce-ot együttműködésre bírni, most egy még nagyobb ötlettel állt elő.

A Stardock és az Oxide Games még a DirectX 12 megjelenése után adta ki az Ashes of the Singularity című játék tesztprogrammal ellátott előzetesét, amely a megjelenés után nem sokkal később kapott egy forradalmi multi-GPU-s módot. A Microsoft új API-jának explicit multiadapter funkcióját kihasználva elsőként, és mindmáig egyedüliként sikerült elérni, hogy egy Radeon és egy GeForce dolgozzon a képszámításon. Ráadásul meglepetésre a gyakorlati eredmények is igen kedvezők voltak, tehát nem csak újat, hanem használhatót is alkottak a fejlesztők.

Hirdetés

A Nitrous videojáték-motor fejlesztése azonban nem áll le, és hamarosan elkészül a 2.0-s változat. Ez elsődlegesen a VR-re koncentrál, de az Oxide Games a multi-GPU-s módot is meg akarja reformálni. Az eddig alkalmazott rendszerük ugyanis a gyártók keverésével vagy anélkül is az AFR módot használta, vagyis az egyik GPU a páros, míg a másik a páratlan képkockákat számolta.

Az Oxide Games szerint az AFR amellett, hogy egy működő technológia, vannak hátrányai. Többek között limitált a skálázhatósága, illetve extra késleltetést ad hozzá a képszámításhoz. Sőt, a manapság divatos frame pacing ezt a késleltetést még tovább növeli. Ugyanakkor az AFR mellett szól, hogy nagyon régóta alapvetőnek tekinthető maga az eljárás, aminek hála rendkívül sok tapasztalat gyülemlett fel róla az iparágon belül. Az általános alternatívának tekinthető SFR szintén nem egy jó megoldás, mivel ilyenkor az egyik GPU a kép egyik részét, míg a másik a kép másik részét számolja. Ez ugyan a késleltetés problémáját megoldja, de a skálázhatóság még limitáltabb, és világos, hogy nem ez a jó irány. A harmadik opció a virtuális valóság területén belül terjed, és arról szól, hogy a sztereó 3D-s képszámítás során a két szemnek a két GPU külön számolja a képkockákat. Ez szintén hasznos megoldás, de az Oxide szerint nagyon pazarló, mivel a sztereó 3D-s képszámítás során rengeteg számítást meg lehetne osztani. A cég szerint a fenti opciók helyett van egy jóval jobb alternatíva is. Ráadásul egy olyan alternatíva, amelyre még senki sem gondolt, bár az is igaz, hogy az új rendszer működéséhez speciális leképezőre is szükség van.


[+]

A Nitrous leképezőjében az a különleges, hogy az árnyalás függetleníthető a raszterizálástól, mivel előbbi az objektumtérben valósul meg. Bár ez az első verzióban még nem volt megoldva, de a 2.0-s fejlesztésnél árnyalás aszinkron compute-ban fut a raszterizálással, azaz az egységek és terep árnyalása teljes egészében át van rakva compute shaderre. Ez egyrészt egy GPU-n belül is hatékonyabb munkafolyamatokat biztosít, másrészt innen jön a multi-GPU reformjának ötlete. Ugyanis ilyen struktúrájú feladatkezelés mellett megoldható az, hogy legyen egy elsődleges GPU, amely foglalkozik a raszterizálással, és ennek legyen egy szolgaként működő társa, amely a függetlenített árnyalást számítja.

Az Oxide modelljének előnye, hogy a segédként befogott GPU sosem blokkolja az elsődleges, raszterizálással foglalkozó erőforrást, emellett az árnyalás számítása bármikor megkezdhető, így még a késleltetés tekintetében is kifejezetten kedvező megoldásról van szó. Maga a modell a fenti összes alternatíva problémájára megoldást kínál. Az AFR-hez képest hasonlóan vagy jobban skálázódik, az SFR-hez képest hasonló vagy akár alacsonyabb az elérhető késleltetés, illetve a VR-hez való több GPU-s módnál is hatékonyabb, mivel nem kell semmit sem duplán számolni, vagyis a két szem számára készülő képkockáknál nagyrészt megoszthatók az erőforrások, így gyorsabban lesz eredmény. A megoldás egyetlen hátránya, hogy csak olyan leképezővel működik, ahol az árnyalás az objektumtérben valósul meg, de a Nitrous így működik, tehát az Oxide számára ez nem volt probléma, más stúdiónak viszont az lesz.

Az új modell ráadásul fejleszthető. Egyelőre még csak egy elsődleges és egy szolgaként üzemelő GPU-val működik a rendszer, de igazából csak a számítások elosztásán múlik, hogy mennyi GPU lesz befogva szolgának. Elméletben rettenetesen sok erőforrás alkalmazható, a gyakorlatban viszont nyilván erősen limitálni fog a szoftver manuális vezérlése, illetve az alaplapokon található x16-os PCI Express csatolók száma. Ugyanakkor megfelelő vezérlés mellett 3-5 szolgaként működő GPU nem lehet akadály az elsődleges GPU mellé. Ráadásul ez igaz a VR-re is, amíg ugyanis az aktuális két szemre koncentráló két GPU-s VR módnál a szemek száma korlátozza a GPU-k számát, addig itt semmi gond nem lehet a kettőnél több GPU-ból sem. Ahogy a rendszerbe kerülnek az extra erőforrások, úgy nő a sebesség és közben csökken a késleltetés. Emiatt is lépdel a Nitrous 2.0 a VR piaca felé, ugyanis ennek a  videojáték-motornak az aktuális képességeivel jelenleg semmi nem tudja felvenni a versenyt, és addig minden VR-re koncentráló rendszer általános sebesség hátrányban lesz, amíg a felhasznált leképezőt nem alakítják át az objektumtérben való árnyalásra. Ez akár éveket is igénybe vehet, mivel egy ilyen átállást könnyebb elhatározni, mint megcsinálni.

Előzmények