De AMD Radeon RX 6000-serie videokaarten is opgebouwd rondom de RDNA 2-architectuur. Met de RX 5000-serie maakte AMD vorig jaar een grote overstap van de compute-georiënteerde Graphics Core Next-architectuur naar RDNA, waarin gaming veel meer centraal staat. Hoewel GCN sinds zijn debuut begin 2012 aanzienlijk is aangepast en verbeterd met elke volgende iteratie, verscheen pas zeven jaar later een compleet nieuwe architectuur op een Radeon-gpu. Nu is het dus tijd voor de tweede generatie van AMD's op gaming gerichte architectuur.
De grote kloof tussen cache en VRAM
Ten opzichte van de eerste generatie RDNA zijn er op RDNA 2 minder fundamentele verschillen te vinden. Het dualcompute-unitontwerp, waarbij smallere wavefronts dan op GCN gebruikt worden, zien we op de RX 6000-serie terug. Dit heeft een hogere efficiëntie en betere parallellisatie als voordeel, maar daarvoor is ook sneller en flexibeler cachegeheugen nodig. Met RDNA 1 heeft AMD daarin voorzien door meer L0-cache te plaatsen en de L1-cache gedeeld te maken, waar dat op GCN nog geïsoleerd was per compute-unit.
In een terugblik stelt AMD dat het nieuwe cachesysteem van RDNA 1 geslaagd is vanwege de snelheid, maar dat de hit rate ervan wel laag is. Dat betekent dat de gpu vaak data uit het vram moet halen, omdat de benodigde data niet direct beschikbaar is in het cachegeheugen. En hoewel we bij de geheugenbandbreedte van gpu's tegenwoordig praten over honderden gigabytes per seconde, is de vertraging door elke miss in het cachegeheugen aanzienlijk. Om dit in perspectief te zetten: latencies van cachegeheugen bedragen enkele nanoseconden, terwijl een uitstapje naar het losse werkgeheugen op zijn best tientallen nanoseconden vraagt. Aanspraak maken op het vram gebeurt bij moderne gpu's zeer frequent, niet alleen omdat moderne games veel geheugen gebruiken, maar ook omdat er van de geheugenbuffer van enkele gigabytes maar een zeer klein deel tegelijk in het enkele megabytes tellende cachegeheugen aanwezig kan zijn.
Infinity Cache
De oplossing die AMD hiervoor heeft bedacht, is Infinity Cache, een 'bandwidth amplifier', zoals de fabrikant het zelf noemt. Op de Navi 21-gpu is de Infinity Cache 128MB groot en functioneert hij als een L3-cache. Dit geheugen draait op maximaal 1940MHz en geeft vier keer de maximale geheugenbandbreedte van een conventionele 256bit-GDDR6-geheugenbus. AMD stelt dat de Infinity Cache samen met de gebruikte 256bit-geheugenbus ruim twee keer de bandbreedte van een 384bit-GDDR6-opstelling geeft, bij een 10 procent lager stroomverbruik.
Het plaatsen van een dergelijke hoeveelheid cachegeheugen is kostbaar, aangezien het relatief veel ruimte op een chip in beslag neemt, wat de kosten per chip doet toenemen. Desondanks zegt AMD dat met Infinity Cache op Navi de voordelen groter zijn dan de nadelen. De benodigde geheugenbandbreedte uit een 512bit-geheugenopstelling halen zou de chip ingewikkelder maken om te produceren, het zou meer eisen stellen aan het pcb en het stroomverbruik zou significant toenemen. Omdat er dankzij deze oplossing een minder brede geheugenbus nodig is, zijn er ook minder datapaden op de chip en op het pcb nodig. Dit maakt het ontwerp van de kaart eenvoudiger en hem makkelijker om te produceren dan een videokaart met een 512bit-geheugenbus, aldus de fabrikant. De hoeveelheid van 128MB Infinity Cache op de Navi 21-gpu is volgens de fabrikant gekozen omdat het de beste balans geeft tussen prestatiewinst op gangbare schermresoluties en kosten.
Als extra voordelen noemt AMD voor de Infinity Cache een lagere geheugenlatency, die moet gecombineerd met het GDDR6 op de RX 6800 XT 34 procent lager liggen dan op de RX 5700. De latency van de Infinity Cache zelf bedraagt ongeveer de helft van de latency van normaal videogeheugen.
Geoptimaliseerd energiegebruik, hogere kloksnelheden
Hoewel de RX 6000-serie op hetzelfde 7nm-proces bij TSMC wordt geproduceerd als de RX 5000-serie, zijn er in de RDNA 2-architectuur wijzigingen doorgevoerd die de maximale kloksnelheden opschroeven en tegelijk het energiegebruik optimaliseren. Hiervoor heeft het Radeon-team gebruikgemaakt van de ervaringen en libraries van het cpu-team van AMD dat verantwoordelijk is voor de Ryzen-processors. Door slimmer gebruik van de verschillende caches wordt minder data verplaatst, wat het stroomverbruik ten goede komt. Samen met de optimalisaties voor hogere kloksnelheden en uitgebreide clock gating betekent dit dat bij een gelijk verbruik per compute-unit ten opzichte van Navi 10 de kloksnelheid 30 procent omhoog kon. De hoge kloksnelheid van het cachegeheugen, inclusief de Infinity Cache, zorgt er weer voor dat de latencies laag blijven en compute-units vervolgens minder vaak moeten wachten tot ze over de juiste data beschikken.
Met de hierboven besproken onderdelen claimt AMD in totaal op 54 procent betere prestaties per watt uit te komen dan met RDNA 1, waarbij de fabrikant de RX 6800 XT en RX 5700 XT vergelijkt.
Raytracing en upscaling
RDNA 2 is tegelijk de eerste gpu-architectuur van AMD waarop hardwarematige versnelling voor raytracing wordt ondersteund. Concurrent Nvidia kwam hiermee voor het eerst met zijn Turing-generatie, die inmiddels is opgevolgd door Ampere in de RTX 30-serie. Voor de Radeons is de RX 6000-serie dus de vuurdoop wat raytracing betreft en dit wordt mogelijk gemaakt door de Ray Accelerator, waarvan per compute-unit één exemplaar beschikbaar is.
AMD geeft weinig details over de exacte werking van de Ray Accelerators en benadrukt vooral dat de RDNA 2-architectuur het samen met de nieuwe generatie consoles mogelijk maakt om raytracing als hybrid rendering te gebruiken, gecombineerd rasterization en raytracing dus. De fabrikant stelt daarvoor zijn FidelityFX-software beschikbaar, waarmee ontwikkelaars raytracing kunnen gebruiken voor ambient occlusion, screen space reflections, denoising, variable rate shading en contrast adaptive sharpening. In die laatste categorie is al de nodige tijd Radeon Image Sharpening beschikbaar, maar de fabrikant is druk bezig met een nieuwe upscalingtechnologie die deel moet uitmaken van FidelityFX en waarover AMD binnenkort meer bekend wil maken.