2010. március 23., kedd

Szép új jövő? A GPGPU ma és holnap 2.

Bár mindenki sokat várt a GPGPU-tól, a gyártók nem siették el a támogatását. Az NVIDIA-nál sokáig csak a kiváltságosak érhették el a bétás CUDA GPGPU és PhysX csomagot. Ráadásul üzletpolitikai szempontból csak a G92-es maggal felvértezett GeForce 9-es szériánál használhattuk ki a GPU erejét – később persze minden GeForce 8-as kártyán engedélyezték ezeket a funkciókat. Ugyanígy az AMD-nél sem siettek a nagydobra verni a kártya ezen képességeit, a Folding@Home kliens is csak nemrég került bele a Catalyst telepítőcsomagba.
A döcögős indulás mégsem befolyásolja a GPGPU jövőjét, mert több kutatóintézet és nagy számítási kapacitással operáló vállalat a következő generációs szuperszámítógépeket „szuper gyors” számításokra képes grafikus vezérlőkkel teletömve képzelik el. Igaz, a grafikus vezérlőkön felül vannak még vetélytársak, ilyen például Playstation 3-ból ismert Cell processzor (amelyet már régóta alkalmaznak ilyen célokra, továbbfejlesztett változata pedig a kétszeres pontosságú feladatoknál is meglehetősen fürge), de az Intelnél is erősen készülődnek, hogy új fejlesztésükkel törjenek a babérokra. Összességében véve már nyugodt lélekkel kijelenthetjük, hogy a GPGPU-k jövője biztosított.


GPU PhysX vs CPU PhysX

A tudományos célokat szolgáló felhasználás minden bizonnyal még erősebb lapkák kifejlesztésére sarkallja a gyártókat, amelyek ugyan nemcsak a játékosok igényeit fogják szem előtt tartani, ám nagyobb számítási kapacitásuk révén a játékosok társadalma is profitálhat majd a folyamatból. Ismerve a grafikuskártya-felhozatalt, nem állíthatjuk, hogy túl sok gyártó van a piacon. Az AMD és NVIDIA mellett még a szebb napokat is látott S3 jelentkezett GPGPU-alkalmazással, ám a kis teljesítménye miatt nem várhatunk tőle csodát, illetve még a támogatottsága is kérdéses. Talán az Intel mozgolódása jelzi, hogy mégis milyen nagy piacot jelent ez a projekt a gyártók számára. Bár nagy a titokzatoskodás a téma körül, az Intel évek óta gőzerővel fejleszti a Larrabee kódnév alatt futó egységet, amelyet elsősorban grafikus magnak szánnak, ám egy egészen új elgondolásnak hála kiválóan alkalmas párhuzamosított számolásokra. A Larrabee érdekessége, hogy egységesíti a grafikus kártyáknál jelenleg is alkalmazott masszív párhuzamosított architektúrát az x86-os utasításkészletű processzorok tudásával (konkrétan egyszerűsített x86-os magokat felhasználva). Ez ily módon nagy átvitelt (pontosabban jobb sávszélesség-kihasználtságot) és remek programozhatóságot biztosít. A Larrabee felépítésének előnye, hogy nem csupán a DirectX és OpenGL grafikus API-kat támogatja, hanem a szoftveres úton megvalósított renderelésben is kiváló teljesítményt nyújt majd, amennyiben elkészül.

Fizika padlógázzal

Bizonyára sokan emlékeznek az Ageia PhysX kártyájára, amelynek külön bővítőkártyaként nem jósoltunk nagy jövőt, ám maga a technológia életképesnek bizonyult. Rontott a PhysX helyzetén, hogy már megjelenés után arról szóltak a hírek, hogy a GPU-k számítási kapacitása elegendő lesz a fizika számításához. Ez valóban igaznak bizonyult, amit az a tény is megerősített, hogy a kártya képességeit bemutatandó Cell Factor program megjelenítési sebessége a gyorsítókártya nélkül sem lassult be jelentősen. Azóta jelentős változások történtek, és a PhysX licenc az NVIDIA kezébe, a számítás pedig a CUDA-nak köszönhetően a GPU feladatsorába került, amit egy-két játékprogram valóban kihasznál. Ilyen például az Unreal Tournament 3, amelyhez léteznek nagyon látványos, direkt a fizikai gyorsítási képességre kihegyezett pályák – ezek már nem igazán futtathatók élvezhető sebességgel PhysX-gyorsítás – tehát CUDA-t támogató NVIDIA kártya – nélkül. Ugyanígy (számszerűsítve) látható a fizikai gyorsítás hatása a 3DMark Vantage CPU-tesztjében és még néhány programban, de egyelőre még nem számolhatunk be széles körű elterjedtségről.

Viszlát OpenGL, viszlát DirectX?

Ha már a jövő latolgatásánál és a szoftveres renderelésnél tartunk, érdemes megemlíteni, hogy az egész grafikus megjelenítéssel foglalkozó iparág látszólag elmozdult jól megszokott helyéről és a fix feladatok helyett az általános célú feladatfeldolgozást helyezi előtérbe. E tény részben a klasszikus értelemben vett – tehát csak az előre meghatározott feladatkör elvégzésére alkalmas – grafikus kártya halálát jelenti, amit már évekkel ezelőtt megjósoltak a játékfejlesztők. A kérdés csupán az, hogy mikor fog ez bekövetkezni, viszont jól látható, hogy a fejlesztések gyorsvonat sebességével robognak ebbe az irányba. Ennek következtében valószínűleg vissza fogunk térni a Direct3D és OpenGL API-k előtti időre, amikor a processzor még nyers erővel, szoftveres úton renderelt, csak most a CPU helyett a grafikus kártya fogja ugyanezen számolásokat elvégezni. A programozóknak és fejlesztőknek ez egyaránt azt jelenti, hogy valós programnyelvben kell (például az OpenCL) kódolni, míg ennek következtében a felhasználók számára teljesen mindegy lesz, melyik gyártó kártyáján játszunk. Egyetlen paraméter lesz ugyanis a döntő: a számítási kapacitás.
Ugyanakkor nem szabad azt hinnünk, hogy a programozásban a „szabad kéz” teljes mértékben megoldást jelent minden problémára. Nincs arra garancia, hogy az adott problémára a fejlesztő a legoptimálisabb megoldást találja-e meg, ezáltal esetenként nehezebb dolga is lehet, mint egy előre definiált és adott lehetőségekkel megáldott DirectX esetében. Arra sem számíthatunk, hogy az eddig uralkodó és jól bejáratott alkalmazásprogramozási felületek (DirectX, OpenGL) eltűnnek, de mindenképpen tartaniuk kell a lépést a változással – talán itt jön el ismét az az idő, amikor nem a DirectX-hez igazodik a grafikus kártyák tudása, hanem fordítva, mint a DirectX 9 előtti időkben.
írta Papp Gábor, 2009. február 09.

0 megjegyzés :

Megjegyzés küldése