Hirdetés

Android és OpenCL: nem lesznek barátok?

A Google nem kedvez a gyártóknak és a fejlesztőknek, ha az új generációs API-k beépítéséről van szó. A cég meglehetősen következetlen lépéseket tesz a GPGPU támogatása szempontjából, hiszen egy ideig teljesen kiálltak az irányzat mellett, majd most részben elzárkóztak tőle. A keresőóriást az OpenCL mindig is a WebCL kapcsán érdekelte, hiszen az új felület nagyságrendi előrelépést jelentene az internetezésben a termékek sebessége és az elérhető üzemidő szempontjából. Az Android 4.3-ban azonban olyan dolog történt, amire senki sem számított, így a gyártók és a fejlesztők körében mára teljes a bizonytalanság.

A Google a korábbi Androidokon sokat kísérletezett az OpenCL integrálásával, hiszen a cég partnerei ezt az API-t tartják értékelhető jövőképnek, ugyanakkor hivatalos támogatásról még szó sem volt, mivel a driverek korábban a tesztelés miatt kerültek be a rendszerbe. Az Android 4.3-ból azonban az OpenCL támogatása teljesen hiányzik. Ez alapvetően nem lenne jelentős probléma, hiszen a Google csupán a tesztlehetőséget vette el a fejlesztőktől, így egy későbbi verzióban akár vissza is kerülhetett volna az API támogatása, de úgy néz ki, hogy erre egyelőre nincs esély, a Google ugyanis az alábbi fórumban jelezte, hogy jelenleg nem tervezik az OpenCL hivatalos támogatását.

A vállalat persze rendelkezik egy saját zárt GPGPU-s felülettel, mely a Renderscript névre hallgat. Ez sok szempontból hasonlít az OpenCL-re, viszont nagyságrendekkel nehezebb rá programozni, ami a fejlesztők számára nem kedvező szempont. Éppen ezért akar a többség OpenCL-t, hiszen az aktuális igényeket ez a felület jóval kedvezőbben ki tudja szolgálni.

A Google döntése abból a szempontból is kellemetlen, hogy az ARM-os rendszerchipeket fejlesztő cégek egyértelműen a GPGPU-t jelölték meg az ultramobil piac következő nagy dobásának, így az ARM Mali-T600, a Vivante GC, az Imagination PowerVR G6000 és a Qualcomm Adreno 400 sorozatú, valamint az NVIDIA Kepler architektúrájú IGP-k erre a vonatra szeretnének felszállni, de a Google jelenleg elgáncsolja a terveket. Ez különösen annak fényében érdekes lépés, hogy egyre több chipfejlesztő próbál a jövőben spórolni a fixfunkciós egységek kihagyásával, és az egyes feladatok GPGPU-s megoldásával. Itt említhető meg a HEVC tartalmak dekódolása támogatása, mely az ARM szerint igen jól működik OpenCL-en keresztül, és meg kell jegyeznünk, hogy nem csak az említett cég jutott ilyen következtetésre. Bár a fixfunkciós egységeken a chipfejlesztők nem szoktak fennakadni, de ne feledjük, hogy ezek az ultramobil rendszerchipek nem nagy kiterjedésűek, és a GPGPU-s képességek beépítése az új fejlesztésű IGP-kbe bizony rengeteg tranzisztort elvisz. Egy HEVC-t dekódoló fixfunkciós egység hozzávetőleg olyan területet foglal el az adott lapkán, mint egy ARM Cortex-A15-ös processzormag a hozzá tartozó gyorsítótárral együtt. Ekkora területet már érdemes megspórolni, ha az adott feladat kiváltható az integrált grafikus vezérlő általános számítási képességeivel, akár egy picit nagyobb fogyasztás mellett is.

Valószínű, hogy az Android GPGPU támogatása körül kialakult vita még nincs lezárva, hiszen a hardvergyártók nyilvánvalóan nem azért költöttek dollármilliókat az új GPU-architektúrák kifejlesztésére, hogy csak úgy álljon benne az a temérdek tudás. Ha a Google ezt nem engedi kihasználni, akkor az a tranzisztorok nagyfokú pazarlását jelenti, ami senkinek sem az érdeke, de legfőképp a felhasználóké nem. Persze a gyártók dönthetnek az Android módosítása mellett, így az OpenCL-t önhatalmúlag beépíthetik, ugyanakkor ilyen esetben nem számíthatnak a Google támogatására és a Google Play áruházhoz való hozzáférés sem engedélyezett.

Egyelőre sok a kérdés, de kevés a válasz és a Google álláspontja sem bíztató. A gyártók számára szükséges lenne egy gyors megoldás, mert az új generációs termékek kihasználása kapcsán rengeteget vesztenek a keresőóriás hozzáállásával. Az extrém olcsó tabletek viszont sokat nyernek, hiszen ezekben nincs meg a hardveres tudás a GPGPU-s extrák kihasználásához, de jelenleg ez nem is szükséges. A nagyon drága tabletek azonban kevés értéket fognak felmutatni a technikai lehetőségek szempontjából, ami gondot jelenthet.

A Google egyébként korábban már említette, hogy az Android egy nagyon töredezett platform, és arra törekednek a jövőben, hogy az alkalmazások teljesítményének a portolhatósága jó legyen az elérhető temérdek hardverkonfiguráción. Kétségtelen tény, hogy ezen a problémán az OpenCL nem segít, sőt, inkább ront rajta, de hosszútávon ez is megoldódik, legalábbis az ARM-os gyártók többsége már kínál erre egy koncepciót.

Akárhonnan is nézzük, az OpenCL támogatásának hiányából gyakorlatilag csak a Renderscript profitál. Főleg, ha figyelembe vesszük, hogy a Google már kísérletet tett az OpenGL ES leváltására is, csak nem jártak sikerrel, a játékfejlesztőket a 3D-s grafika szempontjából ugyanis nem érdekelték a Renderscripben rejlő lehetőségek. Ráadásul a Renderscript a jelenlegi formájában messze van attól, hogy életképes GPGPU-s alternatíva legyen, de a Google sok erőforrást fektet a fejlesztésébe, így egy cél lebeghet a szemük előtt. A saját API-val le kell támadni a piacot, ameddig az Android domináns. Ezzel a felhasználókat a cég az Androidhoz láncolja, ami profitot eredményez. Ugyanezt csinálta a Microsoft a DirectX API-val sok évvel ezelött. Az akkor domináns OpenGL háttérbe szorult, és a PC-s játékosok Windowson ragadtak, ennek a következményeit pedig már mindenki ismerheti.

Azóta történt

Előzmények

Hirdetés