Na včerejšek AMD přislíbilo, že poprvé zveřejní něco o nacházející grafické architektuře Vega, kterou tento rok uvede. Jak už odhalil (dost možná řízený) únik v pondělí, firma toho nakonec ukázala docela dost, ačkoliv je asi ještě dlouho do reálného vypuštění nových GPU (které má být „někdy v první polovině roku“, ale asi ne v nejbližší době). Stále však jde jen o předběžné „preview“, nedozvíte se tedy nic podobného specifikacím nebo informacím o výkonu – jen něco o technologiích, které v novém GPU budou.
Na úvod je tu zásadní zjištění:
Vega je velkým předělem ve vývoji grafické architektury Radeonů,
mnohem výrazněji než Polaris. Ten se také obvykle považuje za
novou architekturu, jelikož změny v jeho GPU nejsou úplně
triviální. Nicméně uvnitř Polaris výrazně vychází
z předchozích generací architektury GCN, která měla
premiéru už koncem roku 2011 v GPU Tahiti, a přes
provedené
optimalizace je údajně dokonce kompatibilní s Fiji po
stránce instrukční sady, která bývá jinak mezi GPU poměrně
často měněná (protože je od programátora oddělena ovladačem).
Vega má proti tomu být fundamentálně odlišnější, ačkoliv
evoluční kořeny v GCN bude mít nepochybně silné, jelikož
nejde o koncepci vytvořenou od základu nově na zelené louce.
Compute Unit nové generace
Základem této nové architektury jsou
nové výpočetní jednotky („shadery“), které byly až po
Polaris silně „tradiční“ a vycházející z původní
architektury GCN. Vega bude založená na blocích „CU“ (Compute
Unit) nové generace, což je význam, který se schovával za již
dříve se objevivším buzzwordem „NCU“: Next Generation Compute
Unit.
Pro připomínku: odrůdy GCN používají
CU složenou ze 64 stream procesorů (shaderů), které provádějí
výpočty s 32bitovou přesností (FP32, k tomu pak ještě
navíc GPU může v různém poměru umožňovat i výpočty
s dvojitou přesností FP64, což zde budeme ignorovat). Vega
bude mít strukturu podobnou – jednu CU tvoří opět 64
shaderů, z nichž každý provede dvě 32bitové operace za
takt jako v GCN (takže CU za cyklus zvládá 128 operací
v FP32), takže teoretické TFLOPS čipu s daným počtem
CU a taktem zůstanou stejné. Dokonce by mělo být zachováno
i to, že CU (oněch 64 stream procesorů) je členěná po
šestnácti jednotkách do čtyř SIMD elementů.
Ovšem nová výpočetní jednotka bude
podstatně pružnější. Umí nejen operace v FP32, ale
i 16bitové výpočty (což
už uniklo) s dvojitým výkonem. ALU tedy dokáže místo
jednoho výpočtu s 32bitovou hodnotou alternativně vykonat dva
16bitové najednou. Ale nejen to, architektura zároveň umí i ještě
jednodušší výpočty osmibitové (tentokrát už ale nejde
o hodnoty typu floating-point, ale o INT8, tedy
celočíselné). A osmibitovou matematiku dokáží jednotky
opět zpracovávat dvakrát rychleji, tedy již čtyři operace místo
jedné. Pokud tedy nepotřebujete přesnost FP32, můžete z GPU
Vega dostat dvou či čtyřnásobný výkon. Toto je významná
inovace architektury Pascal, kterou Nvidia úspěšně používá pro
nasazení ve strojovém učení, kterému stačí nižší přesnost.
Vega by zde tedy teoreticky mohla srovnat krok a vytvořit
konkurenci pro Tesly
P100.
FP16: důležitá funkce pro hry
budoucnosti?
Tato flexibilnost je tedy potenciálně
důležitá pro výpočetní nasazení. Ovšem bude užitečná také
pro herní výkon? To zatím nelze říct s jistotou. Například
GPU PlayStation 4 Pro již 16bitové výpočty podporuje
a počítá se s tím, že je vývojáři budou moci použít
pro zvýšení hrubého výkonu. Bude to záviset na opatrné
optimalizaci, hry totiž tradičně používají přesnost FP32
(potřebuje ji zejména geometrie, vertex shadery, kde by
zaokrouhlování a ztráta přesnosti vedla k problémům). Pokud
ovšem ve hře najdete operace, které nepotřebují tak vysokou
přesnost a ručně pro tyto operace zvolíte provádění
v FP16, získáte výkon navíc. Výpočty v FP16
mimochodem často využívají GPU a hry na mobilních platformách
(ARM), takže precedent pro jejich aplikaci tu je.
FP16 tedy asi bude užitečné pro
optimalizování výkonu a GPU, které tyto výpočty budou
podporovat, mohou mít časem v nových hrách mít velkou
výhodu proti starším, kdežto ve starších hrách tento rozdíl
neuvidíte. Ovšem to závisí na tom, zda budou vůbec herní modely
mít tuto podporu zapnutou – je možné, že může být
zamknutá a přístupná jen na drahých výpočetních kartách.
Tak je tomu pokud se nepletu u grafik GeForce s čipy
Pascal (GP104 má snad jen velmi pomalou podporu přímo v hardwaru).
Naproti tomu výpočty v INT8 asi ve hrách užitečné nebudou,
hodit by se mohly snad jen pro práci s obrazovými daty nebo
filtrování videa, ovšem i tam bude jejich užitečnost
omezena, jelikož se pomalu rozmáhá HDR a vyšší bitové
hloubky. 8bitové výpočty tedy budou zásadní hlavně pro onu
umělou inteligenci a tak podobně.
Vyšší IPC i takt
I pokud by ale hra běžela
postaru a všude používala 32bitovou matematiku, Vega by stále
měla mít při stejném počtu CU/shaderů lepší výkon. AMD
údajně potvrdilo, že samotné výpočetní jednotky mají
dosahovat vyššího reálně vyprodukovaného výkonu při stejném
taktu (mají tedy lepší „IPC“), jinými slovy, GPU Vega by při
stejném ratingu v TFLOPS mělo být ve hrách rychlejší než
papírově (v TFLOPS) stejně silný Polaris či starší GCN.
Nicméně pozor – není úplně jisté, že v tomto není
započítáno i použití FP16 a že se IPC zvyšuje i bez
jejich použití, tedy při srovnání FP32 versus FP32.
Kromě lepšího IPC by ale zároveň
CU měla být stavěná také na vyšší takty, což se v posledních
letech ukázalo jako významné omezení architektury GCN. Ta byla
stavěná na takty spíše někde okolo 1 GHz, takže třeba
Hawaii a Fiji (a aktuálně také Polaris 10, kde je to asi
nejevidentnější) nemohly škálovat výš. U Vegy bychom tedy
měli vidět vyšší frekvence jádra, i když asi ne tak
vysoké, jako u Pascalů. Radeon Instinct MI25 s čipem
Vega 10 a TDP jdoucím k 300 W má
zřejmě takt někde okolo 1500 Mhz.
Vyšší efektivita ve využití
dostupných prostředků – a tím také vyšší IPC –
se nemají týkat jenom samotných shaderů, ale i další
infrastruktury. Vega má mít vylepšenou schopnost rozkládat práci
mezi jednotlivé části čipu. Její „Inteligent Workgroup
Distributor“ by měl být flexibilnější, než dosavadní čipy
GCN, nemáme však bližší podrobnosti.
Programovatelnější geometrie
Významně by mělo být posíleno
zpracování geometrie, což jsou výpočty probíhající před
texturováním a pixel shadery. Podle AMD má nová
programovatelná pipeline Vegy mít až dvakrát větší geometrický
výkon na stejném taktu. Web AnandTech v poznámkách pod čarou
objevil zmínku, že „čtyři geometrické enginy“ (což je
stejné jako u Fiji) dokáží celkem zpracovat až 11 polygonů
z cyklus. Tam, kde byl celkový výkon limitovaný geometrickými
operacemi, by tedy Vega mohla ve výkonu hodně poskočit dopředu.
Geometrické pipeline také umí nový
druh operace, tzv. primitive shader (čímž se nemyslí, že by byl
primitivní, ale že operuje s tzv. geometrickými primitivami).
Ten může běžet během zpracování geometrie jako vertex
a geometry shadery a údajně by měl umožňovat včasnou
eliminaci primitiv, které není třeba počítat, jelikož nemají
vliv na viditelnou scénu, jsou skryté či jinak nepodstatné.
Jejich včasné odstranění z výpočtů šetří výkon
v dalších fázích, zvlášť když je geometrie scény silně
přebujelá. Primitive shader je zdá se univerzálnější
a programovatelnější způsob jak pracovat s geometrií,
jejíž zpracování je v grafické pipeline tradičně fixní,
a měl by se snad svými schopnostmi podobat compute shaderu.
Jeho použití by mělo tyto operace dle AMD zefektivnit.
Primitive shader pravděpodobně nebude
používán automaticky ovladačem (skrze kompilaci kódu, kterou
provádí), ale bude nutné, aby pro něj programátoři aktivně
psali kód, nebo využívali knihovny, které jej aplikují (tedy
třeba kód poskytovaný AMD v rámci GPUOpen jako je TressFX).
Je dokonce možné, že primitive shader bude vyžadovat podporu
přímo ze strany API DirectX/Vulkan/OpenGL – uvidíme.
Tiled rendering?
Také v oblasti rasterizačních
jednotek („pixel engine“) a práci s nimi bude Vega
radikálně předělaná. AMD uvádí jako jednu z novinek
architektury „Draw Stream Binning Rasterizer“, který by zřejmě
měl zřejmě rasterizovat scénu (a provádět pixel shadery)
postupně po dlaždicích, do níž si ji rozdělí. Cílem je, aby
se data potřebná pro zpracování aktuální části obrazu dala
uložit a brát z cache přímo v GPU a nemuselo
se při této práci chodit do grafické paměti, což trvá dlouho
s je náročné jak na propustnost, ale také na spotřebu
energie. Využití a velikost dlaždic by zdá se dokonce mohly
být adaptivní, aby se cache využila optimálně.
Možná si vzpomenete, že podobně
to údajně dělá Maxwell a Pascal od Nvidie, čemuž snad
vděčí za část své úspornosti a relativní nenáročnosti
na paměťovou propustnost. Opět však nemáme prakticky žádné
detaily, takže nemůžeme tyto přístupy srovnat a zhodnotit
nebo s určitostí říci, jak vše bude fungovat.
Hlad GPU po paměťové propustnosti má
omezit ještě jedno zlepšení, tentokrát na úrovni jednotek
Render back-end (ROP). V předchozích architekturách podle
webu AnandTech přistupovaly do paměti, kdežto Vega jim zdá se
dává možnost využívat L2 cache čipu, čímž se část provozu
ušetří, pokud budou potřebná horká data rezidentní v této
mezipaměti. Toto pomůže při technice „deffered shading,“ kdy
ROP kreslí nikoliv do framebufferu, ale do textury, kterou pak
grafická pipeline znovu využívá.
Compute Unit nové generace
Paměti HBM2 jako cache v hierarchii, škálování a první křemík na fotkách
Jak je již dlouho známo – nebo
alespoň předpokládáno – Vega používá paměti HBM2, a to
(jak brzy uvidíte) celkem dva čipy, což jí dává 2048bitovou
paměťovou sběrnici, a propustnost 512 GB/s při
udávaném efektivním taktu pamětí 2,0 GHz. Kapacita těchto pamětí může
být až 8 GB na čip, takže v použité konfiguraci
s dvěma čipy na křemíkovém interposeru dostanete kapacitu
až 16 GB, nicméně s menšími čipy můžete implementovat
i verzi s 8 GB RAM, což je
zdá se případ prototypových karet, které AMD zatím
předvedlo.
Použití HBM2 bude ovšem
komplexnější, než v první generaci GPU Fiji. AMD tuto paměť
nenazývá přímo „grafická paměť“, ale „High Bandwidth
Cache“, což implikuje, že na ni pohlíží spíše na jednu
úroveň v hierarchii pamětí, do nichž má GPU přístup. GPU
Vega by tedy možná mohlo používat i další úrovně –
například velkokapacitní prostor tvořený pamětí NAND, jak to
experimentálně dělá Radeon
SSG, jehož komerční verze patrně bude založená na čipu
Vega. Jaké přesně ale tyto schopnosti budou, zatím nebylo
odhaleno, takže bych zatím očekávání držel při zemi –
nemáme žádné indicie a není to asi pravděpodobné, že by
čip třeba podporoval připojení ještě pamětí DDR4 či GDDR5
jako Xeony Phi.
Těmi dalšími úrovněmi paměti
totiž kromě NAND asi budou spíše prostředky sdílené. AMD
uvádí, že jeho „High Bandwidth Cache Controller“ počítá
s komunikací s nevolatilní pamětí (případ onoho
Radeonu SSG), s operační pamětí hostitelského
počítače/procesoru, či s úložištěm někde v síti.
Z těchto důvodů Vega podporuje adresní prostor až 512 TB.
Paměť HBM2 pak pro tyto zdroje dat vystupuje jako ona
vysokorychlostní cache. Smyslem je, aby GPU mohlo pracovat
s obrovskými soubory dat, což by jen se spolehnutím na
vlastní paměť nemohlo. Ačkoliv dnes GPU mají až 32 GB paměti,
stále je to málo.
U Vegy se tedy počítá s o dost
komplexnějším přístupem k „paměti“, nicméně to vás
asi nemusí trápit, pokud se o toto GPU zajímáte jako o herní
kartu. Podobné problémy „škálování“ přijdou ke slovu až
při výpočetním a enterprise nasazení těchto GPU. Nicméně
vylepšená schopnost nechávat si rezidentní jen důležité částí
souboru dat a ty málo využívané nechat třeba v hostitelské
paměti by mohla přijít vhod také ve hrách, které mají příliš
vysoké nároky na paměť. Radeony Vega by teoreticky mohly mít
menší problémy v konfiguracích s ořezanou kapacitou.
Čip poprvé před kamerou
Tím uzavíráme okruh informací
(zatím hodně omezený a skoupý na detaily), který AMD o své
nové grafické naději včera uvolnilo. Tedy alespoň teoretickou
část. Zároveň totiž šéf grafické divize Raja Koduri ukázal
i hotový křemík zřejmě čipu Vega 10, a to veřejně před novináři, takže
máme k dispozici řadu vcelku slušných fotek.
Fotografie čipu Vega 10 (Zdroj: The Tech Report)
Můžete vidět, že jde opět o hodně
velké pouzdro s křemíkovým interposerem a přirozeně
s HBM2. Nicméně důležitý detail je, že paměťové čipy
jsou skutečně jen dva proti čtyřem, které nese Fiji nebo Nvidia
GP100. Tudíž je definitivně potvrzena propustnost 512 GB/s (za
podmínky, že AMD použije 2GHz frekvenci). Hrubá propustnost Vegy
tedy bude stejná jako u Fiji a čip se bude muset
spolehnout na výše popsané technologie, které využití pásma
zlepšují (kromě uvedeného by měl rovněž mít dokonalejší
delta kompresi než Fiji, což také pomůže).
Fotografie čipu Vega 10 (Zdroj: ComputerBase)
Všimněte si, že zatímco u Fiji
byl hodně vidět holý neobsazený interposer. Tentokrát čipy HBM2
poměrně přesně sedí na stranu samotného GPU, takže plocha
interposeru nevychází nazmar. Díky jen dvěma čipům je
interposer přirozeně také menší. Celek by tedy výrobně měl
být méně náročný a drahý. Interposer je vlastně velký
čip, který se vyrábí křemíkovou litografií, byť starší a
levnou, a je tudíž mnohem dražší než běžný substrát nebo
PCB. S menším interposerem a méně čipy budou náklady
nižší, než na Radeon R9 Fury/Fury X. Tedy pokud odhlédneme
od ceny samotného 14nm FinFETového GPU, která může být vyšší
a úspory přebít.
Jelikož fotografie jsou poměrně
kvalitní, zkusil redaktor webu VideoCardz odhadnout velikost čipu.
Ten by soudě dle velikosti čipu HBM2 mohl mít velikost
520–540 mm², přirozeně za předpokladu, že pouzdra
s pamětí jsou stejná. Ten nicméně nemusí nutně platit,
AMD totiž má používat HBM2 od Hynixu, zatímco Nvidia by mohla
mít paměti od Samsungu. Obě firmy by přitom mohly mít pouzdra
mírně či více odlišné, takže odhad berte s rezervou.
Ovšem je-li tato plocha reálná, pak by výkon čipu mohl být
hodně slušný, jelikož obvykle škáluje s plochou a cokoliv
nad 500 mm² je už bezpečně ve sféře highendových GPU,
která mají strop někde u 600 mm².
Vega 10 v odhadovaném srovnání s dalšími highendovými GPU (autor: VideoCardz)
Soutěž o Vegu
Mimochodem – na webu
Ve.ga AMD přidalo nová videa a prezentační obsah. Mimo
jiného se tam můžete přihlásit do soutěže, v níž mají
být dvě karty s novými čipy jako ceny (až je AMD vydá).
Jde o klasickou losovačku, takže při celosvětové účasti
asi člověk nemá nijak významnou šanci, ale můžete si zahrát,
pokud máte rádi Cimrmanovskou frustrační kompozici (tvořenou
fází očekávání a fází zklamání). Je třeba jen
zodpovědět na pár otázek, tázajících se na detaily z onoho
„bubnového“ propagačního videa.
Zdroje: AnandTech,
The
Tech Report, VideoCardz, AMD,
Ve.ga