Már a csapból is a DirectX 11 folyik

Az AMD igen erős reklámhadjáratba kezdett a DirectX 11 kapcsán. Az új API az októberben megjelenő Microsoft Windows 7 operációs rendszerrel együtt érkezik, ám a Vista kedvelőinek sem kell szomorkodniuk, ugyanis egy későbbi frissítéssel nekik is elérhető lesz a platform. A vörös oldal ősszel már el is kezdi szállítani a DirectX 11-et támogató grafikus kártyáit, melyeket Evergreen kódnéven emleget a vállalat. Az idei Computex alkalmával már kaphattunk egy kis betekintést az új API lényeges pontjaiba, ám a megjelenés közeledtével az AMD tágabb értelemben is bemutatja a rendszer előnyeit.

Tesszellátor

Az AMD szóvivője szerint a teljesen hardveres tesszelláció először mutatja meg oroszlánkörmeit egy szabványos API-ban. A vállalat természetesen nem győzi hangsúlyozni, hogy a Radeon rendszerek már hat generáció óta alkalmaznak valamilyen nem szabványos megoldást, így a mérnökök hatalmas tapasztalattal rendelkeznek az eljárás buktatóit illetően. Tudvalevő, hogy az Xbox 360 Xenos névre keresztelt grafikus processzorában található tesszellátor egység bekerült a Radeon HD szériás kártyákba is, ezt ugyan eddig egyetlen PC-s játék sem használta ki, de a DirectX 11 tesszelláció eljárása a Xenos-féle rendszer elméleti alapjaira építkezik.

A két rendszer konkrét különbségeiről már írtunk egy korábbi cikkünkben, így most nem jellemezzük őket, inkább érdemes azt elemezni, mi előnye származott az AMD-nek a Xenosszal kompatibilis tesszellátor PC-s grafikus processzorokba való építéséből. Maga a tesszelláció számos elméleti problémát vet fel, emellett a gyakorlati használat mellett is lehetnek a chipen belül korlátozó tényezők. Az Evergreen kártyacsalád fejlesztése során a mérnökök a Xenos-féle tesszellálás teljesítményét a gyakorlatban elemezhették, így a rendszeren belül keletkező szűk keresztmetszetek hatékonyan felderíthetők. Mivel a DirectX 11 elgondolása nagyban épít az AMD fejlesztéseire, nem elképzelhetetlen, hogy elsőre tökéletesen működő rendszert sikerül majd alkotni.

Az elméleti oldalról a tesszellálás legnagyobb buktatója a rendszerek triangle setup teljesítménye. A setup egység felel ugyanis a nem látható háromszögek levágásáért, illetve beállítja a végleges poligonvázat, mely alapján majd a raszterizálás történik. A mai unified shader alapú rendszerek kivétel nélkül egy setup egységet alkalmaznak, ami órajelenként egy háromszög feldolgozását teszi lehetővé. A tesszelláció használatával azonban ez a teljesítmény a modellek részletességének ugrásszerű növekedésével esetenként kevés is lehet. Erre jelenthet megoldást több triangle setup egység vagy több grafikus processzor használata.

Az AMD az elmúlt években elsősorban a multi-GPU-s rendszerek fejlesztését erőltette, aminek elsősorban stratégiai jelentősége volt. A tesszelláció bevezetésével azonban a teljesítmény szempontjából is indokolható ez az elv. Komolyabb geometriai részletesség mellett ugyanis kifizetődőbb két viszonylag kis teljesítményű grafikus chip összekötése, mint egy darab, arányaiban jobb képességű lapka alkalmazása. Ha a gyengébbik és az erősebbik GPU triangle setup teljesítménye megegyezik, akkor a két kisebbik lapka akár dupla olyan gyors is lehet, mint „behemót” testvére. Természetesen érdemes kihangsúlyozni, hogy nagyon részletes modellek kellenek, mivel el kell érni azt, hogy a triangle setup egység legyen a szűk keresztmetszet.


DiRT 2 - DirectX 11-re hangolva

Compute shader

A DirectX 11 másik nagy újítása a compute shader, mely a grafikus processzorok erejét az általános számításokban kamatoztatja. Természetesen a rendszer a grafikai számítások esetén is tökéletesen hasznosítható, többek között használható sugárkövetésre, képkockák utófeldolgozására, valamint objektumsorrendtől független átlátszóságszámításra.

Korábban már említettük, hogy a compute shader használatához minimum DirectX 10-es hardver szükséges, ám a DirectX 11-es mód nagyobb tudással rendelkezik, ami szebb képminőséget és nagyobb sebességet eredményezhet. Az egyes modellek közötti legfontosabb különbségeket az alábbi táblázat foglalja össze:

Microsoft DirectX 11

Compute Shader 4.0
Compute Shader 4.1 Compute Shader 5.0
Local Data Share nincs nincs van
Gather4
nincs van van
Atomi művelet nincs nincs van
Dupla pontosság nincs van van

A compute shader 5.0 legnagyobb előnyének a Local Data Share számít, ami a különböző folyamatszálak közötti memóriamegosztást teszi lehetővé. Ezzel a megoldással a textúrázó csatornák több esetben is felmenthetők a munka alól, hiszen jó esély van rá, hogy a szükséges adat egy korábbi mintavételezés alkalmával létrejött. A felesleges munkától megkímélve a rendszert az eljárás számítási sebessége jelentősen felgyorsítható. Az AMD szerint az erőforrásigény akár a harmadára is csökkenthető. Vegyük példának a manapság egyre csak terjedő Screen Space Ambient Occlusion effektet, melyről egy korábbi írásunkban már beszámoltunk. Ennek megfelelően az eljárás magyarázatát nem írjuk le még egyszer, de a sebesség szempontjából érdemes megvizsgálni az egyes API-k képességeit. Az effekt nyilvánvalóan a DirectX 10-es rendszeren a leglassabb, hiszen a pixel shader kód órajelenként egy mintához jut, míg a DirectX 10.1-es kártyák a Gather4 utasításnak köszönhetően egy mintavételből négyszer annyi adatmennyiséghez jutnak. Ez önmagában négyszeres sebességet jelent az eljárás teljesítményigénye szempontjából, ami a gyakorlati tapasztalatok alapján 20-25%-kal gyorsabb képkocka-feldolgozást eredményez. A Local Data Share még ezt a teljesítményt is képes tovább emelni. Az AMD szerint a compute shader 5.0-s kód még a Gather4 utasítással operáló pixel shader 4.1-es megoldáshoz viszonyítva is háromszor gyorsabb, ami a teljes képkockára levetítve további 10-15%-os gyorsulást eredményezhet.

A másik nagy újítás az atomi műveletek alkalmazásának lehetősége. Ez nagymértékben megkönnyíti a programozók munkáját, továbbá rengeteg programszál problémamentes futtatását teszi lehetővé. Az atomi műveletek bevezetésére már régóta várnak a programozók, ugyanis a grafikus processzorok rengeteg, mondhatni több száz programszálat futtatnak párhuzamosan. Ilyen körülmények mellett aránylag sűrűn előfordulhat az az eset, amikor egy vagy több programszál ugyanazt a változót próbálja kezelni, vagy azonos memóriacímet kísérel meg elérni. Ezek a problémák természetesen hibás feldolgozást eredményezhetnek az úgynevezett korrupt adatok okán. Ilyen esetben a programozónak át kellett alakítania az egyik algoritmust, hogy elkerülje a jelenséget, rosszabb esetben pedig soros műveletvégzést kellett alkalmazni a megosztott változók, illetve a memória eléréséhez. Utóbbi elgondolás természetesen hatalmas probléma, hiszen kiüti a párhuzamos feldolgozást, ami esetenként komoly teljesítményveszteséget eredményez. Az atomi műveletekkel lehetőség van az előbbi problémát úgy kezelni, hogy a párhuzamos feldolgozás megfelelően legyen végrehajtva.

Örökzöld invázió?

Az új AMD grafikus kártyákról még mindig kevés az információ, de jó esély van arra, hogy nem egy, hanem kettő grafikus processzor érkezik. Ennek megfelelően a vörös oldal várhatóan lecseréli a Radeon HD 4800 feletti kínálatot, amit az is alátámaszt, hogy a konkurens vállalathoz viszonyítva irreálisan alacsony árazással szórják ki a készleteket a raktárakból. Az Evergreen családba tartozó termékek paramétereit várhatóan augusztus végén véglegesíti az AMD.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés