AMD Vega preview: eerste details van architectuur bekend

86 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Geheugen: HBM2 en geheugen wordt cache
  3. 3. Optimalisaties
  4. 4. Nog even geduld
  5. 5. Volledige presentatie Vega
  6. 6. Reacties

Inleiding

Wanneer precies is nog onbekend, maar ergens in 2017 zal AMD een nieuwe generatie Radeon-videokaarten, nu nog bekend onder codenaam "Vega", op de markt brengen. Kort geleden maakte AMD de eerste technische details bekend. Hardware.Info doet verslag.

Lees ook: CES: AMD Vega-GPU is ongeveer 520 mm² groot

Wat voor kaarten er exact gaan komen in de Vega-generatie weten we nog niet; over naamgeving, specificaties, te verwachten prestaties, prijsstelling en moment van introductie wil AMD nog niets kwijt. Wat echter uit gesprekken met AMD medewerkers als ook uit de vele geruchten wel duidelijk wordt is dat men binnen de Vega-generatie weer een alternatief voor Nvidia in het high-end segment wil gaan introduceren. De "Polaris"-kaarten die AMD dit jaar introduceerde waren juist meer gericht op het betaalbare segment en moesten uitblinken met een uitstekende prijs/prestatieverhouding.

Wat AMD op dit moment vooral wil duidelijk maken is dat Vega veel meer is dan een Polaris-derivaat met simpelweg meer shader units en een bredere geheugenbus. Het belangrijkste onderdeel van de chip, de zogenaamde compute units, is opnieuw ontworpen, en er is onder andere ondersteuning voor een nieuw type geheugen en meer. 

Wat ook wel duidelijk is, is dat AMD zich met de Vega architectuur niet puur op gamers richt. GPU's worden de afgelopen jaren meer en meer voor andere taken toegepast en zeker in de wereld van machine learning is op dit moment voor GPU-ontwikkelaars veel geld te verdienen. Zodoende introduceerde AMD kort geleden al de specifiek op deze markt gerichte Radeon Instinct hard- en software en binnen die reeks zullen ook Vega-producten worden opgenomen. Uit de zaken die AMD bekend heeft gemaakt is duidelijk dat Vega geschikter is gemaakt voor dergelijke workloads, onder meer door de betere ondersteuning voor 8-bit en 16-bit data (waar binnen games vrijwel uitsluitend 32-bit data wordt gebruikt) en ondersteuning voor veel grotere datasets.

Geheugen: HBM2 en geheugen wordt cache

We schreven op de vorige pagina al dat Vega veel geschikter is voor grote datasets. Volgens AMD is dat goed voor games, maar vooral ook voor andere doeleinden. AMD geeft aan dat de installatiegrootte van moderne games sinds een aantal jaren exponentieel stijgt. Veel van die data is graphics-gerelateerd, bijvoorbeeld meer en gedetailleerdere textures. Het probleem van veel data is bij zogenaamde compute workloads nog veel groter; de datasets bij machine learning applicaties kunnen tot in de exabytes lopen. Véél meer dus dan de paar gigabyte die je in het lokale geheugen van de videokaart zelf kunt opslaan.

Dit alles vergt een frisse blik op de manier waarop geheugen door de GPU wordt behandeld. Bij Vega neemt AMD een radicale stap, niet zo zeer technisch, als wel qua naamgeving. Het geheugen dat rechtstreeks op de videokaart is gesoldeerd noemt men niet langer geheugen maar cache. Om die reden is de geheugencontroller in de GPU omgedoopt tot high band cache controller. Dit alles omdat men het geheugen op de videokaart in principe ziet als snelle cache voor de potentieel in omvang veel grotere hoeveelheid data die elders in het systeem staat, in het globale RAM-geheugen, op een SSD, op een netwerklocatie, of waar dan ook. Gezien GPU's al een L1-, L2- en L3-cache hebben, zou je het geheugen dan kunnen opvatten als een soort L4-cache, al wordt die naamgeving niet gebruikt. De Vega-chips kunnen volgens AMD maximaal 512TB geheugen adresseren. Slimme algoritmes in de controller moeten ervoor zorgen dat de data die op ieder gegeven moment daadwerkelijk gebruikt wordt door de GPU ook daadwerkelijk in het lokale geheugen aanwezig is.

In principe betekent dit dat we in het Vega-tijdperk moeten gaan praten over videokaarten met bijvoorbeeld "8GB cache" in plaats van "8GB geheugen". Of dat ook écht gaat gebeuren valt te betwijfelen; verwarrend is het zeker. Zo verwarrend zelfs, dat de technici van AMD tijdens de Vega-prestatie meermaals de mist in gingen en een uitgebreide groepsdiscussie met journalisten uiteindelijk dusdanig ontspoorde dat op een gegeven echt even gepauzeerd moest worden om expliciet duidelijk te maken waar iedereen het nu exact over had. 

Wat we eigenlijk wel al wisten, maar nu door AMD expliciet is bevestigd, is dat de geheugencontroller, herstel, cache-controller binnen Vega geschikt wordt voor HBM2, ofwel de tweede generatie van het High Bandwidth Memory dat men voor het eerst toepaste bij de Fiji-GPU van de Radeon R9 Fury (X). High Bandwidth Memory is extreem snel geheugen dat direct naast de GPU binnen dezelfde chipverpakking op een zogenaamde interposer wordt geplaatst. Door die directe koppeling zijn veel meer dataverbindingen mogelijk. Een uitgebreid achtergrond artikel over HBM lees je hier terug.

Bij de Radeon R9 Fury X werd de GPU omringd door vier zogenaamde HBM-stacks van elk 1 GB. Deze stacks bestonden weer uit vier lagen van elk 256 MB. Iedere stack staat via een 1024-bit bus in verbinding met de GPU, zodat je dus mag concluderen dat de Fiji GPU in totaal een 4096-bit geheugenbus heeft. De HBM-chips werkten op 500 MHz DDR snelheid, ofwel met 1 gigabit/s geheugensnelheid per pin. De totale geheugenbandbreedte is met de 4096-bit verbinding dus 4096 gigabit/s, ofwel 512 GB/s.

Bij HBM2 blijft de verbinding 1024-bit per stack, maar wordt de doorvoersnelheid verhoogd naar 1 GHz DDR, ofwel 2 gigabyte/s. Ook bij HBM2 zullen er vier stacks per GPU gekoppeld worden, waardoor de totale geheugenbandbreedte dus verdubbeld van 512 GB/s naar 1024 GB/s (ofwel 1 TB/s). Dat is meer dan twee keer zo snel als de 384-bit GDDR5X implementatie op de Nvidia GeForce GTX Titan X! De capaciteit per stack kan binnen de HBM2-standaard maximaal verachtvoudigd worden, enerzijds door 8 in plaats 4 lagen per stack mogelijk te maken en anderzijds door de maximale capaciteit per laag te verhogen van 256 MB naar 1 GB. Het maakt dat HBM2 het in principe mogelijk maakt om videokaarten met 32 GB geheugen cache uit te brengen. Dat zal echter niet direct het geval zijn; zowel Samsung als Hynix hebben afgelopen jaar aangekondigd in eerste instantie met HBM2 chips van 4GB per stack te komen. Dat zou dus betekenen dat de Vega-kaarten 4 x 4 = 16GB geheugen krijgen.

Optimalisaties

Ook dieper in de GPU zijn er diverse verdere optimalisaties te vinden. Allereerst heeft AMD binnen de Vega-architectuur een nieuwe, volledig programmeerbare geometrie pipeline ontwikkeld, getiteld primitive shader. In de traditionele 3D-pipeline komt deze in plaats van de vertex en geometry shaders en pakt dus al het werk op dat te maken heeft met het uit driehoeken opbouwen van de scene. Bij bestaande software kan Vega ook prima conventionele code vertex en geometery shader code verwerken, maar dankzij uitbreidingen op de Vulkan en wellicht in de toekomst ook DirectX API's zijn de compute units ook efficiënter volgens de nieuwe methode aan te sturen. Laat duidelijk zijn; het gaat nog altijd gewoon om de bestaande rekeneenheden (compute units) die op meerdere manieren aangestuurd kunnen worden, maar dankzij de nieuwe methode is er wat minder overhead en kan er efficiënter gewerkt worden.  

De compute units, de feitelijke rekeneenheden waarvan er duizenden binnen de chip aanwezig zijn, zijn ook vernieuwd en noemt men nu Vega NCU, waarbij NCU staat voor Next-generation Compute Unit. Een belangrijke verbetering is dat de CU's niet enkel geoptimaliseerd zijn voor verwerking van 32-bit data, maar nu ook op dubbele snelheid 16-bit data en ook op viervoudige snelheid 8-bit data kunnen verwerken. Deze aanpassing is vooral van belang om de GPU's geschikter te maken voor compute workloads, zoals het op de eerste pagina van dit artikel genoemde machine learning. Volgens AMD kunnen ook gamers er in potentie van profiteren. Sommige niet graphics-gelerateerde code van game-engines, zoals bijvoorbeeld AI (articificiële intelligentie) algoritmes, zouden ook in 16-bit of 8-bit uitgevoerd kunnen worden en daarvoor veel sneller verwerkt worden. Of developers dat ook daadwerkelijk gaan doen valt te natuurlijk te bezien. Men noemt deze functie Rapid Packed Math.

Verder geeft AMD aan dat de Vega NCU's zijn geoptimaliseerd voor hoge klokfrequenties en een hogere IPC, zonder dat verder concreet te maken. Toch durven we wel een schatting te maken. Bij de introductie van de Radeon Instinct producten gaf AMD aan dat de op Vega-chip gebaseerde Instinct kaart ca. 25 TFlops rekenkracht biedt bij 2x packed math, ofwel bij 16-bit data. We weten nu dat Vega 16-bit data twee keer zo snel verwerkt als 32-bit, dus voor 32-bit data zal de rekenkracht circa 12,5 TFlops zijn. Uit de vele geruchten die er over Vega rondgaan - en laat duidelijk zijn, dit is niet bevestigd - zou de GPU in totaal 4096 compute units krijgen. Op die manier zouden we uitkomen op circa 1500 MHz ( 12,5 / 4096 / 2 * 1000). Dat is inderdaad een aanzienlijk hogere klokfrequentie dan gebruikelijk bij de huidige AMD GPU's.

Ook de manier waarop de Vega chips de uiteindelijke pixels berekenen is geoptimaliseerd. Er zijn verbeterde algoritmes aanwezig die vooraf bepalen of een pixel wel of niet zichtbaar is en de verdere verwerking ervan stopzetten wanneer dat niet het geval gaat zijn. Hiermee probeert men het onnodig meerdere keren renderen van pixels binnen een frame zo veel mogelijk te voorkomen. De render backends staan in de nieuwe architectuur in directe verbinding met de L2-cache en kunnen daar op hoge snelheid mee communiceren. Dit heeft volgens AMD een groot positief effect op de prestaties bij game-engines die van deferred rendering gebruik maken. En dat zijn er voldoende! CryEngine 3, Unity, Unreal Engine 4 en AnvilNext maken alle in meer of mindere mate gebruik van deferred rendering. Hoe groot de prestatiewinst exact is, wil AMD echter nog niet prijsgeven en zal ook grotendeels afhankelijk zijn van drive optimalisaties.

Nog even geduld

Met de gepresenteerde informatie licht AMD een kleine tip van de sluier rond Vega op. De belangrijkste vragen (Wanneer? Welke specs? Welke prestaties? En tegen welke prijs?) zijn echter nog geen van alle beantwoord. We zullen dus nog even geduld moeten opbrengen...

Een kleine hint kregen we echter nog tijdens het evenement waarop de beschreven informatie bekend werd gemaakt. AMD toonde aldaar een live demo van Doom op een systeem met prototype Vega GPU. In Ultra HD (4K) resolutie met hoogste settings, daalde de framerate bijna niet onder de 70 fps. Daarmee lijkt Vega met nog premature drivers qua prestaties vrijwel gelijk aan c.q. iets sneller te zijn dan Nvidia's GeForce GTX 1080. Maar goed, dat is echt een eerste, zeer beperkte indicatie. Met definitieve hardware en drivers kan het zomaar nog aanzienlijk beter zijn. En ongetwijfeld zal het groene kamp daarvoor met een passend antwoord willen komen - er staan ons dus spannende tijden in het vooruitzicht!

Volledige presentatie Vega

Wie het leuk vindt, kan hieronder de volledige presentatie over AMD Vega nog eens doorklikken.

0
*