Szerző: Gálffy Csaba

2013. szeptember 27. 12:50

AMD-puccs: alacsony szinten programozható GPU-k

Egyesek a GPU-piac szétszakításáról beszélnek, mások forradalomként üdvözlik az AMD lépését. Az alacsony szintű API bejelentésével lezárult egy időszak a PC-s játékok történetében, hogy hatása pozitív, vagy inkább negatív lesz, az idő fogja eldönteni.

Gyakorlatilag ráborította az asztalt a PC-s játékpiacra az AMD tegnapi váratlan bejelentése. A Mantle API bevezetésével a gyártó felrúgta az iparág eddig hallgatólagos megállapodását és gyártóspecifikus programozási interfészt készített saját PC-s grafikus processzoraihoz. Az AMD természetesen továbbra is támogatja az iparági szabványnak számító OpenGL és DirectX API-kat, nem ezek helyett, hanem ezek mellett jelenik meg az új, alacsony szintű hozzáférést nyújtó Mantle a GCN (graphics core next) sorozatú processzoraihoz. A spekulációk szerint a Mantle API az Xbox One grafikus interfészének gyakorlatilag teljes portolása PC-re, ezt az AMD egyelőre nem erősítette meg, de közleményében finoman utalt rá.

Áthozni a konzolos előnyt

Az AMD kizárólagos szállítója az összes következő generációs konzolnak, azonos architektúrára épülő CPU-GPU lapka került az Xbox One-ba és a PlayStation 4-be is. Ez azt jelenti, hogy a következő néhány évben számtalan olyan játék jelenik meg, amelyek a konzolokban található GCN-architektúrára optimalizáltak, az AMD által a Sony és a Microsoft számára fejlesztett alacsony szintű API-t programozva. A PC-s portoláshoz szükséges, hogy a grafikus alrendszer az alacsony helyett magas szintű, nem architektúra-specifikus API-t használjon, ezzel számottevő teljesítményhátrány épül be.

Szoftvertesztelés: ütött az óra

A tesztelői szakmát rengeteg friss hatás éri, kifejezetten nehezített pálya ez mostanság.

Szoftvertesztelés: ütött az óra A tesztelői szakmát rengeteg friss hatás éri, kifejezetten nehezített pálya ez mostanság.

Az alacsony szintű programozás ugyanis a fejlesztő és a felhasználó számára is számtalan előnyt hordoz, röviden összefoglalva: azonos hardveren jóval magasabb vizuális élmény (grafikai minőség és/vagy frissítési gyakoriság) érhető el. A fejlesztő ugyanis a hardver egyedi specifikációinak ismeretében a kód futását részleteiben is optimalizálhatja, illetve kihasználja az architektúra egyedi képességeit is. Az AMD GCN mikroarchitektúrája és grafikus utasításkészlete azonban megegyezik a két konzol és a PC-s GPU-k között, így a konzolokra optimalizált játékmotorok használhatják ezt az optimalizált módot az újabb AMD-s hardvereken. Az inteles és nvidiás, valamint régebbi AMD-s GPU-khoz szükséges lesz az OpenGL vagy Direct3D-s verzió elkészítése, ez azonban lassabb lesz (amúgy azonos nyers teljesítményű hardveren).

A rendszer ugyanakkor fordítva nem nagyon működik. Ahogy John Carmack legendás játékfejlesztő egy tweetje megjegyezte, a Mantle várhatóan minimális teljesítménybeli különbséget hoz azon játékok számára, amelyek Direct3D-ben készültek és később implementálják a Mantle-t. Sokkal nagyobb azonban a különbség a "konzol-first" játékoknál, amelyeket kifejezetten a Mantle API-ra írtak, ezek PC-s környezetben az AMD hardverén számottevően gyorsabban és/vagy szebben futhatnak, mint a versenytársak termékein.

Carmack másik tweetje érdekes hipotézist vet fel: azzal, hogy a Mantle API nem csak a konzolok esetében érhető el, hanem potenciálisan a Valve SteamOS-ét futtató nyílt gépeken is, az AMD pillanatok alatt saját maga ellen hangolhatja a Sony-t és a Microsoftot. A közös x86-os architektúra mellett a közös API ugyanis azt jelenti, hogy a korábbinál jóval egyszerűbben lehet SteamOS-re portolni játékokat, a Windows-exkluzív Direct3D dominanciáját egy ilyen lépés hirtelen szertefoszlathatja és egy csapásra releváns tényezővé emelné a Valve platformját.

Nem véletlenül létezik iparági szabvány - kontra

A modern PC-s GPU-k egészen különböző utasítás- és mikroarchitektúrát használnak, ezek között átjárás natív kód szintjén egyáltalán nincs. Egyrészt különböző a három nagy gyártó (AMD, Intel, NVIDIA) megközelítése is, de azonos gyártó különböző GPU-családjai között is hatalmas szakadékok vannak architekturális szempontból. Az igen színes piacot a szabványos magas szintű API-k kötik össze, a Microsoft-féle Direct3D és a szabad szoftveres gyökerekkel rendelkező OpenGL. A grafikus API-k és az architektúra közötti rést a gyártók meghajtói hidalják át, amelyek futás közben fordítják gépi kódra a grafikus utasításokat. A sokszoros áttétel (játék-API-meghajtó-hardver) miatt elvesznek a GPU-k fejlett, ám az API-n keresztül nem hívható képességei, a rétegek pedig a hatékonyságot is jelentősen csökkentik.

Ahogy már említettük, ezek a közös API-k komoly limitációt jelentenek mind funkcionalitást, mind teljesítményt tekintve, egy fontos előnyük azonban van: létrehoznak egy egységes, viszonylag könnyen megcélozható piacot, amelyre a fejlesztők lőhetnek. A közös API-k révén válik lehetségessé, hogy sokéves játékok futnak a modern GPU-kon, illetve egyetlen API megcélzásával eszközök százmilliói legyenek megcélozhatóak. Számos médium azonnal félreverte a harangot a PC-s játékokat féltve: a szakadár AMD megbonthatja az egységes piacot, ezzel megnövelve a fejlesztők költségeit és lecsökkentve az egységes fejlesztéssel megcélozható piac nagyságát.

Az igazság ezzel szemben az, hogy a teljes játékipar eddig is fragmentált volt az API-kat tekintve: a konzolok mindig külön utat képviseltek, ennek ellenére a PC-s játékipar nem omlott össze, nem száradt el és az innovációs ütemét is sikerrel őrizte meg. A konzol-PC átmenetre pedig viszonylag gyorsan megszületett a megoldás a sokplatformos játékmotorok formájában, amelyek használatával viszonylag könnyen lehet egyszerre Sony vagy Microsoft konzolra illetve PC-re fejleszteni. Ebben a megközelítésben az API által végzett absztrakciót a játékmotor is képes elvégezni, sokkal hatékonyabban. A Mantle várhatóan a jövőben e motorok számára lesz egy új lehetőség - mindenki más számára pedig továbbra is elérhető Direct3D az AMD hardverein is.

A Mantle támogatását már be is jelentette az EA DICE, a Frostbite motor és a Battlefield sorozat fejlesztője, az engine következő, 3-as generációja PC-s környezetben kompatibilis AMD hardvert érzékelve natív futtatásra fog váltani. Az októberben megjelenő Battlefield 4 mellett ezt a motort használja a Need for Speed következő kiadása, a Star Wars: Battlefront és a Mirror's Edge előzményjátéka is. A sor a Dragon Age: Inquisition és az új Mass Effect játékokkal folytatódik - a Mantle mellett tehát már most igen komoly támogatás sorakozott fel, és ez csupán egyetlen motor.

Csatlakozz partnerprogramunkhoz, mi pedig ajánlunk ügyfeleinknek, ezenkívül egyedi kedvezményeket is adunk webhosting csomagjainkra. Próbáld ki ingyenesen az Aruba Cloud-ot, most 40 ezer forint értékű vouchert adunk!

a címlapról