High Bandwidth Cache (of toch Memory?)
Ken je de anekdote van de hoge pief van een grote Amerikaanse multinational die tijdelijk op het kantoor in Amsterdam gestationeerd werd? De Nederlandse collega’s probeerden om een voor zijn kaliber geschikte tijdelijke woonlocatie in Amsterdam te vinden, maar slaagden daar niet in. Geen probleem volgens zijn Amerikaanse assistente, ze had zelf al een woning “in de buurt” gevonden. Dit bleek in Nijmegen te zijn. Moraal van het verhaal: of iets “in de buurt” is, ligt er maar net aan met welk perspectief je ergens naar kijkt.
In de computerwereld noemen we geheugen dat in de buurt van rekeneenheden aanwezig is, specifiek geheugen binnen dezelfde chips, in de regel cache. Termen als L2-cache en L3-cache kom je geregeld tegen bij CPU- en GPU-reviews op Hardware.Info.
Bij Vega noemt AMD wat wij tot nu toe het normale geheugen van de videokaart zouden noemen echter ook ineens cache. De Vega kaarten krijgen in AMD-jargon dus niet 8 GB geheugen, maar 8 GB cache. Op de doos van Vega kaarten zal dan ook staan "8 GB High Bandwidth Cache". Vreemd? Ja. Onzinnig? Zeker niet! De reden waarom AMD over cache spreekt is tweeledig. Allereerst maakt Vega gebruik van HBM2 (High Bandwidth Memory versie 2) geheugen, chips die direct naast de GPU op een zogenaamde interposer binnen de totale chip worden geplaatst. Dat kunnen we toch gerust “in de buurt” noemen - maar nog belangrijker is dat het geheugen ook daadwerkelijk als een cache kan werken, waarover later meer.
Eerst meer over HBM. Vega is na de Fury (X) kaarten de tweede generatie GPU’s die gebruik maken van HBM. Bij Fury maakte men nog gebruik van de eerste versies van HBM; HBM 1.0 chips - stacks in jargon - werden via een 1024-bit bus verbonden met de GPU. De HBM 1.0 stacks werkten op 500 MHz DDR-snelheid en kunnen dus 1 Gigabit/s doorvoersnelheid per pin verwerken. AMD’s Radeon R9 Fury kaarten werden van vier van dergelijke stacks voorzien en de totale geheugenbandbreedte kwam zodoende op 4096 gigabit/s, ofwel 512 GB/s. De maximale hoeveelheid geheugen per stack was 1 GB, wat betekende dat de Fury kaarten in totaal 4 GB geheugen hadden.
Wat bij HBM 2.0 is gebleven is de 1024-bit verbinding tussen de geheugenchip en de GPU. De bandbreedte per pin is echter verdubbeld naar 2 Gigabit/s. De belangrijkste verbetering is de capaciteit; een stack kan nu 4 GB geheugen bevatten en in de toekomst zelfs 8 en 16 GB. Bij HBM wordt geheugen gestapeld en iedere laag bij HBM2 bevat 1 GB. De standaard voorziet dus in geheugen met tot 16 lagen per stack. Op de Vega kaarten maakt AMD dus gebruik van HBM2, maar in tegenstelling tot bij de Fury plaatst het twee in plaats van vier stacks. Dat maakt dat de geheugenhoeveelheid toeneemt; 8 GB. De geheugenbandbreedte is echter vrijwel identiek aan de Fury; de verdubbeling van de bandbreedte per pin wordt immers gecompenseerd door de halvering van het aantal stacks. AMD spreekt over 484 GB/s, wat duidt op een klokfrequentie van 945 MHz.
Die 484 GB/s is zeker niet wereldschokkend. De GeForce GTX 1080 Ti zit met 352-bit GDDR5X-geheugen op 1375 MHz op exact dezelfde waarde. De directe concurrent van Vega, de GeForce GTX 1080, komt met 256-bit GDDR5X geheugen op 1250 MHz echter uit op “slechts” 320 GB/s.
Het voordeel van HBM zit volgens AMD echter niet primair bij de hoge bandbreedte. Volgens AMD biedt HBM2 ten opzichte van GDDR5X vooral ook veel lagere latencies én een veel lager stroomverbruik. Daarmee kan een groter deel van het TDP-stroombudget van een videokaart gebruikt worden voor de GPU en om heel eerlijk te zijn; kan AMD in de praktijk het feit dat haar architectuur wat minder efficiënt is dan die van Nvidia voor een groot gedeelte compenseren.
Een ander belangrijk voordeel van HBM is dat het totale oppervlakte dat nodig is voor GPU en geheugen veel minder is dan bij een traditionele GPU met GDDR-geheugen. Voor desktop gebruikers betekent dit dat we absoluut weer kleine Nano-varianten van de videokaarten mogen verwachten, geschikt voor Mini ITX systemen. Maar de kleine afmetingen zijn nog veel interessanter voor all-in-one PC’s en laptops, waar AMD op termijn ook Vega in wil gaan verwerken.
Geheugen als cache
Terug naar het hele geheugen versus cache verhaal. AMD signaleert een duidelijke trend dat datasets steeds groter en groter en worden en de hoeveelheid geheugen van een videokaart ruim te boven gaan. Bij games is dat zeker het geval; de totale hoeveelheid textures en andere grafische data van een moderne triple-A game is zeker meer dan 8 GB. Bij professionele workloads is dat zeker ook het geval; bij zaken als machine learning, waar de Vega-architectuur ook voor bedoeld is, kunnen datasets zelfs al richting de exabytes gaan.
Bij de RX Vega kaarten hebben we het natuurlijk primair over games. In de praktijk is het aan game developer om er binnen de engine voor te zorgen dat alle data die voor het huidige level of de huidige scene nodig is, in het lokale geheugen van de videokaart wordt geplaatst. Nieuw bij Vega is dat het geheugen daadwerkelijk als cache ingezet kan worden. Dat betekent dat alle data voor workloads (game of ander type) in de basis in het werkgeheugen van de PC of wellicht zelfs op een SSD of HDD staat en de GPU zelf met slimme algoritmes bepaalt welke data naar het lokale geheugen gehaald moet worden. Net zoals een CPU/GPU nu al zelf via slimme algoritmes ervoor zorgen dat alle benodigde data zo vaak en snel mogelijk van RAM-geheugen naar L2- of L3-cache wordt gehaald. Deze methode heeft twee voordelen; het ontlast de game(-engine) developer die niet zelf geheugenmanagement hoeft te ontwikkelen, maar bovenal werkt de methode op page-basis, wat betekent dat data in relatief kleine blokken overgehaald kan worden. Interne analyses van AMD geven aan dat bij games gemiddeld 50% van de data die door de engine in het videokaartgeheugen wordt geplaatst, helemaal niet wordt gebruikt.
Nu is dat laatste in principe toekomstmuziek (alle game engines regelen vooralsnog zelf hun eigen geheugenbeheer) maar ook nu al kun je gebruik maken van de caching techniek. Bij een Vega kaart kun je in de drivers via een slider immers de hoeveelheid geheugen van de videokaart virtueel vergroten, van 8 GB naar bijvoorbeeld 16 GB of 32 GB. Game engines (of andere software) zien dan een videokaart met de betreffende hoeveelheid geheugen en kunnen dat alloceren. De caching algoritmes binnen de Vega chip zorgen ervoor dat de belangrijkste data (lees: data waarvan verwacht wordt dat die daadwerkelijk gebruikt wordt) in de 8 GB geheugen op de kaart staat en de rest in RAM-geheugen van de PC.
Wat je daar aan hebt? Als er in de toekomst een game uit zou komen die meer dan 8 GB geheugen vereist, zou je die in een normaal geval niet met een 8 GB kaart kunnen spelen. Met een Vega kaart kan dat dus wél en dat maakt de videokaart in principe meer future-proof. En als AMD’s interne analyses kloppen dat van het in videokaartgeheugen opgeslagen game data in de regel maar circa 50% daadwerkelijk wordt gebruikt binnen een bepaalde scène, zou je dus in principe scenario’s waarvoor je een 16 GB videokaart nodig hebt probleemloos met een 8 GB kaart moeten kunnen spelen.
De Vega 10 chip kan in theorie overigens tot 512 TB virtueel geheugen adresseren. Dergelijke grote hoeveelheden zullen echter enkel nut hebben bij professionele gebruiksmodellen.
3 besproken producten
Vergelijk | Product | Prijs | |
---|---|---|---|
![]() |
AMD Radeon RX Vega 56
|
Niet verkrijgbaar | |
![]() |
AMD Radeon RX Vega 64
|
Niet verkrijgbaar | |
![]() |
AMD Radeon RX Vega 64 Liquid Cooled
|
Niet verkrijgbaar |