2016. szeptember 25., vasárnap

Útvonal

Tesztek » Videokártya rovat

Években mérhető előrelépést kínál a Mantle

Johan Andersson felvázolta a rendszer képességeit – drámai a különbség a szabványos API-khoz viszonyítva.

Miért kellene a piacnak a Mantle?

Az AMD szeptember végén alaposan felkavarta az állóvizet, amikor leleplezték a Mantle API-t, mely a szabványos DirectX és OpenGL közvetett alternatívája lesz, alacsony szintű hozzáférést kínálva a GCN architektúrára épülő Radeon grafikus vezérlőkhöz. A Mantle-nek hála a PC-ben is konzol stílusú hozzáférést kapnak a fejlesztők a hardverhez, továbbá ezt a Battlefield 4, a Thief és a Star Citizen című alkotás biztosan kihasználja majd, de ez még csak a kezdet. Arról azonban nem esett szó, hogy a Mantle konkrétan mit kínál. Persze sejteni lehet, hogy a hardver alacsony szintű elérése hatékonyabb programfuttatást tesz lehetővé, de lassan már mindenki a finom részletekre kíváncsi, amiről az AMD máig hallgatott.

Az APU13 rendezvényen azonban megtört a jég, így négy előadás is körvonalazta, hogy mégis mire képes a Mantle API. Ezek közül az AMD technikai ismertetője volt nagyon informatív, hiszen részletezték a rendszer alapvető működését és a különbséget az aktuális DirectX és OpenGL API-khoz viszonyítva.

Lapunk hasábjain korábban is sok szó esett arról, hogy a mai grafikus architektúrák (és itt nem csak az AMD GCN-ről van szó) technikailag már túlléptek azon, amit a PC-s játékok által jellemzően használt DirectX legmodernebb verziója kínál. Itt nem pont a funkciókra kell gondolni, hanem inkább az API strukturális működésére, kiemelve a fellépő többletterhelést, a szálkezelést, az úgynevezett binding modellt, a memóriamenedzsmentet és a hardver direkt kontrolljának hiányát.

Ahogy nő a grafikai innovációra az igény, annál nehezebb reagálni ezekre, mivel túl sok teljesítmény vész oda a strukturálisan elavult működésű API-kra építve, holott a modern hardverek ennél már jóval többre képesek. Persze számos korlátozás biztonsági szempontból létezik. Többek között azért, hogy az adott program semmi olyat ne tehessen, amitől esetleg lefagyhat az operációs rendszer, így a mai drivermodellek (példaként említve a Microsoft WDDM-jét) annyira robusztusak, hogy az esetleges programhibákat a teljes rendszer összeomlása nélkül is képesek átvészelni. Ez egyrészt jó, hiszen a felhasználó, ha a program összeomlását nem is, de a számítógép újraindítását megússza, másrészt viszont ez a biztonság olyan mértékű áldozatokkal jár, amit a fejlesztők már nem szívesen látnak. Itt első helyen említendő, hogy a DirectX nem ad közvetlen hozzáférést az adott grafikus vezérlő memóriájához, ami alapvetően sebességvesztést okoz, emellett konkrétan olyan algoritmusok bevetését lehetetleníti el, amire esetleg igény lenne.

A Mantle API elsődleges célja az előbbi problémákra reflektálni. Ez nem teljesen az AMD ötlete, hiszen a fejlesztők a fenti gondokat évek óta ecsetelik a DirectX fejlesztéséért felelős Microsoftnak, vagy az OpenGL-t delegáló Khronos Groupnak, illetve a grafikus processzorok fejlesztésével foglalkozó cégeknek is. Gondot jelent azonban, hogy két álláspont feszül egymásnak, mivel többek között a Microsoft általánosan úgy tekint a fejlesztőkre, hogy közülük nem mindenki tudja, mit csinál. Ebben részben igazuk van, hiszen vannak profi és kisebb tudással rendelkező programozók. Az utóbbi kategória nincs lenézve, hiszen senki sem születik úgy, hogy azonnal tud programozni, de a tanulási folyamat hosszú, így a potenciális problémák elkerülése érdekében a WDDM a teljesítmény elé helyezi a biztonságot, és ezért igen sok tempót áldoz fel a Microsoft.

Maga az álláspont abból a szempontból érthető, hogy amíg nem mindenki profi, addig oda kell figyelni, hogy egy alkalmazás ne tehessen semmi kárt a Windowson belül. Ez azonban a komoly tudással rendelkező programozók számára nagyon szűk mozgásteret eredményez, és joggal érzik úgy, hogy korlátok közé vannak szorítva, holott van elég tapasztalatuk ahhoz, hogy korlátok nélkül is stabil programokat írjanak, hiszen ezt évek óta megteszik a konzolokra. Tulajdonképpen a Mantle API-t ez az elégedetlenség hívta életre, ám nagyon fontos szerepet tölt be az időpont.

Az AMD az új rendszert szándékosan veti be pont most. Ez az API ugyanis egy alacsony szintű felületet kínál a fejlesztőknek, szemben a DirectX és az OpenGL magas szintű hozzáférésével. Utóbbi két esetben a programozónak nem kell ismernie a hardverek képességeit ahhoz, hogy az adott programot – viszonylag jól – megírja. Persze az extra tudás nem árt, hiszen ismerve a hardverek és főleg a driverekben található shader fordítók működését, már a HLSL (DirectX), illetve a GLSL (OpenGL) kódokba is lehet olyan optimalizációkat építeni, amelyek a hardver oldalán hatékonyabb feldolgozást eredményeznek. Mondhatni a lehető legjobb teljesítmény eléréshez még magas szintű hozzáférés mellett sem árt az úgymond alacsony szintű gondolkodás. De a lényeg akkor is az, hogy ha valaki nem vérprofi, és a hardverek képességeivel nincs tisztában, akkor sem jelenthet problémát megírni egy alkalmazást a DirectX és az OpenGL API-n belül.

A Mantle API azonban más. Ez a rendszer megköveteli a GCN architektúra alapvető működésének ismeretét, ugyanis ez biztosítja a hardver hatékony kihasználását. Ez persze nem assembly szintű felületet jelent, így ennyire mélyre azért nem kell ásni, de közel sem olyan egyszerű, mint amit a DirectX és az OpenGL kínál. A Mantle tehát nem tekinthető az előbbi két API közvetlen konkurensének, mivel csak a profiknak szól; azoknak a fejlesztőknek, akik a végletekig ki szeretnék sajtolni az adott hardverben rejlő tudást.

Az Xbox One és a PlayStation 4 megjelenése azonban kulcskérdés a siker szempontjából. Bár ezekre a Mantle API nem lesz elérhető, de ez a két gép biztosítja, hogy a fejlesztők ismerjék a GCN architektúra működését. Ha bárki előállna egy hasonló, alacsony szintű API-val, akkor nem biztos, hogy érdekes lenne, mégpedig azért, mert a PC-s piacért egyszerűen nem éri meg megtanulni az adott architektúra felépítését, és a GCN architektúrát sem a PC-ért fogják kielemezni és bemagolni. Ez egy nagyon lényeges szempont, ugyanis a Mantle API gyakorlati beépítése az adott alkalmazásba egyszerűnek mondható, hiszen nagyjából két hónap alatt megoldható. A legtöbb időt annak megtanulása viszi el, hogy a GCN-es Radeonokat hogyan kell hatékonyan használni, de a konzolok miatt ez nem jelent majd problémát.

A cikk még nem ért véget, kérlek, lapozz!

Hirdetés

Előzmények

Gyártók, szolgáltatók

Hirdetés

Copyright © 2000-2016 PROHARDVER Informatikai Kft.