Hirdetés

A Starfield memóriamenedzsmentjétől szenvedhetnek az Arc VGA-k

Az Intel GPU-i nagyon nem szeretik a kis adatmennyiségre tervezett rendszert, így tömbösíteni kell a tranzakciókat.

A Starfield szempontjából a napokban a figyelem középpontjába kerültek az Intel Arc VGA-i, ezen belül is az Arc A770-es, amelyet egyelőre nem tart elég jónak a Bethesda. A Santa Clara-i óriáscég rohamtempóban készíti is az újabbnál-újabb eszközillesztőket, amelyekkel a játék stabilitási gondjait próbálja menedzselni, de azt nem tagadják, hogy még van munkájuk bőven.

Az ok szempontjából azonban még mindig nem tudni semmit, így utánakérdeztünk, hogy mi az, amitől a Starfield annyira más, hogy ilyen kellemetlenségeket okozzon. Információink szerint a játék nagyon memóriagyilkos, de nem a szó legszorosabb értelmében, mert a beépített memóriamenedzsment egyben nagyon kíméletesen is bánik a rendelkezésre álló RAM-mal és VRAM-mal. Ez látszik is a tesztekből, a VRAM terhelését tekintve 8 GB-tal eléggé elvan a program, extrém ritka az a helyzet, amikor egy picivel többet igényel.

Az utóbbi időben nem ezt szoktuk meg, hiszen sokkal több olyan játék jelent meg, amely 16 GB, vagy akár több VRAM-ot is használt, tehát ilyen szempontból különleges, amit a Starfield csinál, és ennek az oka a memóriamenedzsmentben keresendő. A VRAM allokálása szempontjából az alkalmazás nagyon egyedi dolgokra épít. A normál, DirectX 12 API-ban meghatározott erőforrás-allokáció mellett a rendszer alkalmaz virtuális allokációt, illetve defragmentálást is.

A virtuális allokáció arra szolgál, hogy hatékonyan lehessen menedzselni a leírókat, így egy nagy puffer allokációját több kisebb részre lehet virtuálisan osztani. Technikailag ez nem számít az API-n belül valós allokációnak, de nyomon követhetővé teszi a létrehozott virtuális blokkokat. Ezek a blokkok viszonylag kicsik, és ahhoz, hogy ne legyen idővel nagyon fragmentált a VRAM, a rendszer időközönként defragmentál, hogy a még használt vagy valószínűleg használandó blokkokat egymásra tolja, egy részletben elérhetővé téve a még szabad memóriaterületeket.

A koncepció rendkívül eredményes, mert gyakorlatilag ezzel a módszerrel drasztikusan csökkenthető az erőforrások tekintetében a VRAM lefoglalása, és ezért igényel csak 8 GB-nyi kapacitást a játék. Úgy tudjuk, hogy klasszikus, kevésbé bonyolult memóriamenedzsmenttel 14-18 GB-ra is szükség lenne.

Van azonban ennek a konstrukciónak egy hátránya is. A memóriakapacitással ugyan kíméletesen bánik, de nagy számú, kis adatmennyiséggel dolgozó memóriamásolás is keletkezik. Ezzel normál esetben egy dedikált GPU-nak nincs gondja, mert mindig is egy szűkös buszon keresztül volt csatlakoztatva a host CPU-hoz, tehát a működést tekintve azért fontos tényező, hogy a kis adatmennyiségeken történő tranzakciók valamennyire hatékonyak legyenek.

Az Intel Arc sorozata egy nagyon speciális eset, ugyanis ez is szűkös buszon keresztül van bekötve, de a műkötést tekintve inkább hasonlít egy integrált grafikus vezérlőhöz, mint egy klasszikus dedikálthoz. Ezért nagyon fontos ennél a hardvernél a Resizable BAR megléte, mert nem igazán bírja a kis adatmennyiséggel dolgozó memóriamásolásokat, sokkal inkább a nagy adatmennyiségeken történő tranzakciókra van kigyúrva. A Starfield, kényszerűen kis adatmennyiségre optimalizált memóriamenedzsmentje ilyen helyzetben okozhat galibát, mert az Intel számára nyilván fontos a teljesítmény, így megpróbálják annyira tömbösíteni a tranzakciókat, amennyire csak lehet, de eközben számolni kell azzal, hogy a program meg nem ezt várja.

Ez egy kifejezetten nehéz helyzet, mivel ha nincs tömbösítés, akkor az Arc VGA-k teljesítménye elég rossz lesz, konkrétan annyira, hogy tényleg nem sokra lehet majd menni az Arc A770 tempójával. Tömbösítve viszont olyan kellemetlenségekkel kell küzdeni, mint a hosszú töltési idők, illetve a nem optimális programfuttatás a potenciális alignálási gondok miatt. Valószínűleg van valami arany középút az optimalizálást tekintve, ami működésben és sebességben is elfogadható, de azt meg kell találni. Itt megjegyzendő, hogy a Starfield eleve küzd némi alignálási problémával a memóriaallokálást tekintve, és ezen eleve nehéz úrrá lenni a meghajtó szintjén, hát még akkor, ha a tömbösítést is belevesszük.

Hosszabb távon az Intel amúgy is javítani fog az alaparchitektúrán ilyen szempontból, mert ezek konkrétan dedikált GPU-k, így egyáltalán nem jó, ha IGP-szerűen viselkednek, már csak azért sem, mert nincs közvetlenül mellette a rendszermemória. Első körben ez még elmegy, mert valószínűleg szűkös volt az idő, és le kellett tenni valamit az asztalra, de a következő generációs dizájnoknál meg kell oldani a hatékony, kis adatmennyiségeken történő tranzakciókat is.

Nagy kérdés még, hogy a Starfield memóriamenedzsmentje mennyire lesz ragadós példa. Az egyértelműen látszik, hogy nagyon is lehet spórolni a VRAM-mal, ha megfelelő allokációs stratégia van alkalmazva. Ez eddig is nyilvánvaló volt, pusztán a gyakorlati megvalósítás hiányzott. A rendszer viszont nagyon bonyolult, így nem biztos, hogy annyira sokan bevállalnának hasonló konstrukciót, de tekintve azt, hogy még sokaknak 8 GB-os VGA-ja van, kifejezetten érdemes elgondolkodni rajta.

Azóta történt

Előzmények

Hirdetés