Vélemény: Idén sem jött be a heterogén mantra
Az idei év sem hozta el a pálfordulást a heterogén végrehajtásban. Ígéretekkel már tele a padlás, de egyre kisebb az esély, hogy ezekből a közeljövőben majd valóra válik bármi is.
Az AMD az első APU-k megjelenése előtt, azaz nagyjából 2009-2010 környékén kezdte el szajkózni a heterogén mantrát: az x86-os CPU magok skálázódásának vége, de szerencsére itt a GPU ami majd mindent megold - szólt az ígéret. Az előbbiben részben igazuk volt, hisz az elmúlt 5 évben csak pár százalékos gyorsulást hoztak az egyes, újabbnál újabb mikroarchitektúrák, de egyelőre a grafikus egységek sem hoztak univerzális megváltást.
CI/CD-vel folytatódik az AWS hazai online meetup-sorozata! A sorozat december 12-i, ötödik állomásán bemutatjuk az AWS CodeCatalyst platformot, és a nyílt forráskódú Daggert is.
Az persze igaz, hogy bizonyos feladatokra fényévekkel jobb megoldást jelent a grafikus processzor, számos kliens- és szerveroldali, illetve HPC-alkalmazás képes profitálni a GPU számítási teljesítményéből, legyen szó például képi anyag kódolásáról, vagy bármilyen más komolyabb, párhuzamos adatfeldolgozást kívánó folyamatról. De amilyen nagy az ilyen feladatok alatt tapasztalt sebességnövekedés, olyan alacsony az ilyen területek száma: a CPU és a GPU egyesített erejét, azaz a két egység különböző előnyeit kiaknázó, azt tisztességesen kamatoztatni képes konzumer szoftvert továbbra is nagyítóval kell keresni.
6 éve még biztatóan hangzott
A fejlesztők eddig egyszerűen nem haraptak rá a lehetőségre, hiába kínálták nekik szinte tálcán a különféle segédleteket (SDK, dokumentáció), ez édeskevés volt. Az AMD piaci részesedése jelenleg annyira alacsony, hogy a fejlesztőcégek valószínűleg túl kockázatosnak tartják a befektetést, így legfeljebb csak valamiféle (anyagi) támogatás mellett, partneri együttműködésben készülhetnek alkalmazások, amolyan tessék-lássék alapon.
Az elmúlt pár évben született heterogén alkalmazások egy része ráadásul silány minőségű, sok esetben csupán minimális, vagy éppen semmiféle gyorsulást nem lehet tapasztalni. Mindez arra enged következtetni, hogy az általánosan használt folyamatokat, függvényeket, alkalmazásmodulokat kvázi lehetetlen heterogén végrehajtásra optimalizálni. Ez egyáltalán nem meglepő, a szoftverek felkészítése a párhuzamos futtatásra egyáltalán nem triviális - ezt megtanulhattuk a többmagos x86-os chipek lassan 10 éves történelme során. A GPU-ra optimalizálás még további nehézséget visz az egyenletbe, mindez épp elég ahhoz, hogy önszántából jóformán senki se akarjon komolyabban fejlesztői erőforrásokat fektetni az AMD elképzelésébe.
Ha mindez nem lenne elég, az Intel időközben szépen lassan ezen a téren is ledolgozta "lemaradását", bár ez gyakorlatilag sosem létezett, hisz szinte semmilyen hátránya nem származott a heterogén végrehajtás támogatásának hiányából. A bő két éve megjelent Haswell már OpenCL 1.2 támogatással rendelkezett, az idén megjelent Skylake pedig már a szabvány 2.0-s verziójának is megfelel, így többek között az egységes címtér kérdése is megoldott. Az persze más kérdés, hogy az AMD-hez hasonlóan jelenleg az Intel sem tud profitálni ebből, de amennyiben valami furcsa oknál fogva mégis változna a helyzet, úgy már nem indulnának komoly hendikeppel egy esetleges versenyben.
Ennek tükrében nem csoda a hátraarc, ugyanis jövőre ismét tisztán CPU-t, azaz grafikus egység nélküli processzort dob piacra az AMD. Persze maradnak az APU-k is, de ezek előnye továbbra is csak a közös szilíciumlapkában fog kimerülni, ami kisebb helyigényt és bizonyos esetekben egyszerűbb hűtést jelenthet.
Idén megjelent az OpenCL 2.1, véglegessé vált a HSA szabvány, ráadásul utóbbit a Snapdragon 820 személyében már egy ultramobil SoC is támogatja, bár ezt egyelőre nem használja ki semmi. Ennek fényében erősen kétséges, hogy a közeljövőben pálfordulásra számíthatnánk. Talán lesz egy-két alkalmazás, ami részben profitálhat a heterogén végrehajtásból, de sebességben várhatóan ezek sem hoznak majd áttörést a hagyományos(abb), GPU-s gyorsítást használó alkalmazásokkal szemben.