Hirdetés

Memóriaelemzővel készül a fejlesztőknek az AMD

A Radeon Memory Visualizer nevű fejlesztőeszköz végre képes megmutatni, hogy hova vész el a VRAM.

Az explicit API-k alaposan felforgatták a piacot, ma már egyre több videojáték-motor használ DirectX 12-es vagy Vulkan leképezőt, esetleg mindkettőt, hiszen az elavult megoldásokkal szemben ezek számos előnyt kínálnak. Ilyen formában az adott alkalmazás magas szintű logikájára volt szabható egy alacsony szintű leképezőréteg, ami a minimális többletterheléssel és a párhuzamosítható feldolgozással komoly előrelépést biztosított a tempó tekintetében. A fejlesztők azonban nem csak szabadságot kaptak, hanem egy komolyabb hátrányt is a nyakukba vettek, ugyanis az explicit API-khoz fejlesztett alkalmazásnál mindent előre meg kell mondani, ezáltal lekezelni az egyes olyan szituációkat, amelyeket a korábbi API-knál kezelt a meghajtó. Természetesen ez okkal történik, tehát nem egyfajta szándékos nehezítést terveztek a rendszerekbe, ettől viszont még nem lesz könnyebb a fejlesztők élete.

A legnagyobb problémát a memóriamenedzsment okozza, amivel ugyan meg lehet küzdeni, de máig nincsenek igazán jó általános megoldások a problémákra, így a fejlesztők sokszor a gyártók tippjeiből élnek. Ezen segített valamennyit az AMD, amikor a VMA (Vulkan Memory Allocator), illetve később a D3D12MA (DirectX 12 Memory Allocator) függvénykönyvtárakat elkészítette, viszont az efféle általánosabb megoldásokról tudni kell, hogy sok tekintetében hasznosak, a fejlesztők zöme bizonyosan örül az elérhetőségüknek, viszont egyes esetekben annyira teljesítménycentrikus megoldás kell egy videojáték-motorba, hogy a VMA vagy a D3D12MA maximum kiindulási alapként használható fel. Ezzel önmagában nincs semmi gond, az említett függvénykönyvtárak nyílt forráskódúak, tehát szabadon átírhatók, ugyanakkor még mindig nem létezik egy olyan fejlesztőeszköz az explicit API-khoz, amely ténylegesen megmutatná, hogy egy adott memóriamenedzsment esetlegesen rossz hatékonysága miből ered. Enélkül pedig igen nehéz dolgozni, sok esetben maximum csak tippelni lehet a videomemória elméletben kiszámoltnál nagyobb mértékű felhasználására, vagyis nehéz megállapítani, hogy melyik kódrészlet okozza a problémákat.


[+]

Mivel egy függvénykönyvtár ezekre sosem kínálhat majd optimális megoldást, az AMD egy új fejlesztőeszköz bevezetésén dolgozik, amely majd a Radeon Memory Visualizer nevet kapja. Ez a szoftver tavasszal jelenhet meg, és képes lesz pontosan megmutatni, hogy a memóriamenedzsment miképp működik magán a hardveren, illetve effektíve a teljes rendszeren, így az egyes gondok gyökere visszakereshetővé válik. Az alkalmazásnak a tesztekben is komoly haszna lehet, hiszen explicit API-k mellett is képes hajszálpontosan meghatározni, hogy egy képkocka számításához mennyi memória lett lefoglalva a grafikus vezérlő fedélzeti tárán belül. Erre az elterjedtebb mérőprogramok nem igazán alkalmasak, bár visszaírnak egy számot, de annak közel sem biztos, hogy köze van a valósághoz. Ebből a szempontból messze a Windows 10 új verzióinak beépített mérője a legpontosabb, de nyilván a fejlesztőknek sokkal többre van szükségük.

A Radeon Memory Visualizer csak Radeonokon lesz működőképes, de a funkciója miatt más hardverek is hasznot húzhatnak belőle, elvégre a memóriamenedzsmentet érintő tipikus problémák nem gyártóspecifikusak. Vannak persze kivételek, elvégre az AMD, az Intel és az NVIDIA is eltérően strukturálja a grafikus rendszerhez kapcsolódó memóriahalmazokat, viszont az igazán komoly teljesítményvesztést okozó hibák jellemzően a memória nem megfelelő allokációjából, illetve a halmazok nem optimális lefoglalásából erednek, amelyeknek a javítása nagyon sokszor minden gyártón ugyanolyan előnnyel jár. A gondot mindig is az jelentette, hogy mi vezet az adott hibához, és ha ez kiderül, akkor kezelhetővé válik a helyzet. Ugyanakkor megfelelő fejlesztőeszközök nélkül az egyes problémák okai nagyok sokszor nem, vagy csak nagyok nehezen derültek ki. Az utóbbi eset kellemesebbnek hangzik, de valójában nem az, mert sokszor hónapokkal a játék megjelenése után érkezik valamilyen javítás a DirectX 12 vagy Vulkan API-ra írt leképezőhöz, ami egyáltalán nem ideális, és emiatt érkezik a Radeon Memory Visualizer, hogy a hibákat sokkal könnyebb legyen felderíteni.

  • Kapcsolódó cégek:
  • AMD

Előzmények

Hirdetés