Grafický čip Vega 10
Dlouho očekávaný high-end společnosti AMD v podání grafických karet Vega je tady a my si tak můžeme konečně otestovat to, na čem AMD pracovala tak nezvykle dlouho. Dříve ale, nežli se dostaneme k testům samotným, pojďme se nejdříve alespoň v krátkosti podívat na architekturu těchto nových grafických čipů a také na nové technologie, které nám Radeon RX Vega přináší.
První pohled na blokové schéma grafického čipu VEGA 10 jasně naznačuje, že po stránce architektury vychází ze svého předchůdce, tedy grafického čipu Fiji. Podobně jako u Fiji můžeme na tom nejvyšším “levelu” hierarchie najít jednotky ACE (Asynchronous Compute Engine), které společně s poněkud univerzálnějšími jednotkami HWS (Hardware Sheduler) rozdělují úlohy výpočetní a GCP (Graphics Command Processor), který zas organizuje práci úloh grafických.
Dřívější jednotka s názvem Shader Engine (SE), na kterou byly v případě grafického čipu Fiji právě plánovacími jednotkami zasílány výpočetní a grafické úlohy v novém schématu nejdete. Ne, že by už neexistovala, jen je tato jednotka na tom současném schématu grafického čipu Vega rozdělena a zastoupena hnedle třemi částmi - Graphics Pipeline, Compute Engine a Pixel Engine.
Zatímco Graphics pipeline se stará o geometrickou část 3D grafiky, výpočetní část má na starosti zase Compute Engine, který se skládá z výpočetních jednotek NCU (New-generation Compute Units).
NCU jsou tvořeny 64 SP (Stream processory), organizovanými ve 4 blocích po 16 SP (SIMD-16) plus jednou skalární jednotkou. Součástí NCU jsou také 4x TMU (Texture Mapping Units), které využívají právě SP k bezstarostnější práci s texturami, nebo raději 2D obrázky obecně.
L2 Cache byla oproti Fiji zvětšena na dvojnásobek (4 MB), a to zejména z důvodu toho, že ROP (Raster Operations Pipeline) jednotky jsou nyní klienty právě L2 Cache. U Fiji ROP jednotky využívaly ke své práci (odkládání dat) přímo grafickou paměť, což bylo samozřejmě nevýhodné jak pro výkon (zbytečně konzumovaly šířku pásma VRAM), tak také energeticky. Zvýšení kapacity L2 Cache tedy zajistilo dostatečný prostor pro data, která využívají právě jednotky ROP, a jak později uvidíte, také samotný Pixel engine.
Pokud bychom tedy vše ze schématu spočítali, dopočítali bychom se k následujícím číslům, které popisují specifikaci grafického čipu Vega 10:
- Počet Geometry engine: 4
- Počet jednotek NCU: 64
- Počet Stream processorů: 4096
- Počet TMU: 256
- Počet ROP: 64
SPECIFIKACE |
|
Radeon RX Vega 64 Liquid |
Radeon RX Vega 64 |
Radeon RX Vega 56 |
Stream Processors |
4096 |
4096 |
3584 |
Texture Units |
256 |
256 |
224 |
ROPs |
64 |
64 |
64 |
Base Clock |
1406 MHz |
1247 MHz |
1156 MHz |
Boost Clock |
1677 MHz |
1546 MHz |
1471 MHz |
VRAM Clock |
1.89 MHz |
1.89 MHz |
1.6 MHz |
VRAM Bus |
2048-bit |
2048-bit |
2048-bit |
VRAM Size |
8GB |
8GB |
8GB |
Transistors |
12.5B |
12.5B |
12.5B |
TDP |
345W |
295W |
210W |
Process |
GloFo 14nm |
GloFo 14nm |
GloFo 14nm |
Víme-li, jak grafický čip Vega 10 ke svým specifikacím došel, můžeme se podívat na další nové technologie, který si na nás společnost AMD v uvnitř grafického čipu Vega 10 přichystala.
High-bandwidth Cache Controler
Asi největší změnou si u VEGA prošel paměťový subsystém. Společnost AMD představila HBCC (High-Bandwidth Cache Controller), který využívá grafické paměti HBM2, pouze jako jakýsi zásobník (Cache), ve kterém jsou umístěna jen data nezbytně nutná pro samotný rendering (working set). Obrovské porce grafických dat tak již nemusí zabírat celou grafickou paměť, ale mohou být umístěny prakticky kdekoliv (RAM, SSD atd.). HBCC se pak postará o to, aby potřebná data pro samotný rendering byly vždy umístěny právě v tomto zásobníku. K tomuto účelu využívá stránkování “Paging”, tedy přesouvání dat určité kapacity (Page), nikoliv přesouvání celých objektů (například celé textury). Počítačové hry, či další grafické aplikace tak mohou pracovat s daty, které mnohonásobně překračují kapacitu grafické paměti bez toho, že by to mělo nějaký zásadní vliv na kvalitu či plynulost zobrazovaných snímků.
Draw Stream Binning Rasteriser (DSBR)
Na rozdíl od klasického Immediate-mode renderingu, kde jsou jednotlivé polygony rasterizovány tak, jak postupně přicházejí, až je nakonec vyrenderován celý snímek, v případě DSBR je obrazovka rozdělena na malé a předem definované čtverce (Tiles), které jsou rasterizovány každý samostatně.
U každého Tile je nejdříve určeno, které polygony do něj spadají a následně testováno jejich překrytí. Volitelně pak samotný Pixel shader (určení barvy pixelu) muže být odložen až do doby, kdy jsou v Tile známy všechny viditelné pixely a ušetřit si tak zbytečnou práci při určování barev těch pixelů, které ve finálním snímku vidět vůbec nebudou. Tiles tedy pracují efektivněji a s méně daty, které se tak mohou vejít do menší L2 Cache uvnitř čipu. Méně vytížený pixel shader společně s méně přístupy do pomalejší grafické paměti pak vedou k vyššímu výkonu rasterizece při nižších energetických nárocích.
Next-generation Geometry Engine
Velké změny přináší Vega přímo do geometrické pipeline. NGG (Next-generation geometry engine) obchází klasické zastávky potrubí (Pipeline stage) DirectX jako je vertex shader, hull shader, tessellation, domain shader nebo geometry shader a všechny tyto kroky spojuje do jednoho flexibilního a programovatelného kroku s názvem Primitive shader.
Cílem Primitive shaderu je zefektivnění práce při zpracování geometrických dat, tedy krom jiného, také co nejvčasnější odstranění nepotřebných polygonů, které ve finálním snímku nebudou vidět. Méně polygonů znamená také méně práce při následné rasterizaci a pixel shaderu, což s sebou přináší samozřejmě také vyšší výkon a nižší spotřebu energie. V případě využití Primitive shader může dojít až ke čtyřnásobnému navýšení geometrické propustnosti. Otázkou však zůstává to, jak bude tento Primitive shader využíván samotný vývojáři, nebo zda tato funkce bude moci být využita přímo na úrovni ovladače grafické karty při optimalizacích počítačových her.
Rapid Packed Math
Grafický čip Vega podporuje práci s přesností FP16 a všechny doposavaď pouze 32 bit výpočetní jednotky (2x SIMD-16) si mohou práci rozdělit také na dvě výpočetní operace s přesností FP16 a ty zpracovat najednou.
Od DirectX 10 byly veškeré výpočty ve 3G grafice prováděny s přesností FP32 i když pro některé grafické operace jako je Lighting, HDR nebo Blending je tato preciznost zbytečně vysoká. Společně s s podporou FP16 operací byla u Vega rozšířena také instrukční sada o více jak 40 dalších specifických instrukcí. Pokud se tedy vývojář rozhodne do své hry zahrnout podporu výpočtů FP16, výpočetní výkon těchto operací se tak prakticky zdvojnásobí. Příkladem může být benchmark 3DMark Serra, který na některé výpočty využívá právě přesnost FP16.
Samozřejmě, toto nejsou všechny nové technologie a funkce, které nám grafický čip Vega 10 přináší. Nezmínil jsem se tady například o hardwarových změnách (prodloužení pipeline a úpravy časování) na NCU či zásobnících, díky kterým je možné, aby ten tento grafických čip dosahoval vyšších frekvencí, nebo zatím nejpokročilejší podpory Direct3D level 12_1 atd. Myslím ale, že pro naše účely alespoň toto stručné popsání uarch a nových funkcí Vega 10 bude naprosto dostatečné. Raději už pojďme testovat.