Jedna z věcí, o které se dlouze mluví, je špatný výkon AMD grafické karty v Ray Tracing , zejména ve srovnání s NVIDIA's. Mnozí však rozhodí rukama, když řekneme, že implementace potřebného hardwaru Radeon Technology Group je tak špatná, že to vypadá doslova jako bojkot přijetí této technologie. Což si připomeňme, že ideální je řešit určité vizuální problémy v počítačové grafice a není to ani výmysl výrobce GeForce.
Pro nás je hlavní funkcí grafické karty to, že nám umožňuje hrát naše hry s lehkostí a výkonem a zároveň, že pokud ji budete potřebovat pro profesionálnější úkoly, jako je střih videa nebo tvorba 3D modelů, je toho víc než dost. s jeho prací. Když říkáme, že AMD má malý výkon v Ray Tracing, nestavíme NVIDIA pod střechu, ale spíše jako uživatelé, kterými jsme také my, jsme zarmouceni, když vidíme, že něco, co by v Radeonech mohlo být mnohem lepší, není.
Algoritmus sledování paprsku
Abychom pochopili slabý výkon karet AMD v Ray Tracing, musíme pochopit, že se ve skutečnosti jedná o rekurzivní algoritmus pro generování kompletní scény, kterou lze ve své nejjednodušší verzi shrnout následovně:
- Pro každý pixel ve scéně
- Vypočítejte paprsek vizualizace
- Pokud blesk zasáhne předmět, vyhodnoťte barvu předmětu.
- Pokud ne, má tento pixel barvu pozadí.
- Vypočítejte paprsek vizualizace
Paprsek není nic jiného než vektor, který se pohybuje z kamery, která „zaznamenává“ scénu, a který protíná matici bodů nebo síť, kde každý z nich je pixel. Pokaždé se na scéně provede kontrolní efekt. No, pokud máme scénu ve Full HD, znamená to, že bude třeba provést 2 miliony kontrol, pokud je hra na 60 FPS, je to 120 milionů kontrol za sekundu.
Matematicky nejběžnější vzorec pro kontrolu není jednoduchá operace, ale spíše složitá rovnice s vektory, která vyžaduje určitou sílu. Natolik, že prostý fakt, že tento úkol nemá na starosti paralelní jednotka, může snížit procentuální výkon na jednociferná čísla.
Hardwarové průsečíkové jednotky
To je důvod, proč má NVIDIA jádra RT a AMD má jednotky Ray Accelerator Units, jsou stejné, protože se jedná o stejný typ jednotky a používají se pro stejný úkol. V poslední generaci však měl RX 6000 omezení, které naštěstí RTG vyřešilo v RDNA 3 a následně i v řadě RX 7000.
V čem je tedy problém?
- Dobrá věc a tedy pozitivní je, že nyní to, co v RDNA 2 chybělo, bylo zahrnuto do RDNA 3.
- Špatná věc a to, co nás nutí mít slabý výkon Ray Tracing na AMD, je množství interakcí paprsek-trojúhelník že to umí spočítat. Skok o pouhých 50 % je velmi slabý, když váš soupeř zdvojnásobil výkon z jedné generace na druhou.
Nezapomínejme, že první 3D karty, které se objevily na trhu, měly na svědomí stále větší zrychlení provozu trojúhelníkové rasterizace, která je v tomto ohledu nejčastější. Totéž platí pro tuto část sledování paprsků. Takže skutečnost, že AMD v tomto ohledu udělala tak malý skok, je zklamáním.
Jak to ovlivní celkový výkon?
Průnik paprsků je sice součástí výpravy, ale je společným prvkem všech scén, který je podstatný. Nezapomínejme, že jde o proces, který prochází fázemi, kdy skutečnost, že jeden jede pomaleji než normálně, ovlivní výkon následujících.
Pokud se nám tedy podaří zrychlit fázi, získáme kratší čas na vygenerování stejného snímku, to znamená, že to trvá méně milisekund a to je více snímků za sekundu. Musí být jasné, že proces průniku je v Ray Tracing rekurzivní a kontinuální, a proto je nutné, aby tato část měla dobrý výkon.
Další problém: výkon s pohyblivou řádovou čárkou
GPU obvykle pracují na blocích dat unisono a aplikují na ně stejné instrukce. Proto je jeho základním typem jednotky to, co nazýváme jednotky SIMD, které, jak jejich název napovídá, aplikují stejnou instrukci na několik různých dat současně. No, NVIDIA v RTX 30 provedla poměrně kuriózní vylepšení, které jí umožňuje vypočítat dvakrát tolik 32bitových operací s pohyblivou řádovou čárkou na takt a jádro.
Trik spočíval v přidání druhé 16prvkové SIMD jednotky na každé z podjádrů, takže celkem 64 dalších operací na jednotku uvnitř GPU. Nezvýšily však počet záznamů nebo přístupů, protože byly zaměňovány s jednotkou celých čísel. Co to znamená? Jak RTX 30, tak RTX 40 dosahují dvojnásobného výkonu s pohyblivou řádovou čárkou za určitých podmínek, ne vždy.
AMD na druhou stranu hledalo jiné řešení, které nazvali Dual Issue, ale ve svých technických specifikacích uvádí, že se nezvýšil počet jednotek s plovoucí desetinnou čárkou, ale za určitých podmínek mohou zabalit 2 instrukce současně . Počet jednotek na jádro nebo Compute Unit je však stále maximálně 64, namísto 128, jako v případě NVIDIA.
Co znamená AMD pod pojmem „Duální vydání“ v RDNA 3?
Pokud však spočítáte počet operací s plovoucí desetinnou čárkou daných AMD, které jsou obvykle uváděny v teoretickém maximu, provádění 100% času operace FMA nebo sčítání s násobením s pohyblivou řádovou čárkou, což je nereálné, protože nebere v úvahu přístupy do paměti účtu a skutečnost, že programy ne vždy používají uvedenou instrukci, ale berou v úvahu, že je nejpoužívanější při generování grafiky. Faktem je, že instrukce jsou 2 operace.
AMD udělalo to, že určité instrukce lze zabalit po dvou do výpočetních jednotek, což umožňuje dosáhnout dvojnásobného výkonu v pohyblivé řádové čárce s RDNA 2 za určitých podmínek. Je to stejný případ jako u GPU NVIDIA. Dodatečný výkon s pohyblivou řádovou čárkou se nezdvojnásobuje obecně, ale pouze za určitých podmínek. Jde tedy o běžný problém. Každopádně měření v TFLOPS je i dnes marketingový trik.
Proč je tedy důležitý pro výkon Ray Tracing společnosti AMD? No kvůli tomu, že nám pomáhá měřit výpočetní sílu jednotek, které se používají ve zbývajících fázích sledování paprsků, které nejsou průsečíkem paprsků. Každopádně AMD samo tvrdí, že mezigenerační zlepšení je 18 % při stejném taktu.
Výkon GPU AMD v Ray Tracing: Čísla
Pokud porovnáme výkon různých průsečíkových jednotek na obou různých generacích grafických karet od NVIDIA a AMD, uvidíme, v čem je problém.
GPU | Křižovatky/s (v milionech) | jádra | MHz | Průsečíky (jádro a MHz) |
---|---|---|---|---|
RTX 2080 Ti | 105600 | 68 | 1545 | jedna |
RTX 3090 Ti | 312480 | 84 | 1860 | 2 |
RTX 4090 | 1290240 | 144 | 2520 | 3.6 |
RX 6950 XT | 184800 | 80 | 2310 | jedna |
RX7900XTX | 360000 | 96 | 2500 | 1.5 |
Na první pohled je surový výkon v tomto ohledu vyšší než u RTX 3090 Ti, ano, podíváme se na druhý sloupec. Právě to druhé je však důležité, protože nám říká, kolik záchytů je vypočítáno na jádro a takt na GPU. A zklamání přichází z toho, že ačkoli AMD není žádáno, aby u RTX 3.6 uvádělo výsledek 40, u RTX 2 je žádáno alespoň dosáhnout 30. To je hlavní důvod špatného výkonu grafických karet AMD v Ray Tracing. A důvod, proč si myslíme, že to mohli udělat mnohem lépe.
Je toho více, a to již na závěr, protože jednotka Ray Accelerator Unit je sama o sobě černá skříňka, kterou lze vyměnit, aniž by to ovlivnilo zbytek architektury. AMD může pro nadcházející rok vyzvednout a vyrobit řadu RX 7×50, která si zachová všechny dobré vlastnosti současného RDNA 3, ale s vylepšeným RAU a viz nárůst herního výkonu o dvouciferná procenta z hlediska snímkové frekvence.
Jaký je výkon her AMD s Ray Tracing v RDNA 3?
Nyní na závěr máme třešničku na dortu a promluvíme si o tom, jak to funguje ve hrách. Vzhledem k tomu, že AMD veřejně tvrdilo 50% zlepšení, měli bychom očekávat stejně velký skok. Později jsme však zjistili, že se vztahují na výkon na watt, na jejich určité množství a na konkrétní hru, která nebyla specifikována. Důležité je tedy vědět, jaké zlepšení bylo v tomto ohledu ve srovnání s předchozí generací dosaženo, zejména kvůli skutečnosti, že vycházejí z poměrně slabého výkonu v ray tracingu, který je z RX 6000.