Az Appleinsideren egy remek cikk jelent meg a Metalról, érdemes belemélyedni. Én is ezt tettem, most kiszedek nektek néhány érdekességet, hogy ti is közelebb kerüljetek annak megértéséhez, miért lehet a következő évek meghatározó dobása a Metal.

A keynote-on kábé ilyen mélységben magyarázták el, miért is volt szükség a Metalra:

metal.jpg

A játék és a hardver között túl vastag töbletterhelést jelentett egy OpenGL motor berregése, szükség volt arra, hogy a programozók közvetlenebbül érjék el az erőforrásokat. Az alacsony szintű hozzáférés erőltetése egyébként sem ismeretlen a piacon, az AMD és a Microsoft is ebbe az irányba tart. A Google egyelőre nem.

Ez azért fontos, mert felgyorsítja a 3D-s számítások sebességét, miközben felszabadítja a CPU-t a felesleges pöcsölések alól.

Hogy lehet fejleszteni a grafikai teljesítményt az okostelefonokon és tableteken? Az asztali gépeken megismert tiszta lóerőnövelés a mobil gépeken nem járható út, hiszen gondolni kell a hőelvezetésre és az akku-élettartamra. Ráadásul a mai mobil GPU-k olyan gyorsak, hogy a CPU-nak nehézséget okozhat sok esetben ellátni őket a megfelelő mennyiségű számítási feladattal, és ha a CPU-t kimaxoljuk, a GPU-nak egy csomó felesleges üresjárattal kell dolgoznia. Ami luxus olyankor, amikor a sebesség kritikus, például egy játék esetében.

A Metalnál ez úgy működik, hogy azonosítja a feladatokat, amiket előre ki lehet számítani, és amikor a feladat aktuálissá válik, a CPU vállán már nincs ott a teher, hogy foglalkozzon vele. Késlekedés nélkül végrehajtható a művelet. Jó példa a shader, ami egy 3D-s alakzat színeinek számítását végzi, annak érdekében, hogy valóban térbelinek látszódjon a tárgy. Ezeket a shadereket előre is le lehet fordítani, és a Metal esetében a GPU pontosan ezt teszi.

WWDC2014.iOS 8.Metal.jpg

De a Metal GPGPU feladatokra is nagyon jól használható, vagyis olyan általános számítási feladatokat lehet vele kiosztani a GPU-nak, ami egyébként nem rá tartozna. Az Apple új Metal Shader nyelve ugyanazokat az erőforrásokat nyújtja a grafikai és az általános számítási feladatokhoz, így a fejlesztőknek már könnyű a dolguk, és nem kell differenciáltan gondolkozni. Na jó, egy kicsit azért kell.

És az is látszik, hogy amikor az A7-et tervezték, már pontosan tudták, hogyan működik majd a Metal. A CPU és a GPU magok között ugyanis egy integrált memóriamodult tettek be, hogy a két egység a központi cache kikerülésével is tudjon kommunikálni egymással. Ezt használja most ki a Metal.

A tavaly bemutatott A7-es SoC tehát most érett csak be igazán, most tudja csak megmutatni, mit tud, ha kisajtolják a benne rejlő lehetőségeket, az utolsó cseppig. A Szent Grál tehát már kész volt, a kezünkben fogtuk, de az iOS 8-cal adja oda hozzá az Apple a kulcsot.

És a Prohardver mondata nagyon fontos:

Nagyon fontos szempont, hogy bár az új generációs konzolokra készült alkotások ma még nem számítanak az ultramobil eszközök piacán, de később ez a helyzet megváltozik. Márpedig az Xbox One és a PlayStation 4 saját API-járól sokkal egyszerűbb egy játékot alacsony szintű hozzáférést biztosító (Metal, DirectX 12 és Mantle) API-ra portolni, mint magas szintű hozzáférést biztosító (OpenGL ES, OpenGL, DirectX 11) opcióra.

Hogy mikor lesz a később, nem tudni, de a fejlődés ütemét nézve nem olyan soká.

Lehet gigahertzezni, meg nyolcmagozni, de ez már nem írja le a teljesítményt. Egy Metalra optimalizált hardver, és a vasra optimalizált Metal, alacsony szintű hozzáféréssel és GPGPU támogatással olyan előny, amit nehezen lehet behozni hasonló megoldások nélkül. Főleg, hogy kizárólag iOS-re optimalizált játékok jöhetnek, vagy olyanok, amik a másik platformon sokkal szarabbul néznek ki.