Aszinkron számítás, AMD, Nvidia és DX12: Amit eddig tudtunk

AMD-vs-NV

Amióta meghirdették a DirectX 12-et, az AMD és az Nvidia beugrott arra, hogy melyiket ajánlja fel jobb támogatás az új API-hoz és annak különféle szolgáltatásaihoz. Az egyik képesség, amelyről az AMD sokat beszélt, a GCN támogatása aszinkron számítás. Az aszinkron számítás lehetővé teszi, hogy az AMD GCN architektúráján alapuló összes GPU grafikát és számítási munkákat egyidejűleg hajtson végre. A múlt héten az Oxide Games egyik alkalmazottja arról számolt be, hogy az általános hiedelemmel ellentétben az Nvidia hardver nem tudott aszinkron számítást végezni és hogy az ennek megkísérlésével a teljesítmény hatása katasztrofális volt a vállalat hardverére nézve.

Ez a bejelentés számos kutatást indított azzal kapcsolatban, hogy mit tett és nem támogatott az Nvidia hardver, valamint olyan anekdotikus állításokat, amelyek szerint az emberek visszaadják (vagy már megtették) a GTX 980 Ti-t A szingularitás hamvai teljesítmény. Az elmúlt napokat beszélgetéssel töltöttük különféle forrásokkal, amelyek a probléma megoldásával foglalkoztak, beleértve Mahigant és a CrazyElf-et az Overclock.net webhelyen, valamint elemeztük a különböző adatsorokat és teljesítményjelentéseket. Az Nvidia egyelőre nem válaszolt a pontosításra vonatkozó kérésünkre, de itt van a helyzet, ahogyan ezt jelenleg értjük.

Nvidia, AMD és aszinkron számítás

Amikor az AMD és az Nvidia az aszinkron számítás támogatásáról beszél, nem ugyanazon hardveres képességről beszélnek. Az aszinkron parancsmotorok az AMD GPU-jaiban (2-8 között, attól függően, hogy melyik kártya birtokában van) képesek új munkaterhelések végrehajtására olyan késleltetési idő alatt, mint egyetlen ciklus. Egy csúcskategóriás AMD-kártyának nyolc ACE-je van, és mindegyik ACE-nek nyolc sora van. A Maxwell ezzel szemben két csővezetékkel rendelkezik, amelyek közül az egyik kiemelt fontosságú grafikus csővezeték. A másik sormélysége 31 -, de az Nvidia nem tud olyan gyorsan kontextust váltani, mint az AMD.



NV-Preemptió

A 2015. évi GDC-n elhangzott beszélgetés szerint korlátozások vannak érvényben az Nvidia elővásárlási képességeivel szemben. A dián található további szöveg elmagyarázza, hogy „a GPU csak híváshatároknál tud váltani a kontextuson” és „A jövőbeni GPU-kkal azon dolgozunk, hogy finomabb részletezésű előfizetéseket engedélyezzünk, de ez még messze van.” A Maxwell és a GCN különféle képességeinek feltárásához a Beyond3D és az Overclock.net felhasználói aszinkron számítási teszteket alkalmaztak, amelyek mind az AMD, mind az Nvidia hardveren értékelték a képességeket. A referenciaértéket a héten többször felülvizsgálták, így a korai eredmények nem hasonlíthatók össze a későbbi futtatások során látott adatokkal.

Vegye figyelembe, hogy ez az aszinkron számítás tesztje késleltetés, nem pedig a teljesítmény. Ez nem teszteli a teljes áteresztőképességet - más szóval, csak azt, hogy mennyi időbe telik a végrehajtása -, és a tesztet arra tervezték, hogy bemutassa, történik-e aszinkron számítás vagy sem. Mivel ez egy késleltetési teszt, az alacsonyabb számok (közelebb a sárga „1” vonalhoz) azt jelentik, hogy az eredmények közelebb vannak az ideálishoz.

Radeon R9 290

Íme az R9 290 teljesítménye. A sárga vonal a tökéletesség - ezt kapnánk, ha a GPU azonnal váltaná és végrehajtaná. A grafikon y tengelye normalizált teljesítményt mutat 1x-re, ahol tökéletes aszinkron késleltetésre számíthatunk. A piros vonal az, ami a legjobban érdekel. Ez azt mutatja, hogy a GCN az esetek többségében majdnem ideálisan teljesít, miközben a szálszám növekedésével stabil marad a teljesítmény. Most hasonlítsa össze ezt az Nvidia GTX 980 Ti-jével.

vevF50L

A grafika végrehajtásának és egyidejű számításának megkísérlése a GTX 980 Ti-nél a teljesítmény csökkenését és megugrását eredményezi, és csekély mértékben növeli a nyereséget. Jelenleg csak néhány szálszám van, ahol az Nvidia megfelel az ideális teljesítménynek (ebben az esetben késés), és sok esetben, amikor nem. További vizsgálatok azt mutatták, hogy az Nvidia asynch csővezetéke úgy tűnik, hogy néhány kezdeti lépésnél a CPU-ra támaszkodik, míg az AMD GCN hardveresen kezeli a munkát.

Jelenleg a rendelkezésre álló legjobb bizonyítékok arra utalnak, hogy amikor az AMD és az Nvidia aszinkron számításról beszél, két nagyon különböző képességről beszélnek. Az „aszinkron számítás” valójában nem feltétlenül a legjobb név annak, ami itt történik. A kérdés az, hogy az Nvidia GPU-k képesek-e futtatni grafikákat és kiszámítani a terheléseket egyidejűleg. Az AMD igen, az ACE egységeinek jóvoltából.

Felvetődött, hogy az AMD megközelítése inkább hasonlít a Hyper-Threading programhoz, amely lehetővé teszi a GPU számára, hogy egyszerre dolgozzon különböző számítási és grafikus munkaterheléseken teljesítményvesztés nélkül, míg az Nvidia lehet, hogy a kezdeti telepítési lépések egy részében a CPU-ra támaszkodik, és megpróbálja egyidejű számítás + grafikus munkaterhelés ütemezése az ideális végrehajtás érdekében Nyilvánvaló, hogy ez a folyamat még nem működik jól. Eredeti cikkünk óta az Oxide az alábbiakat állította:

„Valójában csak az Nvidia-val csevegtünk az Async Compute-ról, sőt, az illesztőprogram még nem hajtotta végre teljesen, de úgy tűnt, mintha lenne. Szorosan együttműködünk velük, mivel teljes mértékben megvalósítják az Async Compute alkalmazást. ”

A Nvidia saját előadásai a GDC-nél és az elmúlt héten összeállított különféle teszt-referenciaértékek alapján ezt valószínűleg jelentheti. A Maxwell nem rendelkezik aszinkron számítási motorok GCN-stílusú konfigurációjával, és nem tud olyan gyorsan váltani a grafika és a számítási munkaterhelések között, mint a GCN. A Beyond3D felhasználó szerint Ext3h:

„Eredetileg voltak olyan állítások, amelyek szerint az Nvidia GPU-k egyáltalán nem lesznek képesek aszinkron számítási árnyékolókat aszinkron módon végrehajtani, ezt a mítoszt gyorsan lebontották. Az azonban világossá vált, hogy az Nvidia GPU-k sokkal könnyebb terhelést részesítettek előnyben, mint az AMD kártyák. Kis terhelés esetén az Nvidia GPU-k köröket futnának az AMD-kártyák körül. Nagy terhelésnél, éppen ellenkezőleg, egészen addig a pontig, amikor az Nvidia GPU-k olyan hosszú időbe teltek a munkaterhelés feldolgozásáig, hogy kiváltották a biztosítékokat a Windows rendszerben. Ez arra késztette a Windowsot, hogy meghúzza a ravaszt és megölje az illesztőprogramot, feltételezve, hogy elakadt.

„Végeredmény (egyelőre): Az AMD GPU-k sokkal nagyobb terhelésre képesek. Körülbelül tízszer akkora, mint amennyit az Nvidia GPU képes kezelni. De nekik is körülbelül négyszeres nyomásra van szükségük, mielőtt kijátszanák az ottani képességeket. ”

Az Ext3h azt állítja, hogy az Nvidia esetében az elővásárlást csak akkor használják, amikor a grafikus összefüggések (1x grafika + 31 számítási mód) és a 'tiszta számítási kontextus' között váltanak, de azt állítja, hogy ez a funkció 'teljesen megtört”Jelenleg az Nvidia kártyákon. Ő azt is megállapítja hogy míg a Maxwell 2 (GTX 900 család) képes párhuzamos végrehajtásra, „A hardver ugyan nem sokat profitál belőle, mivel az árnyékolók hasznosításában mindkét irányban csak kevés„ rés van ”. Tehát végül még mindig csak a legtöbb munkaterhelés szekvenciális végrehajtása, annak ellenére, hogy ha valamilyen módon sikerült elakasztania a csővezetéket egy szerencsétlen munkaterhelés megépítésével, akkor is profitálhat belőle. '

Az Nvidia eközben képviselte az Oxide számára, hogy tud implementálja az aszinkron számítást, és hogy ez a képesség nem volt teljesen engedélyezve az illesztőprogramokban. Az Oxide-hoz hasonlóan mi is várni fogunk, és megnézhetjük, hogyan alakul a helyzet. A Beyond3D elemzési szála nagyon egyértelművé teszi, hogy ez egy hihetetlenül összetett kérdés, és sok minden nem világos, amit az Nvidia és Maxwell csinál vagy nem.

Korábban említettük, hogy az AMD aszinkron számítástechnikai megközelítése felszínesen hasonlított a Hyper-Threadinghez. Van még egy módja annak, hogy az analógia pontosnak bizonyulhat: Amikor a Hyper-Threading debütált, sok AMD-rajongó megkérdezte, hogy a Red Team miért nem másolta le a funkciót a K7 és K8 teljesítményének növelése érdekében. Az AMD akkori válasza az volt, hogy a K7 és K8 processzorok sokkal rövidebb csővezetékekkel és nagyon eltérő architektúrájúak voltak, és emiatt lényegében kevésbé valószínű, hogy profitálnának a Hyper-Threading előnyeiből. A P4 ezzel szemben hosszú csővezetékkel és viszonylag magas elakadási sebességgel rendelkezett. Ha az egyik szál elakadt, a HT engedélyezte egy másik szál folytatását, ami növelte a chip általános teljesítményét.

A GCN stílusú aszinkron számítástechnika valószínűleg nem növeli a Maxwell teljesítményét, más szóval, mert a Maxwell nem igazán ilyen típusú terhelésekre készült. Hogy az Nvidia képes-e megkerülni ezt a korlátozást (vagy még gyorsabban megvalósíthat valamit), az még várat magára.

Copyright © Minden Jog Fenntartva | 2007es.com