Nvidia přináší podporu pro raytracing i pro Pascal / GeForce GTX 10x0
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.