Hirdetés

A GPGPU nem olyan könnyű a mobil piacon

Az ultramobil piacon ismert cégek, mint az ARM, az Imagination, a Vivante, a Qualcomm és az NVIDIA szerint az új generációs hardvereknek a GPGPU felé kell elmozdulnia. Erre 2014-ben minden érintett kínál majd megfelelő hardvert. Sőt, az ARM, az Imagination és a Vivante már ma is licencel a GPGPU-hoz megfelelő IP-ket, így a fejlődési irány nem lehet kérdés. Az ultramobil termékek esetében azonban nem olyan egyszerű a GPGPU kérdése, mint a PC-n, ahol már alapvetően követelmény, hogy egy ma megjelenő grafikus vezérlőnek ne feküdjék meg a gyomrát az általános számítási feladatok. A legfőbb különbség, hogy PC-n a gyártók sokkal nagyobb fogyasztási tartományban dolgozhatnak, így nem kell annyira szűkmarkúan bánni a hardver GPGPU-s képességeivel. A fejlett képességek ugyanis a tranzisztorok szempontjából extra terhet jelentenek, és ez a fogyasztási paramétereket is rontja. A legfőbb kérdés jellemzően a termékek pontossága, illetve az általuk támogatott kerekítési módok.

A számítás pontosságára vonatkozóan a Microsoft a DirectX 11-től kezdve megköveteli az IEEE 754-2008-as szabvánnyal kompatibilis, minimum 32 bites lebegőpontos feldolgozók használatát, illetve az FMA utasítás támogatását. Ez abból a szempontból nagyszerű, hogy a gyártók egységes alapokra építhetnek, így az új, minimum DirectX 11-et támogató, de eltérő architektúrára épülő hardvereken a lefuttatott számítások ugyanazt az eredményt adják. Opcionális lehetőség még a dupla pontosságot is támogatni az előbbi szabványnak megfelelően, amit az AMD és az NVIDIA új generációs PC-s termékei manapság ki is használnak, de az Intel ezt mellőzi. A 64 bites feldolgozás nyilván nem olyan fontos, hiszen az átlagfelhasználó számára egy adott GPGPU-s szimuláció extrém pontossága nem kritikus, de a jövőre gondolva a Microsoft ennek a módnak is szabványosítva követeli meg az esetleges támogatását.

A DirectX 11 követelményei az ultramobil termékekre is kihatnak majd, mivel a cégek olyan hardvert fejlesztenek, melyekkel megcélozhatják a Windows RT operációs rendszert is. Éppen ezért az új generációs ultramobil IGP-k, mint az ARM Mali-T600, vagy az Imagination PoverVR P6000 sorozat a fenti előnyökből profitál és gyakorlatilag biztos, hogy a Qualcomm Adreno 400-as és az NVIDIA következő generációs ULP GeForce megoldásai is megfelelnek majd a DirectX 11 követelményeinek. A dupla pontosság felől már nem egyértelmű a támogatás, igazából az okostelefonok és a tabletek szempontjából nem sok értelme van, de ha lesz is, akkor megfelel majd a szabványnak. Információink szerint az ultramobil grafikus vezérlők közül az ARM Mali-T600-as sorozat támogatja a dupla pontosságú feldolgozást, de eléggé korlátozott sebesség mellett. A többi cég ettől egyelőre elzárkózik. Az Imagination szerint a dupla pontosság kezelése viszonylag sok extra tranzisztort igényel, és a fejlesztői oldalon nem látszik rá az igény, hogy ezt érdemes legyen bevállalni, főleg annak tudatában, hogy még a PC-s piacon a negyedévente eladott grafikus vezérlők ~60%-a sem támogatja ezt a funkciót. Ezzel egyet lehet érteni a dupla pontosság ma inkább amolyan extra szolgáltatás, mint valóban szükséges funkció. Nem baj, ha a hardver tudja, de lényegi előnyt nem jelent a felhasználónak.

A hardverek számítási pontossága tehát igen jól alakul, ami természetesen részben a DirectX 11 követelményeinek köszönhető. Van azonban egy másik terület, ami az előbbinél sokkal problémásabb, ez pedig a támogatott kerekítési módok kérdésköre. Rögtön az elején leszögezzük, hogy az API-k nem fogalmaznak meg lényegi követelményt erre vonatkozóan, így a cégek számára szabad a választás lehetősége a kerekítés hardveres implementációja szempontjából. Elvi síkon ennek nem kellene gondnak lennie, hiszen a matematika igen egyértelmű szabályokat fogalmaz meg erre vonatkozóan, de a hardver szintjén azért nem ilyen egyértelmű a helyzet. Elvben nyilván nem kérdés, hogy mire van szükség, de az már alapvetően az, hogy megéri-e beépíteni a feldolgozókba azokat a matematika szabályokat, amelyek mindig a lehető legpontosabb kerekített értéket biztosítják. A mérnökök válasza erre sokszor nemleges lesz, mivel túl sok tranzisztor szükséges ehhez. A grafikus vezérlők többsége eltér a matematika szabályaitól, és a tranzisztorokkal való spórolás érdekében saját, a hardver szempontjából egyszerűbb kerekítést alkalmaznak. A tipikus kérdés mindig az szokott lenni, hogy teszem azt a 4,55 4,6-nak vagy 4,5-nek legyen-e kerekítve. A matematika szerint egyértelmű, hogy a 4,6 a pontos eredmény, de a 4,5-re való kerekítés a hardver szintjén nagyságrendekkel egyszerűbb és tranzisztorkímélőbb, illetve a fogyasztásra is jó hatással van.

Mivel egyetlen API sem követel meg egzakt módon egy szabványos tömörítési módot, így a hardvergyártók termékei ebből a szempontból eltérnek. A szabvány lehetne egyébként az IEEE 754-2008 négy kerekítési módja közül az egyik, vagy akár mind, de erről egyelőre nincs konkrétum. Jó hír azonban, hogy az AMD és az NVIDIA már komolyan veszi ezt a kérdést, így az előbbi cég GCN, míg az utóbbi vállalat Kepler architektúrája az előbbi négy elfogadott kerekítési módot támogatja. A többi cég egy picit mostohán áll ehhez, de az Imagination szerint az ultramobil termékek esetében nincs igazán szükség a matematika kerekítési szabályait követni, mivel az jellemzően kis eltéréseket ad a végeredményben, de komoly fogyasztástöbblettel jár az ehhez szükséges hardveres implementáció.

Úgy gondoljuk, hogy a jövőben a támogatott kerekítési módok esetében is egységesség lesz, és az IEEE 754-2008 szabvány négy metódusa jó választás ehhez. Nyilván egy bizonyos szintig elfogadható, hogy az ultramobil termékek esetében az alacsonyabb fogyasztás fontosabb, mint a mindig pontos kerekítés, de előbb-utóbb egy API úgyis megköveteli a matematikailag pontos feldolgozást és onnantól már nem lehet elmenekülni ennek a beépítése elől.

Előzmények

Hirdetés