Hirdetés

Sokban különbözik az AMD és az NVIDIA hardveres implementációja a sugárkövetésre

Az NVIDIA a bejárási lépcsőt egy fixfunkciós hardverrel oldja meg, míg az AMD a programozhatóságot választotta.

Nem titok, hogy az új generációs konzolok a sugárkövetést hardveresen gyorsítva is támogatni fogják, ami nagy valószínűséggel a PC-s portokra is hatással lesz, tehát az új grafikus vezérlők esetében is érdemes a feldolgozás egyes fázisait gyorsítani. A legfőbb kérdés a hogyan, ugyanis a DirectX Raytracing (DXR) meglehetősen szabad specifikációkat alkalmaz, így kifejezetten sokféle hardveres dizájnt támogat. Ennek az oka, hogy a Microsoft a gyors elterjedést tartotta szem előtt, illetve a sugárkövetés amúgy is egy olyan problémakör, amelynek futószalaglépcsőire jól illeszthetők a grafikus vezérlők.

A DXR 1.0-t és 1.1-et tehát effektíve olyan hardverrel is lehet támogatni, amelyben semelyik lépcsőre nincs speciális hardver, de ha van, akkor szabadon be lehet fogni. A kompatibilitás a szoftver oldalán tehát elég nagy, míg a hardver tekintetében számos implementáció megengedett.

Eddig az NVIDIA rendelkezett megfelelő, gyorsításra használható részegységekkel, amelyeket RT magoknak hívtak. Ezek a Turing architektúrában egy nagyobb hardverelem részei, de a lényegük az, hogy az adott multiprocesszoron belül gyorsítsák a bejárást, illetve a metszésvizsgálatot. Technikailag az RT magok ugyanahhoz az ütemezőhöz kapcsolódnak, amihez a textúrázóegységek, továbbá ugyanazokba a gyorsítótárakba is dolgoznak, viszont alapvetően elszeparált adatbuszokkal működnek, ugyanis különálló hardveres blokkot alkotnak.

Az AMD megoldásával kapcsolatban a Microsoft az idei Hot Chips alkalmával beszélt, és láthatóan másképp épül fel, ráadásul megtudtuk, hogy ez nem az Xbox Series X sajátossága, ezt a dizájnt használják majd a PC-kbe szánt, RDNA 2 architektúrára épülő GPU-k, de még a PlayStation 5 konzol is. A Radeonok esetében a textúrázóegységek része a rendszer, így ugyanazt az adatbuszt használják, de egy külön hardverelem felel a metszésvizsgálatért. Emiatt van az, hogy az AMD dizájnjával vagy textúrázó operáció vagy doboz/háromszög metszésvizsgálat történik, a kettő párhuzamosan nem mehet. Utóbbi a Hot Chips előadás alkalmával fel is merült kérdésként, hogy limitet jelenthet-e, de kiderült, hogy a DXR 1.0 és 1.1 futószalagjának nincs olyan lépcsője, amely egyszerre generálna textúrázásra és metszésvizsgálatra vonatkozó feladatokat, azaz vagy az egyikre, vagy a másikra lesz szükség, a kettőre együtt viszont sosem. Emiatt tervezték így a hardvert, mert egy külön buszt alkalmazni nagymértékű energiapazarlás lett volna.

Rögtön felmerülhet a kérdés: az NVIDIA miért is alkalmaz extra buszt? Nos, nem a metszésvizsgálat miatt, ugyanis az náluk sem menne párhuzamosan a textúrázó operációkkal, ellenben a Turing RT magja fixfunkciós hardveren végzi a bejárást is, ami már limitálhatná a textúrázási képességeket, ha ugyanazon a buszon közlekednének az adatok. Az AMD a bejárásra más megoldást választott, így fixfunkciós hardver helyett a shader feldolgozókat egészítették ki bizonyos képességekkel, hogy hatékonyan meg tudják oldani ezt a feladatot.

A bejárás tekintetében tehát az NVIDIA és az AMD koncepcióbeli különbséget alkalmaz. Az NVIDIA megoldása abból a szempontból előnyös, hogy külön hardverelem végzi a munkát, így az nem terheli a multiprocesszorok általános feldolgozóit, viszont maga a folyamat nem programozható. Az AMD esetében pont ennek az ellentéte érvényesül, mivel az általános feldolgozókon fut a bejárás, ami ezekre nézve extra terhelés, cserébe az egész futószalaglépcső programozhatóvá vált. Megtudtuk, hogy utóbbi tényező az új Xbox miatt alakult ki, ugyanis a Microsoft viszonylag sok tapasztalatot gyűjtött a PC-re fejlesztett sugárkövetési rendszerrel. Ilyen formában a DirectX Raytracing egy állatorvosi lónak is felfogható, amivel a redmondiak kipróbáltak egy modellt, aminek láthatták a jó és a rossz részeit. A bejárásra vonatkozóan mindig az egyik legnagyobb kérdés volt, hogy a fixfunkciós hardver, vagy a programozható futószalag vezet jobb eredményhez. Előre sajnos nem lehetett megmondani, de a tapasztalatok alapján a Microsoft végül a programozhatóság mellett tette le a voksát, így pedig az AMD is, hiszen aránytalanul nagy többletmunka lenne radikálisan eltérő hardverdizájnt tervezni a PC-kbe, vagyis végül a konzolokhoz szánt alap megy mindenhova.

De miért lehet jobb a programozhatóság? Valójában nem jobb, inkább más optimalizálást igényel. Mindkét iránynak vannak előnyei és hátrányai, a gondot az jelenti, hogy ezek nem a nyers hardveren fognak meglátszódni, hanem amikor készül egy program és kiderül, hogy valamiért egészen rossz a teljesítménye a sugárkövetést használó effektnek. Mintha ilyen lett volna PC-n, emlékezhetünk a Shadow of the Tomb Raider esetére, amelyhez a 2018-as esztendő őszére ígérték a fejlesztők a sugárkövetést tartalmazó frissítést, majd ez egészen az előző év tavaszáig csúszott. Pedig csak egy szimpla árnyék effektről volt szó, ami ugye nem is alkalmaz árnyalást, effektíve a legkönnyebben beépíthető sugárkövetéses eljárás, és arányaiban a teljesítményigénye is igen csekély. Akkor mi tartott fél évig? Leginkább a Turing architektúra fixfunkciós hardveréhez való igazodás, ugyanis a programozhatóság hiányában arra kellett építeni, amit a hardver felkínált, de az egészen rosszul működött bizonyos modellekkel, így végül nem volt más választása a fejlesztőknek, mint a modellek áttervezése. Ezekkel hónapról-hónapra ütötték ki a fixfunkciós bejárással keletkező limitációkat, ráadásul nem volt túl könnyű dolguk, mivel az NVIDIA nem publikálja az alkalmazott hardveres implementációjuk korlátjait, bár valószínű, hogy a fejlesztői kérdésekre azért válaszolnak, így egyengetni tudják a tartalomoptimalizálást.

A Microsoft már korábban felfigyelhetett erre a problémára, és bizonyos szempontból kézenfekvőbb a bejárási lépcsőt programozhatóvá tenni, mint egy limitekkel rendelkező fixfunkciós hardverhez igazítani a tartalomtervezést. Ez az új konzolok esetében különösen fontos, hiszen egészen durván el lehet majd szállni a háromszögek mennyiségével, viszont egy ilyen lépés igen mély BVH gyorsítóstruktúrát is igényel, amihez nem árt majd egyedileg programozott bejárást tervezni.

A fentiek alapján az is érthető, hogy miért dolgozik külön DirectX Raytracing kiegészítésen az AMD. A szabványos DXR 1.0 és 1.1 csak az adott meghajtóimplementációba tervezett működést engedi meg használni, szabadon konfigurálható BVH bejárást nem támogat. Ehhez a Radeon Rays 4.0-t kell bevetni, aminek az egyik módjába áthozhatók majd a konzolra írt compute shaderek, és ezen keresztül már a PC-kbe szánt RDNA 2-es GPU-k is képesek futtatni a konzolokhoz tervezett optimalizálást.

Hosszabb távon valószínűleg szabványban előírt követelmény lesz a bejárás programozhatósága PC-n is, elvégre a konzolok nem véletlenül mennek el ilyen irányba. Egyelőre viszont a Microsoftnak figyelembe kell vennie, hogy nem minden hardver multiprocesszora van tökéletesen felkészítve ilyen lehetőségekre, továbbá nem minden felhasználó vált azonnal új generációs GPU-kra, amint megjelennek, tehát a PC-s átállás némileg hosszabb lesz, de ezt már megszokhattuk. Kérdés még, hogy az NVIDIA az Ampere architektúrához tervez-e hasonló lehetőséget egy DirectX Raytracing kiegészítéssel, hiszen nagyon sok esetében számukra is hasznos lenne a programozhatóság, idejük pedig bőven volt ennek megfelelően kialakítani a multiprocesszorokat.

Azóta történt

Előzmények

Hirdetés