Architektura Ampere GA102
Dříve, nežli si dnes grafickou kartu Gigabyte RTX 3090 Gaming OC 24G představíme a také řádně otestujeme, nebylo by asi od věci si grafický čip GA102 ve verzi GA102-300-A1, na kterém jsou založeny právě grafické karty GeForce RTX 3090, trochu popsat a osvětlit. A že to nebude nic složitého, o tom vás přesvědčím hnedle a budou mi k tomu stačit pouze dvě bloková schémata grafického čipu GA102. Pojďme se na to tedy podívat.
Blokové schéma
Frontend
Stejně jako u předchozích generací, každý grafický čip musí nějaká data přijímat, následně rozdělovat úkoly a řídit práci podřízených jednotek. Tuto činnost má na starosti Frontend grafického čipu, který je již od dob architektury Fermi tvořen jednotkami Host Interface a GigaThread engine. Zatímco pomocí Host Interface jsou přenášeny příkazy z CPU pomocí PCI Express, Gigathread engine je zodpovědný za vlastní logiku přenosu dat z RAM do VRAM a především také za plánování a rozdělování práce na jednotlivé další podřízené jednotky. Vlastní řízení grafického čipu je pak práce velmi sofistikovaná a ne nepodobná práci CPU. Každý výrobce se tedy o bližší informace jen nerad dělí a nejinak tomu je právě v případě NVIDIA.
První změnou, které jsme se v generaci Ampere dočkali, je povýšení sběrnice PCI Express na výkonnější verzi PCIe 4.0. Toho mohou samozřejmě využít všichni majitelé základních desek právě s podporou PCIe 4.0 (v současnosti jen AMD Ryzen).
Graphics Processing Cluster (GPC)
V hierarchii blokového schéma je první podřízenou jednotkou Gigathread engine jednotka s názvem Graphics Processing Cluster, neboli GPC. Grafický čip GA102 se skládá celkem ze sedmi GPC, které mají obdobnou funkci jako Shader Array v konkurenční architektuře GCN. Kdo četl popis grafické pipeline, jistě již ví, že se jedná o jakousi kompletní grafickou pipeline, kde se primitiva přeměňují v pixely, ze kterých je pak složen celý hotový snímek a zobrazen na vašem monitoru.
Každý GPC obsahuje jednu rasterizační jednotku (Raster engine), která spolupracuje s celkem 6 bloky TPC (Texture/Processor Cluster), ve kterých jsou sdruženy jednotky Polymorph Engine a vždy po dvou jednotkách Streaming Multiprocessors (SM).
Zatímco Polymorph Engine obsahuje fixní jednotky, které se starají o geometrii (Vertex Fetch, Tessellator, Stream Output atd.), SM jednotky jsou jednotkami naopak programovatelnými, na kterých je možné spouštět shadery (programy běžící na GPU).
Streaming Multiprocessor (SM)
Každá jednotka SM se (krom jiného) skládá ze čtyř bloků po 32 výpočetních jednotkách FP32 (CUDA Core), 16 jednotkách INT32 a jedné výpočetní jednotky Tensor Core třetí generace, určené pro tensor/maticové operace strojového učení. Všechny tyto bloky jsou pak propojeny přes sdílenou pamětí $L1 Data Cache (128KB).
Počet jednotek TMU (Texture Mapping Units), které využívají právě shadery k bezstarostnější práci s texturami, nebo raději 2D obrázky obecně, zůstal ve stejném počtu (4x TMU) a stejně tak je zde přítomna i jediná výpočetní jednotka RT Core, která je určena speciálně na výpočty Raytracingu, tedy na výpočty dráhy paprsku a detekci kolizí s 3D objekty scény.
Jak můžete vidět, právě v těchto výpočetních jednotkách došlo asi k té nejdramatičtější změně. Počet výpočetních jednotek FP32 (CUDA Cores) se nám totiž oproti generaci Turing zdvojnásobil. Má to však jeden háček, přidané jednotky FP32 sdílejí datapath (propojení) s jednotkami INT32, takže v jednom taktu mohou být využity buďto jednotky FP32 nebo jednotky INT32. Další změnou jsou pak výpočetní jednotky Tensor Cores, které by měli být v této třetí generaci 2x výkonnější, a stejně tak by měly být dvakrát výkonnější i výpočetní jednotky RT Cores druhé generace.
Spočítáme-li to dohromady, pak každá jednotka SM jako celek tedy disponuje 128x CUDA Cores, 4x Tensor Cores, 1x RT Core a 4x TMU. Pokud tedy GPC obsahuje celkem 6 bloků TPC, můžeme říci, že každý GPC obsahuje jeden rasterizér, 6x Polymorph Engine a 12x SM s 1536x CUDA Cores, 48x TMUs, 48x Tensor Cores a konečně také 12x RT Cores.
Každý GPC se může na vstupu postarat v jednom taktu o jeden primitivní trojúhelník (Triangle) a jeho výstupem jsou pak pixely, které je ale třeba ještě nějakým způsobem finalizovat (Blending, Z buffering atd.) a následně zapsat do framebufferu (Render Target). O tuto finalizaci a ukládání se starají jednotky s názvem Raster Operations Pipeline (ROP), které v generaci Ampere doznaly také změny a nyní jsou přímou součástí bloku GPC (u Turingu byly součástí framebufferu). Každý GPC obsahuje dva samostatné bloky po 8 ROPs, tedy celkem 16 ROPs, které se tedy umí postarat o 16 pixelů na takt.
Framebuffer (VRAM)
Grafický čip GA102 disponuje celkem dvanácti 32-bit řadiči paměti (384-bit celkem) a 6MB $L2 Cache. Paměťové řadiče podporují nejnovější paměti typu GDDR6X, které byly vyvinuty v kooperaci se společností Micron a podporují technologii PAM4 (Pulse Amplitude Modulation-4). Právě díky technologii PAM4 může být přenášeno dvojnásobné množství dat při nižší spotřebě, ovšem také při nižší frekvenci. Ačkoliv Micron nabízí paměti GDDR6X o efektivní frekvenci až 21 GHz, u nejvyššího modelu GeForce RTX 3090 se dočkáme „pouhých“ 19,5 GHz.
Pokud tedy víme, co vše obsahuje jeden blok GPC, vlastně si již sami můžeme spočítat, co obsahuje celý grafický čip GA102, který má v plné konfiguraci takovýchto GPC bloků celkem 7.
- GPC: 7x
- TPC: 42x
- SM: 84x
- CUDA Cores: 10752x
- Tensor Cores: 336x
- RT Cores: 84x
- TMUs: 336x
- ROPs: 112x
GA102-300-A1 (GeForce RTX 3090)
Bohužel, grafická karta GeForce RTX 3090 na trh nepřichází s čipem v plné konfiguraci. Grafický čip GA102-300-A1 byl „oříznut“ o jeden jeden blok TPC. Ve finále tak musíme ze specifikací odečíst 1x TPC, tedy 2x SM s celkem 256x Cuda Cores, 2x RT Cores, 8x Tensor Cores a 8x TMUs . Jak tedy vypadají konečné specifikace grafické karty GeForce RTX 3090?
SPECIFIKACE NVIDIA GEFORCE RTX 3090 |
|
RTX 3090 |
RTX 3080 |
RTX 2080 Ti |
CUDA Cores |
10496 |
8704 |
4352 |
RT Cores |
82 |
68 |
68 |
Tensor Cores |
328 |
272 |
544 |
TMUs |
328 |
272 |
272 |
ROPs |
112 |
96 |
88 |
Base Clock |
1395 MHz |
1440 MHz |
1350 MHz |
Boost Clock |
1695 MHz |
1710 MHz |
1545*/1635** MHz |
Memory Clock |
19,5Gbps GDDR6X |
19Gbps GDDR6X |
14Gbps GDDR6 |
Memory Bus Width |
384-bit |
320-bit |
352-bit |
VRAM |
24GB |
10GB |
11GB |
TDP |
350 W |
320 W |
250*/260** W |
Transistors |
28B |
28B |
18.6B |
Architecture |
Ampere |
Ampere |
Turing |
Manufacturing Process |
Samsung 8nm |
Samsung 8nm |
TSMC 12nm FinFET |
* reference ** founders |
Jak můžete vidět, počtem CUDA Cores, ROPs, TMUs, RT Cores, či kapacitou a šířkou sběrnice grafických pamětí nové GeForce RTX 3090 jasně překonávají současnou vlajkovou loď společnosti NVIDIA, tedy GeForce RTX 2080 Ti. Jediné, co u Ampere ubylo, jsou jednotky Tensor Cores. Nesmíte ale zapomenout, že jednotek Tensor Cores je u GeForce RTX 3090 sice méně, ale mají oproti stejným Turingovým jednotkám prakticky dvojnásobný výkon.
Ampere a nové technologie
Grafické karty Ampere přinášejí také nějaké nové technologie, i když to samozřejmě není nic tak přelomového, jako tomu bylo v případě grafických karet Turing, které s sebou přinesly jako první podporu výpočtů real-time raytracingu a DLSS (Deep Lerning Super Sampling). Ať už se ale jedná o technologie nové či starší věřte, že grafické karty generace Ampere jsou na budoucích pár let hraní vybaveny velmi dobře. Tady je takový stručný výpis toho, s čím budete moci u grafických karet Ampere počítat:
- úplná podpora DirectX 12 Ultimate (Ray-tracing, VRS, Mesh shader, sampler Feedback)
- podpora DLSS (proprietární technologie NVIDIA )
- hardwarová akcelerace RT Motion blur (novinka v RT)
- Simultaneous Compute and Graphics (SCG) - souběžné zpracování Graphics + RT + DLSS operací
- RTX IO (podpora Microsoft DirectStorage)
- HDMI 2.1 (přednos signálu až 8K/60Hz)
- DisplayPort 1.4a (přednos signálu až 8K/60Hz)
- NVDEC (s podporou formátů HEVC, VP9, H264 a AV1)
Tak, to by bylo na úvod dnešní recenze asi vše a teď si již pojďme konečně představit grafickou kartu Gigabyte RTX 3090 Gaming OC 24.