Ještě k novinkám Radeonů Vega: PSP, DirectX 12_1, vyšší rozlišení, kousky Zenu a další

11

Tento týden AMD po dlouhém čekání na novou architekturu GPU Vega vybalilo najednou tři herní (Radeon RX Vega 56, Radeon RX Vega 64, dále Radeon RX Vega Nano) a k tomu ještě dva profesionální modely. Vedlejším produktem – kromě toho, že máme tímto tématem už zpravodajství poněkud přecpané – bylo, že jsme se ani nedostali ke všem novým informacím, které byly nyní sděleny k technologiím a architektuře GPU Vega 10. To nyní napravíme a podíváme se na nové „střípky“, které se mezitím vynořily.

AMD informace dávkuje jak očkování proti klíšťovce, takže dnešní souhrn bude navázáním na to, co bylo o novinkách ve Vega vyjeveno v lednu a pak v pondělí. Úplně všechno opakovat nebudeme a zaměříme se na to nové. Jen pro připomenutí: čip je 14nm, údajně vyráběný na stejném procesu jako Polaris a Ryzeny (14LPP) a měří 486 mm², v čemž je obsaženo 12,5 miliardy tranzistorů. Víc jak 40 % tranzistorů navíc proti čipu Fiji padlo dílem na nové funkce jako je podpora rychlých výpočtů s přesností FP16 a zejména na zvýšení dosažitelných taktů, které ze zhruba 1400 MHz u Polarisu stouply na 1700 MHz a možná víc.

amd-vega-specifikace

Zpátky na 16 bitů! (Rapid Packed Math)

Asi nejviditelnější a dlouhodobě nejvýznamnější novinkou architektury Vega bude patrně podpora výpočtů s poloviční přesností FP16 s dvojitým výkonem (nazývaná „Rapid Packed Math“). Ta umožňuje do stejných registrů dostat dvojnásobek hodnot (dvě čísla na místo jednoho FP32) a provést nad nimi za takt dvojnásobek výpočtů. Výpočty v FP16 se používají běžně v mobilních hrách a měly být uplatnitelné i ve „velkých hrách“, byť větší nebo menší část výpočtů bude muset zůstat v FP32 kvůli přesnosti a akumulaci chyby.

Kromě FP16 lze použít také celočíselné operace (IN16) a GPU podporuje i práci s 8bitovými hodnotami (INT8), tyto dokonce čtyřnásobně rychle proti FP32. Podporovány jsou konverzní operace a instrukce pro „zapakování“ 16bitových hodnot do registrů. Výpočty v FP16 také údajně vyhovují standardu IEEE.

amd-vega-ncu-fp16-2Operace FP16 jsou již podporovány v existujících grafických API a jsou tedy připravené k použití. Ve své prezentaci AMD ukazovalo čísla z implementace benchmarku „3DMark Serra“, který by měl 16bitové operace používat k některým optimalizacím (FutureMark je zdá se napsal přímo pro AMD). Údajně například zrychlují generování šumu pro procedurální povrchy a pro osvětlení (o 24–25 % s operacemi INT16) a FFT v efektu „bloom“ (o 20 %, operace FP16).

Celkové zvýšení výkonu teprv uvidíme; v poznámkách pod čarou má ale AMD zmínku, že 3DMark Serra jde po aktivace 16bitové cesty v kódu z 44 na 50 snímků za vteřinu, což by bylo přes 10 % výkonu navíc.

3DMark Serra má být napsán k demonstrování FP16 shaderů
3DMark Serra má být napsán k demonstrování FP16 shaderů

První dvě hry používající FP16 ohlášeny

Zatím máme informace o dvou hrách, ve kterých se nějaké využití chystá: jde o Wolfenstein 2: The New Colossus (na bázi enginu id Tech 6) a Far Cry 5. Další použití by mohlo přijít z konzolí, kde FP16 používá APU konzole Playstation 4 Pro a programátoři by měli mít motivaci pokusit se z ní vytěžit co nejvíc.

Při agresivním použití 16bitových operacích by mělo být možné dostat z grafik nezanedbatelné množství dalšího výkonu, je ale samozřejmě otázka, zda se programátorům bude chtít investovat čas, zvlášť dokud Nvidia tuto funkci podporovat nebude. AMD možná čekalo, že tak učiní, nicméně Pascal podporuje FP16 jen na výpočetních kartách Tesla P100 a Maxwell jen v Tegře.

FP16 by mělo fungovat ve hrách Wolfenstein II a Far Cry 5
FP16 by mělo fungovat ve hrách Wolfenstein II a Far Cry 5

FP16 není jediná novinka ve výpočetní výbavě. Instrukční sada Vegy má proti starším architekturám GCN – s nimiž by jinak měla být zpětně kompatibilní – také některé další nové instrukce. Mělo by jít o 40 nových instrukcí, které sdružují některé operace a kompilátor v ovladačích je může použít ke zvýšení „IPC“ shaderů. Specifikace celé sady mají být zveřejněny.

To by se mělo hodit pro psaní tzv. „Shader intrinsics“, tedy optimalizovaného kódu přímo vyladěného pro výpočetní jednotky GPU, podobně jako ručně psaný asamblér na CPU (AMD mimochodem uvádí, že shader intrinsics jsou použity v Doomu a na PS4 prý zvyšují výkon až o 43 %, což ale bude speciální případ vzhledem ke konzolovému ladění).

amd-vega-ncu-fp16-4

Pipeline je stále čtyřstupňová

Ačkoliv má GPU podstatně vyšší takty, podle AMD toho bylo dosaženo bez prodloužení pipeline samotných ALU, která je jako dříve čtyřstupňová. Lepší takty jsou částečně dosaženy optimalizací na kratší vzdálenosti vodičů v kritických částech čipu, zdokonalením nástrojů pro návrh a lepším využitím dostupného procesu. Například bloky SRAM pro registry a cache mají být převzaté ze Zenu a prý mají zlepšený výkon, fyzický rozměr i efektivitu.

Podle AMD mají shadery/ALU architektury Vega stále jen krátkou čtyřstupňovou pipeline
Podle AMD mají shadery/ALU architektury Vega stále jen krátkou čtyřstupňovou pipeline

Ze Zenu má být jinak převzata také propojovací logika Infinity Fabric, která je zřejmě použita jednak k řízení čipu, ale i k interní komunikaci. Zatím ale nevíme, zda je také schopná vnější komunikace, například přímého propojení s procesorem Zen.

Vega 10 sdílí návrh pamětí SRAM s architekturou Zen
Vega 10 sdílí návrh pamětí SRAM s architekturou Zen

Stránkování v paměťovém subsystému („HBCC“)

Paměťový subsystém u Vega 10 má kromě použití čipů HBM2 integrovaných přímo na pouzdře GPU jednu novinku pod pokličkou. Tato paměť je u Vegy de facto používána jako cache, nikoliv jako poslední úroveň paměti. Při použití této paměti se používá stránkování a objekty a struktury dat, které by normálně byly v grafické paměti jako monolitické bloky, jsou nahrávány po jednotlivých stránkách. To znamená, že v paměti HBM2 jsou ve výsledku jen aktivně používaná data, kdežto ta potřebná méně mohou být „odswapovaná“ do systémové RAM, nebo třeba do nevolatilní paměti na kartě Radeon Pro SSG.

amd-vega-pamet-0Toto chování má být i konfigurovatelné, každopádně jeho cílem je, aby grafika dokázala plnohodnotně pracovat s většími sadami dat, než je kapacita její paměti. Toto by mělo být důležité hlavně dlouhodobě a do budoucna, jelikož 8GB nativní kapacita Radeonů RX Vega by měla být dostatečná i bez stránkování. Stránkování ale obecně vede k lepšímu využití kapacity, kdežto bez něj musí výt v paměti všechny části nahraných dat, i když jsou některé „studené“. Zároveň by výkon neměl tolik degradovat, když paměť lokální grafice dojde, což asi oceníme spíš na eventuálních levnějších verzích Vegy.

amd-vega-pamet-3Když už je jinak řeč o paměťovém subsystému, AMD zřejmě také zvětšilo paměti cache v čipu. L2 cache Vegy 10 má kapacitu 4 MB, tedy dvojnásobek kapacity u Polaris 10. Celkový objem paměti SRAM na čipu je údajně 45 MB, v čemž ale jsou asi zahrnuté i registry a další interní buffery.

amd-vega-navrh-2

Rasterizace a geometrie

Mimo programovatelnou část by GPU Vega 10 mělo mít vylepšené i tzv. fixní funkce grafické pipeline, tedy rasterizaci a geometrii. O těchto aspektech se ale ale moc dopodrobna nemluví. Rasterizaci by měla pomoci technologie Draw Stream Binning Rasterizer, implementující vykreslování po dlaždicích, snad podobné tomu používanému Pascalem a Maxwellem od Nvidie. V principu jde o to, že se rasterizuje po malých (pružně nastavitelných) částech obrazu tak, aby pro danou dlaždici byla pokud možno všechna data lokálně v paměti cache a vnitřních bufferech a nebylo třeba je přenášet tam a zpátky z paměti.

amd-vega-draw-binning-stream-rasterizer-0

Kolik datových přenosů ušetří Draw Stream Binning Rasterizer v různých hrách
Kolik datových přenosů ušetří Draw Stream Binning Rasterizer v různých hrách

Tato funkce zatím ještě nebyla v ovladačích (třeba pro Frontier Edition) aktivní. Není jasné, zda její přínosy budou po aktivaci okamžité, nebo budou přicházet postupně s optimalizacemi. Podle slajdů AMD může DSBR v hrách přinášet různé zlepšení. Množství bajtů přenesených do a z paměti, které jsou takto uspořeny na jeden snímek, je od 5 do 15 %, v některý případech i vyšší. Pokud je hra limitována propustností paměti, může se toto promítnout do vyššího celkového výkonu, kromě toho ale dlaždicový přístup šetří energií.

amd-vega-geometrie-0Také výpočty geometrie scény, které předcházejí texturování, rasterizaci a pixel shaderům, mají být posíleny, i když mnoho detailů zde nemáme. Geometry Engines jsou stále jen čtyři (nikoliv zdvojnásobeny na osmu, jak se spekulovalo), ale měly by mít různé optimalizace pro lepší využití jejich kapacity a snad také celkově vyšší propustnost.

Zde může zlepšení přinést také technologie Primitive Shaderů, která rozšiřuje schopnosti Vertex Shaderů a umožňuje v nich odstraňovat některé nepotřebné výpočty, nicméně tato funkce bude potřebovat explicitní podporu od vývojářů her. Jde vlastně o zcela nové programovatelné zpracování geometrie, s potenciálně vyšším výkonem a flexibilitou, takže patřičné využití asi nepřijde rychle.

Primitive shader mění fungování geometrické pipeline, zda se uchytí, těžko říct
Primitive shader mění fungování geometrické pipeline, zda se uchytí, těžko říct

Širší schopnosti ve Vulkanu a DirectX 12

Architektura Vega by mimo tato zlepšení výkonu měla být také dál co do podpory různých funkcí nových grafických API. Podporuje DirectX Feature Level 12_1 (oproti 12_0 Polarisu), navíc umí stupeň Tier 3 technologií Tiled Resources, Resource Binding a Conservative Rasterization a Tier 2 technologie Resource Heap. Dále umí Raster Ordered Views, Pixel Shader Stencil Reference, Standard Swizzle a Shader Model 6.0+.

Podle AMD jsou hardwarové schopnosti napřed před (loňským) Pascalem od Nvidie i současnou úrovní DirectX a Vulkanu, ale nevím jistě, zda v následující tabulce nebylo něco důležitého opomenuto.

Podpora různých rozšířených funkcí DirectX 12 v porovnání s Polarisem a Pascalem (Nvidia)
Podpora různých rozšířených funkcí DirectX 12 v porovnání s Polarisem a Pascalem od Nvidie

Podpora vyšších rozlišení s HDR

Lepší schopnosti získal také blok odpovědný za výstup na obrazovku. Stejně jako Polaris podporuje Vega DisplayPort 1.4 a HDMI 2.0, avšak Vega 10 zdá se umí vyprodukovat vyšší datové toky, až 32,4 Gb/s (specifikace DisplayPort HBR3). S běžnými SDR (32bitovými) barvami jsou dostupná rozlišení stejná jako u Polarisu, ale Vega dokáže zvládnout vyšší režimy s HDR (64bitovými) barvami. Zvládne tak živit 5K monitor s HDR obrazem při 60 Hz nebo 4K HDR obraz při 120 Hz. Polaris utáhl v HDR jen jeden 4K monitor při 60 Hz, Vega 10 takovéto obrazovky podporuje tři najednou. Také by měla umět připojit dva 4K 120Hz monitory v režimu SDR a až tři 8K obrazovky při 30 Hz. Při 60 snímcích za vteřinu je nadále podporován jen jeden 8K monitor s SDR obrazem.

amd-vega-vystup-lcd

Multi-GPU na odtoku?

Kromě novinek tu máme i „ztráty“. Možná to přímo nesouvisí s novou architekturou, ale AMD údajně plánuje pomalu ubrat z úsilí, které věnuje podpoře multi-GPU (CrossFire). Vega sice oficiálně neztratí podporu pro CrossFire, ale firma jí nebude věnovat tolik prostředků (což mimochodem následuje podobné kroky Nvidie). Podpora SLI a CrossFire ve hrách se v poslední době už tak zhoršovala, některé tituly Multi-GPU v podstatě nedovolovaly.

Upozaďování CrossFire možná také znamená, že se přestanou objevovat dvojčipové Radeony, i když nevíme, zda se třeba CrossFire neudrží ve virtuální realitě. Obě firmy mají své technologie pro využití dvou GPU k vykreslování obou pohledů stereoskopického obrazu.

AMD Secure Processor v grafice

Na konec jsem si nechal jednu nečekanou zajímavost. AMD totiž odhalilo, že uvnitř Vegy je také integrovám Secure Procesor (jinak též označovaný PSP), který mají jako řídící a bezpečnostní jednotku Ryzeny a APU. AMD Secure Processor integrovalo i do Vegy 10, kde může složit k implementaci bezpečného bootu a na GPU nedovolí spustit nepodepsaný/neutentizovný program nebo firmware. Zároveň může vymáhat bezpečnostní omezení například u grafické paměti a chránit tak citlivý obsah nebo šifrovací klíče před přečtením neautorizovaným uživatelem nebo programem.

Překvapení: Vega 10 má Secure Processor, jako CPU od AMD
Překvapení: Vega 10 má Secure Processor, jako CPU od AMD

Secure Processor bude asi uplatněn hlavně na grafikách profesionální třídy (AMD jej prezentovalo jaku funkci pro Radeon Pro), ale teoreticky by mohl pomoci i ve spotřebitelském segmentu – například pro splnění náročných požadavků, požadovaných pro přehrávání 4K disků Ultra HD Blu-Ray. Snad tento vývoj neuzavře cestu k modifikaci BIOSů, která v minulosti umožňovala například odemknout vypnuté jednotky v GPU.

Vega 10 podporuje hardwarovou virtualizaci pro 16 klientů
Vega 10 podporuje hardwarovou virtualizaci pro 16 klientů

Pro podobná seriózní nasazení má Vega 10 také podporu pro virtualizaci SR-IOV. Grafiku včetně jejích multimediálních bloků může používat až 16 virtualizovaných klientů. Prostředky jsou přidělovány samotnou grafikou a výkon by tím měl být lepší, než pokud by přístup byl virtualizován jen softwarově.

Ještě k novinkám Radeonů Vega: PSP, DirectX 12_1, vyšší rozlišení, kousky Zenu a další

Ohodnoťte tento článek!
5 (100%) 1 hlas/ů

11 KOMENTÁŘE

  1. „Zde může zlepšení přinést také technologie Primitive Shaderů, která rozšiřuje schopnosti Vertex Shaderů a umožňuje v nich odstraňovat některé nepotřebné výpočty“

    Celkom ma čo toto presne znamená. Aké nepotrebné výpočty? Nejde skôr o vyradenie časti geometrie za určitých podmienok (len hádam)? Pokiaľ som nepoužíval v niektorých postupoch teselačné shadre a geometry shader, tak vertex shader bol využitý hlavne na prevody súradníc z objektového priestoru do priestoru homogénnych súradníc, s ktorými pracuje GPU, ďalej na uplatnenie výškovej mapy (pri jednoduchom simulovaní povrchu vody) alebo pri vypočítaní teselačného stupňa pri adaptívnej teselácii. Proste ma nenapadajú žiadne „nepotrebné výpočty“, ktoré by sa mohli odstrániť. Ale zasa som toto nikdy nerobil profesionálne, takže počítam s tým, že sa určite nájdu postupy, ktoré nepoznám. 🙂

      • Toto nerieši vertex shader. V ňom nevieš akú veľkosť daný objekt má. Na vstup dostávaš iba vertexy. Nie objekty. Plus stále môžeš vyrobiť v nejskorše fáze cez teselačné shadere trojuholníky menšie ako jeden pixel. S tým už vôbec nič vertex shader neurobí.

    • Jo, mělo by to být to vyřazování geometrie (culling). Podle AMD to má být možné dělat přímo v rámci toho primitive shaderu. Jak přesně by to mělo probíhat a v čem jsou výhody proti alternativám, to fakt nevím.

      • Ak by sa dala vylúčiť časť geometrie už vo vertex shader-y, mohlo by to slušne pomôcť. Určite o dosť lepšie ako keď to má zbytočne prejsť celou „geometry pipline“ a vylúči sa to až potom v rámci HW frustum culling.

  2. „Také výpočty geometrie scény, které předcházejí texturování, rasterizaci a pixel shaderům, mají být posíleny, i když mnoho detailů zde nemáme. Geometry Engines jsou stále jen čtyři (nikoliv zdvojnásobeny na osmu, jak se spekulovalo), ale měly by mít různé optimalizace pro lepší využití jejich kapacity a snad také celkově vyšší propustnost.“

    podle toho obrázku s GE : https://www.techpowerup.com/reviews/AMD/Vega_Microarchitecture_Technical_Overview/images/slides-44.jpg
    je vidět 8 obdélníků v GE procesorech. Takže buď AMD ty původní 4 fixní jednotky rozclusterovalo a udělalo z nich dual thread procesory, což by odpovídalo tomuhle slajdu : http://images.anandtech.com/doci/11002/Vega%20Final%20Presentation-23.png
    nebo ty 4 GE umí jiným způsobem zpracovat 2 polygony per clock. Jinak si neumím vysvětlit, jak by AMD k tomu číslu vůbec přišla…

  3. Čert ví co na tom obrázku je, ale v slajdech (viz první obrázek) je explicitně napsáno že geometry engine jsou čtyři. Měly by prý zvládat 11 polygon za takt (divné číslo), ale nevím za jakých podmínek, jeslti v tom není nějak zahrnutej ten primitive shader nebo tak něco.

  4. koukal jsem na nástřel cen a je to masakr, zdá se že v AMD zůstali ve snových očekáváních rozválcování Titána a podle toho nasadili ceny – TiXP jako volba „pro chudší“ to tu vážně dlouho nebyl takový úlet :-))