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

AMD si patentovala raytracing s využitím texturovacích jednotek

Byť herní raytracing nedopadl podle očekávání většiny hráčů, objevuje se stále otázka, jak na situaci zareaguje AMD. Jednu z možností, nakonec i docela pravděpodobnou, popisuje zajímavý patent…

GeForce RTX zbývá do ročních narozenin zhruba 2,5 měsíce. Přes superlativy, které uvedení provázely, to ale s herním raytracingem nedopadlo tak, jak se situace jevila z prezentací při vydání a jim odpovídajícímu očekávání uživatelů. První zádrhel spočívá v podpoře hardwaru. Akceleraci specializovanými jednotkami nabízí Nvidia pouze na části GPU generace Turing, konkrétně v segmentu od $349 výše. To redukuje počet kompatibilních systémů a tím snižuje motivaci vývojářů, kteří obvykle nemají chuť vynakládat čas a finance na podporu technologií, které využije jen malá část uživatelů.

Druhý zádrhel se týká poklesu výkonu. Po vydání prvních her s podporou raytracingu překvapilo některé uživatele, jaký propad FPS tato technologie způsobí (a to je řeč pouze o hybridním renderingu, tedy rasterizaci doplněné o několik raytracing efektů). Pro kompenzaci bylo potřeba snižovat rozlišení a detaily, aby FPS zůstaly na hratelné úrovni. U většiny her tak zůstal raytracing doménou nejvýkonnějších modelů.

Třetím zádrhelem je absence her. Přestože se blíží rok vydání GeForce RTX, u většiny raytracing-kompatibilních her, o nichž se doposud mluvilo, stále zůstává u toho mluvení. Raytracing totiž aktuálně podporuje pouze Battlefield V, Assetto Corsa, Metro Exodus, Shadow of the Tomb Raider, Stay in the Light a Quake II RTX. To ještě uživatel musí přimhouřit oči nad tím, že některé z těchto titulů jsou ve fázi „early access“ a některé (nejen tedy Quake II, ale třeba i Assetto Corsa) jsou letité hry, které případný zájemce dohrál (i opakovaně) před mnoha lety. Podpora pro raytracing může v takovém případě vyvolat spíše nostalgické vzpomínky než nový herní zážitek.

To úzce souvisí i se čtvrtým bodem: Raytracing je i do většiny novodobých her doplňován řadu měsíců po jejich vydání. Pokud již uživatel hru dohrál řekněme v 2560×1440 s plnými detaily, pak asi bude silně individuální, zda bude mít zájem jí po třech měsících hrát znovu v 1920×1080 s omezenými detaily, ovšem s matematicky přesnějšími odlesky.

Pokud se bezmála po roce dostala celková situace do takto bídného stavu, nejsem osobně příliš optimistický co do výhledů a to i v případě, že v období 2020-2021 bude mít AMD i Nvidia na trhu hardware podporující raytracing ve všech cenových segmentech. Implementace do her jde evidentně pomalu, nějaké hromadné nadšení uživatelů (které by vývojářům sdělovalo, že při nákupu dá zákazník přednost hře podporující raytracing) chybí a celkově se zatím nezdá, že by raytracing ve hrách byla tak velká věc, za jakou byl loni vydáván. V nejlepším případě se bude šířit mnohem pomaleji, než se očekávalo.

Přestože se tedy poměrně dost mluví o tom, že druhá generace architektury RDNA nejspíš přinese nějakou formu hardwarové akcelerace pro raytracing, troufám si tvrdit, že reálně to bude poslední vlastnost, kterou budou uživatelé posuzovat během případného nákupu karet této generace. O úspěchu bude rozhodovat výkon, poměr cena / výkon, pokrytí segmentů produkty a dokonce si troufám tvrdi, že v praxi bude mít na výběr uživatelů větši vliv podpora akcelerace moderních formátů videa a přítomnost kupříkladu HDMI 2.1 než podpora pro herní raytracing.

Přítomnost hardwarové podpory pro herní raytracing na další generaci Radeonů se tak jeví spíše jako technologická zajímavost než prvek, který by něco změnil na úspěchu či neúspěchu této generace. Půjde spíše o formalitu. Je však zajímavé, jakým způsobem může být implementována. AMD má totiž patent, který popisuje provedení prostřednictvím texturovacích jednotek (TMU). Ne však, že by současné texturovací jednotky prováděly výpočty potřebné pro raytracing. Do stávající texturovací jednotky by byl implementován obvod pro výpočet BVH (Bounding Volume Hierarchy), testy průniků. U Nvidie právě pro tento účel slouží tzv. RT-Cores, jednotky implementované samostatně.

AMD v patentovaném konceptu vidí spojení výhod softwarového a hardwarového řešení: Výhoda hardwarového řešení, kterou si tato implementace odnáší, se týká výkonu a výhoda softwarového řešení se týká minimálních (byť ne nulových) nároků na tranzistory. Zatímco samotné jednotky pro raytracing nejsou nijak náročné na plochu čipu a tranzistory, rozpočet tranzistorů citelně navýší buffery, které vyžadují a obvody pro jejich řízení (resp. scheduling). Výhoda implementace na úrovni texturovacích jednotek spočívá v tom, že jednotky pro raytracing mohou využívat buffery texturovacích jednotek, které mají vyhovující parametry a jejich scheduling obstará shader processor, který běžně obstarává jakékoli současné odesílání dat pro texturing.

Mohla by se nabídnout otázka, jak bude AMD řešit denoising, který měl být podle materiálů Nvidie u GeForce RTX řešen prostřednictvím Tensor Cores. Realita je taková, že denoising přes Tensor Cores se neujal, alespoň dosud ne. Nevyužívá ho žádná z doposud vydaných her s podporou pro raytracing a nevyužívá ho ani žádná ohlášená, u které je tento detail známý. Všechny ro denoising využívají standardní aritmetické jednotky.

Dále může zaujmout i počet samotných jednotek pro raytracing. Kupříkladu taková GeForce RTX 2080 Ti disponuje 68 RT-Cores. Počet texturovacích jednotek je však u současné generace grafických čipů několikanásobně vyšší, jmenovaná GeForce jich má 272, 4× více. Mohlo by se tedy jevit, že stovky jednotek pro raytracing implementovaných v rámci TMU mohou nabídnout výrazně vyšší výkon než desítky jednotek samostatných. To sice může být pravda a s ohledem na tranzistory ušetřené na bufferech a schedulingu lze takových jednotek implementovat více, ovšem zatím nikde nebylo řečeno, jaký bude praktický výkon jedné jednotky. Není tedy jasné, zda bude zhruba stejný s RT-Cores nebo jejich vyšší počet bude na druhé straně vyvažovat nižší výkon na takt.

Nakonec se naskýtá otázka, zda implementace na úrovni texturovacích jednotek nebude negativně ovlivněna texturováním nebo naopak zda raytracing nesníží texturovací výkon. S trochou nadsázky (no, ona ta nadsázka u většiny případů ani není potřeba) však lze říct, že raytracing obecně znamená snížení FPS. Pokles FPS z hlediska vytížení jádra znamená, že vzniká limitující prvek (tím jsou výpočty a přesuny dat související s raytracingem) a ostatní části jádra - včetně texturovacích jednotek - spíše čekají než počítají. Využití těchto prostojů se tak jeví jako poměrně zajímavý nápad.

Tolik k teorii. Praxi bude možné hodnotit až když nějaký hardware s touto implementací přijde a hlavně - pokud vůbec nějaký hardware s touto implementací vznikne.

Zdroje: 

Diskuse ke článku AMD si patentovala raytracing s využitím texturovacích jednotek

Pondělí, 8 Červenec 2019 - 23:30 | majster | To som robil pred rokom, dal som tomu 2 tyzdne a...
Pondělí, 8 Červenec 2019 - 22:59 | Marek Moravčík | Ok. Vdaka. Som dost zvedavy ako je to cele...
Pondělí, 8 Červenec 2019 - 22:19 | majster | DX11 a SW verzia je tu https://uloz.to/!...
Pondělí, 8 Červenec 2019 - 20:44 | Marek Moravčík | To akoze NV umelo obmedzila DXR na non-RTX...
Pondělí, 8 Červenec 2019 - 19:04 | Tom | "Tak ako náhodou to vyšlo po RT mediálnom...
Pondělí, 8 Červenec 2019 - 17:36 | Marek Moravčík | Jasne. To by pomohlo tiez pre predstavu rychlosti...
Pondělí, 8 Červenec 2019 - 16:49 | majster | Skompilovane Cuda demo je tu https://code.google....
Pondělí, 8 Červenec 2019 - 16:09 | Marek Moravčík | Super. Vďaka za info. Určite sa na to pozriem.
Pondělí, 8 Červenec 2019 - 16:08 | majster | Som si pozrel https://github.com/matt77hias/...
Pondělí, 8 Červenec 2019 - 15:35 | Marek Moravčík | Dík za konštruktívny príspevok. Kde si inak tieto...

Zobrazit diskusi