Hirdetés

Révbe ért az AMD Aparapi projektje

Az AMD JavaLabs csapata másfél évvel korábban kezdett el gondolkodni azon, hogy miképp tudnák a Java programnyelvet használó fejlesztők életét megkönnyíteni, amennyiben valaki ki akarná használni a grafikus processzorok általános számítási kapacitását. Ez eddig az OpenCL-re építő JOCL és JOpenCL, valamint a CUDA képességeit kamatoztató JCUDA segítségével volt megoldható. Mindegyik felület úgynevezett Java bindingeket tartalmaz, amelyekkel ugyan az AMD által részletezett probléma megoldható, de csak nagyon körülményesen.

A Java esetében a fejlesztők általában nem törődnek a pointerek, illetve a destruktorok használatával, vagy mondjuk a memória felszabadításával. Ez a feladat a virtuális gépet terheli, ami lényegében futtatja a Java programot. Gyakorlatilag itt jön képbe a probléma a JOCL, a JOpenCL és a JCUDA használatával, azaz a fejlesztőknek olyan kódokat kell kreálni, amelyeket a Java alatt nem tesznek meg, és ez egy barátságtalan környezet sokuk számára. Sőt, az egyes részleteket több eszközre kell optimalizálni, ami eltér a Java esetében alkalmazott alapfilozófiától.

Az AMD Aparapi projektje lényegében arról szólt, hogy a Java programnyelvet kedvelő fejlesztők továbbra is hagyományosnak mondható Java kódokat írjanak, és a GPU-n történű futtatást egy felületre bízhassák, ami mindent kezelni tud. Ez lenne az Aparapi, ami a mai naptól kezdve elérhető az alábbi weboldalon keresztül.

A rendszer működéséhez a program támogatása mellett, egy OpenCL 1.1-es grafikus driver kell, ugyanis az Aparapi az OpenCL-en keresztül futtatja az adott kódot a grafikus processzoron. Ettől függetlenül a fejlesztőknek a program írásakor nem kell figyelni a Java bindingeket tartalmazó felületek esetében felmerült problémákra, így továbbra is egyszerű lehet a Java program írása, mivel a Java virtuális gép és az Aparapi mindent elintéz. Az utóbbi felület egyébként a Java bájtkódját konvertálja OpenCL-re, és a párhuzamosan végrehajtható feladatokat próbálja az APU-k IGP-jén, vagy a dedikált GPU-kon futtatni. Ez azonban nem biztos, hogy mindig sikerül, de az Aparapi kezeli ezt a helyzetet is, ugyanis ilyenkor az adott kódot visszakerül a Java szálkezelőhöz, és így a központi processzoron fut majd le. A fejlesztőknek természetesen a hatékony kódok kreálásakor nem árt odafigyelni a CPU és GPU logikai különbségeire, vagyis az Aparapi nem egy csodaszoftver, ami minden helyzetben feltalálja magát, ugyanakkor a JOCL, a JOpenCL és a JCUDA felületeknél jóval egyszerűbben használható kiterjesztés a Java programnyelvet kedvelők számára.

Az AMD Aparapi mától nyílt forráskódú projekt is lett egyben, amelyet módosított BSD licenc alatt lehet felhasználni, így mindenki hozzátehet a fejlesztéshez. Természetesen a vállalat az OpenCL felületet kezelő hardvergyártók támogatását is szívesen fogadja.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés