Diit.cz - Novinky a informace o hardware, software a internetu

Nvidia přináší podporu pro raytracing i pro Pascal / GeForce GTX 10x0

Doposud jste mohli tzv. DirectX raytracing provozovat na hardwaru Nvidie z generace Turing a Volta. Nyní jej Nvidia prostřednictvím ovladačů zpřístupňuje i na Pascalu…

Zároveň však na několika slajdech ilustrovala, že to nebude na žádné komplexní efekty ani vysoký výkon. Architektura Pascalu není pro raytracing optimální. Můžeme si zrekapitulovat základní prvky, kterými s Pascal a Turing liší co do vlivu na výkon při raytracingu.

Vylepšení pro (herní) raytracing, která přinesla Volta (a převzal Turing)

První tři prvky, o kterých bude řeč, nabídla již architektura Volta. Proto na ní raytracing v Battlefield V běhá při podobných FPS jako na Turingu.

Jde jednak o upravený návrh cache. Ta byla v případě Pascalu optimalizovaná pro rendering, kde lze očekávat do jisté míry pravidelné přístupy k datům. V případě raytracingu není k datům přistupováno podle vzorů obvyklých u renderingu, což má za následek nižší výkon (cache nefunguje efektivně a rostou nároky na datové přenosy mezi jádrem a grafickou pamětí). Volta je již vybavena architekturou cache, která lépe vyhovuje požadavkům raytracingu (než cache Pascalu). Tento prvek přebírá i Turing.

Druhou změnou jsou samostatné výpočetní jednotky. Pascal byl vybaven FP32 jednotkami (a dále jednotkami, které jsou z hlediska raytracingu nezajímavé: FP64, SFU). Volta tyto jednotky doplňuje o Int32 a Tensor Cores. Int32 výpočty (celočíselné 32bit výpočty) bylo možné provádět i na FP32 jednotkách, ale pokud jsou v čipu oba typy, lze Int32 výpočty provádět paralelně s FP32 výpočty.

Třetí změnou je přítomnost Tensor Cores, která lze využít pro post-processing - odšumování, odstraňování artefaktů vznikajících v důsledku příliš nízkého počtu paprsků. Klasický herní Pascal (výpočetní Pascal je v tomto jiný) nepodporuje ani akcelerované FP16 výpočty, takže veškeré operace v tomto směru probíhají na FP32 jednotkách stejným tempem jako FP32 operace. Výpočetní Pascal GP100 zvládá FP16 výpočty 2× rychleji než FP32 podobně jako třeba Vega od AMD, ale herní verze (GP102, GP104 a tak dále) byl o tuto schopnost ochuzen. Tensor Cores, případně samostatné FP16 jednotky, nabízí i Turing.

Vylepšení pro raytracing, které přinesl Turing

Hlavní novinkou Turingu jsou RT-cores, o kterých toho bylo napsáno poměrně dost (byť ne dost s ohledem na informace o jejich hardwarové podobě). Dále bychom mohli zdůraznit přítomnost samostatných FP16 jednotek na malém Turingu (GeForce GTX 1660 / 1660 Ti). Tyto FP16 jednotky nahrazují Tensor Cores a stejně jako Tensor Cores nabízejí FP16 výkon odpovídající dvojnásobku FP32 výkonu. To se může zdát obdobné jako u výpočetního Pascalu, ale je zde jeden zásadní rozdíl. Zatímco u výpočetního Pascalu je 2× FP16 realizováno na FP32 jednotce (jako např. u Vegy), malý Turing má FP16 jednotky samostatné a schopné fungovat paralelně s FP32 jednotkami.

Přestože specifikace kupříkladu takové GeForce GTX 1660 hovoří jen o 1408 CUDA Cores, ve skutečnosti je čip vybaven 1408 FP32 jednotkami + 1408 Int32 jednotkami + 2816 FP16 jednotkami (+4 SFU jednotkami). To je velmi odlišný koncept oproti hardwaru AMD, kde jeden typ jednotek umí pracovat s FP i Int a zároveň přesnosti od 4bit až po 64bit.

Raytracing pro Pascal

Nvidia ohlásila, že v dubnu vydá ovladač, který nabídne podporu pro herní raytracing i na architektuře Pascal. Nvidia uvádí, že oproti Pascalu v podobě GeForce GTX 1080 Ti je Turing v podobě GeForce RTX 2080 při raytracingu 1,6-3× rychlejší.

Jednotlivé grafy ale odhalují, že toto srovnání tak trochu míchá hrušky s jablky, neboť počítá s použitím DLSS, která však nemá s raytracingem nic společného. Srovnání při stejných podmínkách pro obě architektury co do raytracingu tedy namísto „3ד v Metro Exodus vychází spíš 2,5×, namísto „2ד v Shadow of the Tomb Raider vychází spíš 1,5-1,6× a namísto „1,6ד v Battlefield V odpovídá spíš 1,3-1,4×.

Na dalším slajdu Nvidia ukazuje, jak RT-Cores, Tensor Core a Int32 jednotky akcelerují raytracing. Jde o graf v Metro Exodus, kde je rozdíl největší (a ještě s použitím DLSS, což vnáší výše zmíněné zkreslení). Nakonec se zdá, že výseky průběhů zátěže jednotlivých výpočetních jednotek nejsou úplně identické - v prostředním pruhu je ve srovnání s prostředním pruhem zřejmě useknuta část zátěže, kterou v posledním pruhu přebírají Tensor Cores.

Závěrem je třeba zdůraznit, že z grafů nevyčteme, do jaké míry se na zlepšení u Turingu podepsaly hardwarové změny jako upravené cache a efektivnější rasterizér. Ty totiž zajisté nějaký vliv mají a pokud si to člověk při hodnocení průběhů neuvědomuje, mohlo by dospět k mylnému závěru, že veškeré rozdíly mezi Pascalem a prvním řádkem Turingu jdou na vrub Int32 jednotek u Turingu.

Diskuse ke článku Nvidia přináší podporu pro raytracing i pro Pascal / GeForce GTX 10x0

Sobota, 23 Březen 2019 - 19:44 | НКВД | Fakt, za dva litry ze Zlina z bazose, je to 4GB,...
Sobota, 23 Březen 2019 - 19:40 | hajčus | Za dva litry? Proč by ne? :)
Pátek, 22 Březen 2019 - 12:19 | Marek Moravčík | Určite nie. Zatiaľ ale nemáme iné porovnanie kým...
Pátek, 22 Březen 2019 - 12:11 | Mali | "Minimálne podľa toho čo uviedla NV"...
Pátek, 22 Březen 2019 - 12:09 | Mali | No jezne o tom to prave je. V jake fazy se ty...
Čtvrtek, 21 Březen 2019 - 20:44 | НКВД | Jojo, přesně tak. Divím se, že zůstal...
Čtvrtek, 21 Březen 2019 - 17:26 | Psycho1000 | Pragmaticky prispevek? Vzdyt je to jedna blbost...
Čtvrtek, 21 Březen 2019 - 17:13 | Deiv | Myslím, že kolega НКВД měl komentář řádně označit...
Čtvrtek, 21 Březen 2019 - 14:59 | Doležal Petr | Vzhledem k tomu že RTX označení mají jen grafiky...
Čtvrtek, 21 Březen 2019 - 14:29 | НКВД | Dík za upřesnění, aspoň se mi tahle zbytečnost...

Zobrazit diskusi