A Metal 2 API-ra tesz fel mindent az Apple

Jó volt az OpenGL, az OpenGL ES és az OpenCL is, de a vállalat inkább a saját technológiájában bízik.

Az Apple az idei WWDC-n bejelentette a Metal 2 API-t, amely a három éve megjelent, azóta folyamatosan fejlesztett Metal API alapos feljavítása. Mint ismeretes mára az Apple már nem csak az iOS, hanem a macOS esetében is a saját fejlesztését tekinti megfelelő útnak, így az OpenGL, OpenGL ES és OpenCL szabványok alól ugyan nem rántották ki a talajt, elvégre a már elkészült programokat nem akarják működésképtelenné tenni, de világosan látszik, hogy innentől kezdve csak a Metal létezik, és a fejlesztőknek is erre kell figyelniük.

Ez az Apple számára egy logikus döntés, mivel maga a Metal nem csak egy grafikus API, hanem van Metal for Compute komponense, amely az OpenCL-t hivatott kiváltani, és ezt a gyakorlatban meg is tudja tenni. Többek között a Metal 2-t a vállalat már gépi tanuláshoz is szánja, és azt is elmondták, hogy Siri hangját ezzel tették természetesebbé. Az Apple konkrétan elhozza a macOS-re az iOS-en már elérhető Metal Performance Shaders keretrendszert, amelyet alaposan ki is egészítenek a gépi tanuláshoz. Itt a cég az érkező iMac Pro modell sikeréért dolgozik. Persze más Apple hardver mellett is lehet használni a csomagot, de az újításokat alapjaiban az AMD Radeon Pro Vega opciókhoz tervezik.

Hirdetés

A Metal 2 mindezek mellett jobb fejlesztőeszközöket biztosít, többek között mostantól elérhető lesz a GPU teljesítményszámlálók támogatása. Ez lehetővé teszi a fejlesztők számára, hogy a korábbinál több adatot lássanak az alkalmazás futtatásáról, és ezáltal jóval hatékonyabban kiértékelhető, hogy az adott kód mennyire terheli a grafikus vezérlőt. Ezeket az adatokat, valamint AMD és az Intel GPU-kra vonatkozó publikus dokumentációit felhasználva rendkívül hatékonyan finomhangolható az adott programkód.

A kisebb grafikára és compute-ra vonatkozó változások mellett a Metal 2 nagy újítása az indirekt argumentum pufferek támogatása. Ebből a szempontból az Apple nagyon nyit az úgynevezett GPU-driven pipelines konstrukció felé, amit az elmúlt években számos videojáték-motor már bevetett valamilyen formában. Maga a GPU-driven pipelines egy nagyon átfogó fogalom, a lényege röviden az, hogy a GPU-n futó, rengeteg futószalaghoz a lehető legkevesebb processzoridőt kelljen igénybe venni. Ezt persze számos módon el lehet érni, és lehet a processzor tehermentesítésén kívül más járulékos előnye is, de a legfőbb cél minden esetben a processzoridővel való gazdálkodás.


[+]

Az Apple a Metal 2-be egy GPU-driven pipelines konstrukciót próbál beleültetni. Az eddigi Metal API esetében egy leképezésre vonatkozó rutin tartalmazta a grafikára vonatkozó állapotot, amit a hardver nyilván beállított magának, és mellette volt számos argumentum az erőforrásokra vonatkozóan. Utóbbi volt a többletterhelés forrása, mivel ezeket a argumentumokat minden rajzolási parancsnál be kellett állítani. A Metal 2-vel erre már nincs feltétlenül szükség, mivel a rajzolási parancsokhoz argumentum pufferek létrehozva előre kódolhatók az erőforrások. Ezáltal minden esetben, amikor az adott erőforrás bekötése szükséges, az már előre le van kódolva, és nem kell a processzort ezzel terhelni. Persze egyszer a kódolást nyilván meg kell csinálni, de ez így is sokkal jobb, mintha minden egyes rajzolási parancsnál megtörténne ez a munka. Sőt, compute módban maga a GPU is elvégezheti a kódolással járó munkát, így anélkül hozhat létre argumentum puffert, hogy ezzel a processzorra bármekkora terhelést is róna, emellett maga az argumentum puffer viszonylag szabadon menedzselhető, például egy pufferen belül létrehozható egy másik.

Az argumentum pufferekkel elérhető előny a rajzolási parancsokra levetítve ez iPhone 7-es eszközön
Az argumentum pufferekkel elérhető előny a rajzolási parancsokra levetítve ez iPhone 7-es eszközön [+]

A Metal 2 a fentiek mellett a virtuális valóság felé is nyit. Erre vonatkozóan bevezeti a viewport tömböket, és a fejlesztőeszközök a VR-ra is ki lettek gyúrva. Az Apple az Unreal Engine és a Unity videojáték-motorok fejlesztőivel dolgozik a VR és a Metal 2 implementálása szempontjából.


[+]

Végül újítás még a Thunderbolt 3-as, grafikus kártyákat fogadó külső házak támogatása, amelyek USB Type-C porton keresztül köthetők a MacBook Próhoz. Egészen konkrétan a Metal 2 kapott egy eszközválasztó API-t, így a fejlesztő képes detektálni az elérhető hardvereket és a megfelelő konfiguráción futtatni a programot. Annak érdekében, hogy az erre való átállás gördülékeny legyen az Apple elindított egy fejlesztői programot, amelyben benne van egy külső ház, ami egy AMD Radeon RX 580-as VGA-t rejt. Ezért 599 dollárt kell fizetni.


[+]

A programban résztvevők a HTC Vive-ból is árengedményt kapnak, ami sok fejlesztőnek jól jöhet. Az új macOS egyébként az AMD XConnect technológiát integrálja és erre vonatkozik gyári támogatás is.

  • Kapcsolódó cégek:
  • Apple

Azóta történt

Előzmények

Hirdetés