Az ultramobil GPU-k mélylélektana

Az ultramobil GPU egy másik világ

A grafikus processzorok iránt mindig is nagy érdeklődés mutatnak olvasóink, így az AMD, az Intel és az NVIDIA új fejlesztéseit részletesen ki szoktuk elemezni. Létezik azonban a PC-n kívül is élet, méghozzá egy olyan piac formájában, ami rendkívül dinamikusan fejlődik. Az okostelefonok és a tabletek szegmensében óriási verseny van, de kétségtelen, hogy az ultramobil grafikus vezérlők felé nem irányul túl nagy figyelem. Ennek több oka is lehet. Egyrészt nem kizárt, hogy a vásárlóbázis kevésbé rajong a hardverek iránt, így a technikai háttér elemzésére is kevesebb igény van, de ugyanakkor amellett sem mehetünk el szó nélkül, hogy mi is eléggé mostohán, jobban mondva felületesen kezeltük eddig ezt a területet. Utóbbi szerencsére csak rajtunk múlik, így tudunk rajta változtatni. Jelen cikkünkben ezt meg is tesszük, így betekintünk egy másik világba: az ultramobil GPU-k mélylélektanába.

Mielőtt belevágnánk a különböző fejlesztések vizsgálatába, rengeteg részletet tisztázni kell. Az ultramobil GPU-k teljesen más elvek szerint működnek, mint a PC-be szánt, nagyobb teljesítményű megoldások. Ezen nem is kell csodálkozni, hiszen a két szegmensben szereplő termékek fogyasztási mutatói között óriási a különbség. Az ultramobil fejlesztések fogyasztása sokszor még az 1 wattot sem éri el, de a legerősebb konfigurációk sem igényelnek 2 wattnál több energiát. A PC-be szánt integrált grafikus vezérlők nagyjából itt veszik fel a kesztyűt, és különálló grafikus processzorok formájában szabvány szerint 300 wattnál teszik le, de újabban 375 wattos TDP fogyasztáshoz igazított VGA-kkal is lehet találkozni, sőt lassan 400-500 watt közé eső termékek is készülnek. A kontraszt tehát elképesztően nagy, így az ultramobil GPU-k sokban különböznek PC-s testvéreiktől mind skálázhatóság, mind működés terén.

Működés szempontjából a legfontosabb a tranzisztorszámmal való spórolás. A PC-s GPU-knál rengeteg folyamat fix funkciós egységen keresztül kerül végrehajtásra. Ennek legnagyobb előnye a sebesség, de egyes feladatoknál megfontolható az emuláció. Például az AMD a Radeon HD 5000-es termékcsalád óta emulálja az interpolálást, mert az adott architektúrához jobban illik, emellett az interpolálás sebessége emuláció mellett sosem lesz szűk keresztmetszet. Persze ez a folyamat egyszerűen és olcsón implementálható, vagyis a fix funkciós interpolátorok kihagyása bőven alternatíva, mivel bizonyos felépítéshez ez jobban illik. Ott van azonban még a raszterizálás, a blending és a textúrázás, hogy csak a legfontosabbakat említsük.

Ezeken a területeken a PC-s GPU-k esetében egyértelműen a fix funkciós egységek kerülnek előtérbe, de az ultramobil GPU-knál már nem így van. Természetesen az előbbi folyamatokat is lehet emulálni, de ez komolyabb sebességvesztéssel járhat. Az emulált textúrázás például nagyon nem hatékony, mivel megtizedelheti a tempót. A raszterizálás és a blending már kevésbé problémás terület. Mindenképpen negatív hatása lesz a sebességre az emulációnak, de még elfogadható keretek között.

A fentiekből látható, hogy már a tervezésnél is más szempontok játszanak szerepet, így a legtöbb ultramobil GPU más logika szerint működik. A különbségeket alapvetően könnyű megérteni, de nem árt egy kis általános alapozás, mielőtt belevágnánk. A grafikus megjelenítésnél csak az a fontos, hogy mit lát a felhasználó. A teljes világot a processzor tökéletesen leképzi, de teljesen felesleges minden információt képi adattá alakítani, hiszen csak a jelenet egy kis része látszik. Lényegében a grafikus processzor feladata csupán annyi, hogy ezt a kis részt rajzolja ki. Ez persze bonyolultabb dolog annál, mint ahogy így leírva hangzik, és rengeteg probléma merül fel a képi megjelenítés során, gondolva itt a nem látható objektumok kiszűrésére.

A nem látható és a takarásban lévő objektumok kivágása
A nem látható és a takarásban lévő objektumok kivágása [+]

A mai grafikus motorok rengeteg olyan eljárást használnak, amelyek elsődleges feladata a felesleges számítások elkerülése. Ha egy nagy objektum több kis objektumot eltakar, akkor azok számítása például felesleges, mert ez a képkockán nem fog plusz információt jelenteni. Erre manapság rengeteg algoritmus létezik, így megoldottnak tekinthető a probléma. A következő dilemma a nem látható poligonok eltüntetése. Teljesen egyértelmű, hogy egy virtuális alakzatnak csak az az oldala számít, ami az adott nézőpontból látszik. Első körben a különböző backface culling eljárások valamelyikét kell bevetni. Ezek alkalmazásával elvethetők azok a háromszögek, melyek normálvektorai a nézőpont irányvektorával 90 foknál nagyobb szöget zárnak be.

Ezen a ponton már nagyon sok feladattól megkíméltük a grafikus processzort, de még mindig lesz olyan számítás, amelyiknek az eredménye később feleslegesnek bizonyul. Képzeljük el, hogy egy kisebb szikla részben elfed egy nagyobbat. Ilyenkor mindkét virtuális sziklát le kell modellezni, majd meg kell kezdeni a leképzést a nem látható poligonok eldobálásával. Igen ám, de a kisebbik szikla olyan háromszögeket is kitakar a nagyobb modellből, amelyek ugyan nem látszanak, de a backface culling nem tüntette el őket. Szakmailag korrekt megfogalmazással élve a háromszögek normálvektorai a kamera felé néznek. Teljesen világos, hogy több háromszög van a képen, amit valahogy fel kell dolgozni, de ezek közül nem mindegyik látszik. Ez az a pont, ahol az egyes architektúrák másképp működnek, és el is jutottunk oda, hogy elemezhetjük a különbségeket.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés