Tento týden nastalo u Nvidie veliké odhalení nových grafických karet GeForce RTX 3090, RTX 3080 a RTX 3070 s architekturou Ampere. Už jsme jim věnovali podrobný článek (takže pokud vám uniklo, dožeňte).
Nvidia poté na Redditu uspořádala vlákno, kde její zástupci odpovídali na různé otázky. Z něj máme k Ampere a odhaleným GeForce RTX 3000 nové informace, které tady probereme. Je toho poměrně dost.
Jak je to se zdvojením počtu shaderů/FP32 jednotek?
Na začátek architektonickou záležitost. Z Redditu máme zřejmě odpověď na zatím největší záhadu v Ampere, tedy ono zdvojení výpočetních jednotek FP32 ALU, díky kterému mají grafiky Ampere nakonec ve specifikacích dvojnásobný počet shaderů (v řeči kmene Nvidia „Cuda jader“) a dvojnásobný teoretický výkon v TFLOPS.
Toto vzbuzovalo spoustu otázek a na Redditu Tony Tomasi z Nvidie popsal, jak to funguje. Implementace je zdá se taková, že Nvidia přímo nezdvojnásobila celou šířku bloku SM na 128 shaderů z 64 v tom smyslu, jak byste si to nejspíš představovali. Reálně je tato architektonická změna udělána trošku úsporněji a vychází z architektur Volta a Turing.
Jak si jistě pamatujete, jejich novinkou bylo, že zatímco běžně každý „shader“/„Cuda jádro“ znamená jednu ALU (přesně ji je to ale jedna „lane“ v SIMD vektoru) schopnou zpracovat jednu floating point FP32 operaci za takt, Volta a Turing přidali druhou paralelní jednotku pro celočíselné operace (INT32 ALU). Výpočetní úlohy na GPU nepoužívají jen čistě floating-point operace, ale i nějaké pouze celočíselné, a všechny takové bylo možné najednou přesunout na druhou jednotku a vykonat je současně. Tím slušně narostlo využitelné „IPC“ jednoho bloku SM. Tehdy ale Nvidia ještě tyto INT jednotky nepočítala jako samostatné shadery.
Chytrá evoluce Turingu/Volty
Ampere zde udělal evoluční změnu a tuto superskalární schopnost posílil. Není přidaná třetí jednotka; ale v už existující duální pipeline FP32+INT32 byla do oné druhé jednotky dosud schopné zpracovávat paralelně jen celočíselné operace přidána schopnost zpracovat i floating-point výpočty, jako to umí první FP32 jednotka.
Ampere tedy má pořád onu dvojitou jednotku jako Volta a Turing, ale už to není FP32+INT32, ale FP32+FP32/INT32. Do této struktury tedy lze tedy teď tlačit za cyklus dvě floating point operace. Pokud máte úlohu složenou čistě z FP32 výpočtů, můžete se dočkat až dvojnásobné propustnosti výpočtu. Pokud ovšem má vaše úloha 50%/50% mix floating-point a integer operací, pak bude výkon stejný jako u Turingu/Volty.
V praxi tedy zdvojení FP32 jednotek a dvojnásobný počet shaderů ve specifikacích většinou nepovede k přesně dvojnásobnému výkonu. Ale IPC by tím mělo obecně narůst, protože většinou asi mix floating-point a integer instrukcí nebude 1:1, ale spíše vychýlený ve prospěch těch floating-pointových (třeba až v poměru 3:1 podle prezentace z doby vydání Turingu). FP32+FP32/INT32 je asi vyváženější výpočetní schopnost než FP32+INT32, byť to samozřejmě potřebuje víc tranzistorů.
Poznámka: mluvíme zde o dvou paralelních jednotkách, ale ve skutečnosti jsou tyto operace prováděny jako SIMD operace najednou s 16 hodnotami/jakoby v 16 ALU. Ono paralelní zpracování INT32/FP32 a FP32 operací je tedy ve skutečnosti paralelní zpracování dvou takových 16hodnotových vektorů v jednom cyklu.
DLSS 2.1: hraní v 8K s nastavením ultra performance
V prezentaci GeForce RTX 3090 byla avizována možnost hraní v rozlišení 8K (7680 × 4320 bodů). Toto dřív neuvěřitelné rozlišení má 4× více pixelů než samo o sobě náročné 4K, takže bylo celkem jasné, že musí být použitý upscaling DLSS. Nvidia nyní potvrdila, že podpora rozlišení 8K je jedna z novinek v jeho nové nyní uváděné verzi DLSS 2.1 (další její novinkou je možnost použít DLSS ve VR brýlích a také možnost dynamicky měnit faktor škálování, tj. pracovat s dynamickým rozlišením interního vykreslování).
Pro rozlišení 8K je v DLSS 2.1 přidáno nové nastavení „Ultra Performance“, které by mělo být na škále rychlosti a kvality ještě pod nyní nejvýkonnějším nastavením Performance (které škálovalo v obou osách 2×, tedy z 1920 × 1080 na 3840 × 2160 bodů, ze 1280 × 720 na 2560 × 1440 apod.).
Ultra Performance by mělo mít ještě vyšší škálovací faktor, takže při stejném výstupním rozlišení ušetří víc výkonu, ale kvalita bude ještě o něco horší. Nvidia uvádí, že jde o „9× scaling“, takže se asi upscaluje 3× v každé z os.
Při výstupním rozlišení 8K bude tedy GPU reálně vykreslovat jen rozlišení 2560 × 1440 alias 1440p a zbytek je upscaling pomocí neuronové sítě (plus temporální stabilizace/rekonstrukce). Zda bude možné Ultra Performance použít i pro výstup 4K, ještě nevíme. Tam by reálné rozlišení bylo jen 720p.
Tip: Nvidia uvádí DLSS 2.0: nová verze AI upscalingu je temporální a nese mnohá vylepšení
V tomto kontextu už je méně překvapivé, že Ampere hraní v rozlišení 8K zvládá (je ovšem možné, že tak vysoký škálovací faktor klade takové zvýšené nároky na výkon tensor jader, které by ještě na Turingu byly přílišné, to samozřejmě nemůžeme vědět).
PCI Express 4.0 zatím pořád není příliš důležitý (jen pro RTX IO)
Zástupce Nvidie byl dál mimo jiné tázán na to, jak důležitá je u karet Ampere podpora PCI Expressu 4.0 (linek s proti PCIe 3.0 dvojnásobnou propustností 2 GB/s) – tedy zda byste případně škodovali, pokud byste pod Ampere posadili desku a CPU podporující jen PCIe 3.0.
Zde to vypadá, že zatím pořád nebude tlak na sběrnici PCI Express příliš velký a tudíž se bez PCIe 4.0 ještě obejdete. PCI Express 4.0 ×16 má pode Nvidie proti PCIe 3.0 ×16 údajně mít pozitivní přínos ve výkonu, ale jen do několika málo procent. Nvidia podotýká, že dopad na výkon má mnoho dalších věcí. A zejména samotná rychlost CPU (tedy například vyšší jednovláknový výkon a nižší latence RAM u nynějších Intelů) bude obvykle mít vyšší dopad na finální FPS než PCI Express 4.0.
Na druhou stranu je ještě PCI Express 4.0 užitečný nepřímo. A to tehdy, pokud by se ve hře používala funkce RTX IO pro přímé načítání komprimovaných textur do GPU. Zde Nvidia uvádí, že ideální výsledky dají nejnovější SSD založená na PCIe 4.0 ×4 s rychlostí až 7000 MB/s, protože pak se dá textur do GPU protlačit až 2× větší objem než s PCIe 3.0 ×4. Nicméně toto není asi nic, co by vás zabilo. Hry, které by byly kriticky závislé na načítání textur z SSD rychlostí 7 GB/s, asi minimálně v nejbližší době zas tak moc nebude.
Ampere pořád podporuje Windows 7, ovladače budou k dispozici
Tato funkce RTX IO je podporována jen na Windows 10 (je zřejmě součástí novějších API). Ale jinak podle Nvidie zdá se bude možné karty Ampere použít i na starých a již nepodporovaných Windows 7 (i když si nemyslíme, že je to moc dobrý nápad…)´. Ovladače pro tento systém tedy zřejmě pořád budou k dispozici. Pro Windows 8.1 ale zdá se ne.
HDMI 2.1 je plnotučné, podporuje maximální možná rozlišení
Jedna z otázek směřovala na schopnosti výstupu HDMI 2.1, který Ampere jako první samostatná grafika poskytuje. Toto rozhraní má specifikovanou maximální hrubou přenosovou rychlost 48 Gb/s, ale některé televize například jeho funkce umí, ale podporují jen nižší datové toky.
Nvidia potvrdila, že Ampere umí skutečně maximálních možných 48 Gb/s (12 Gb/s ve čtyřech linkách) a umí tak kabelem protlačit rozlišení až 8K s HDR (10–12 bitová hloubka barev) při 60 snímcích za vteřinu, byť to již potřebuje kompresi DSC (bez komprese to HDMI 2.1 nedovoluje).
Proč 10 GB u GeForce RTX 3080?
Na Redditu také padla otázka na to, proč má model RTX 3080 jen 10 GB paměti. Podle Nvidie bylo záměrem vytvořit GPU s relativně dobrou cenou schopné hraní v rozlišení 4K (na nastavení Max), což vyžaduje čip s velmi vysokou hrubou silou. To je ale současně docela drahé (v RTX 3080 je stejné GPU jako v RTX 3090, jen ořezané s možností využít defektní křemík).
Paměť by pro 4K také možná byla lepší větší, ale podle Nvidie bylo právě pro dosažení únosné ceny třeba někde ušetřit a 10 GB je tedy určitý kompromis. Podle Nvidie to tedy byla lepší cesta než slevit na GPU.
Galerie: Představení grafik Nvidia GeForce RTX 3090, RTX 3080, RTX 3070 a architektury GPU Ampere
Zdroj: Nvidia via Reddit