4de generatie GCN
De Polaris chips zijn gebaseerd op de vierde generatie van AMD's Graphics Cores Next architectuur. Bij de vorige drie varianten sprak AMD over GCN 1.0, 1.1 en 1.2, en hoewel er deze keer geen specifiek versienummer meer wordt gebruikt, houden wij het maar op GCN 1.3.
In onderstaande afbeeldingen zien we het blokschema van de Polaris 10 chips zoals gebruikt op de RX 480. We zien de 36 compute units, die zijn onderverdeeld in een viertal shader engines. Elk van deze shader engines heeft een eigen geometry engine en twee render backends, die in totaal tot 32 pixels per klokslag kunnen verwerken. In elk van de compute units zijn een viertal texture units verwerkt, waardoor het totaal komt op 144.
Het blokdiagram van de Polaris 10 chip op de Radeon RX 480.
De vierde generatie GCN-architectuur kent natuurlijk vele overeenkomsten met de vorige generaties, maar zoals op pagina twee van deze review al besproken zijn er vele kleinere en grotere verbeteringen doorgevoerd. Om te beginnen in de geometry engines, het onderdeel van de 3D-pipeline dat informatie over de positionering van de triangles (driehoeken) waaruit alle 3D-objecten zijn opgebouwd binnenkrijgt om daarna te verwerken. Een belangrijke vernieuwing hier is een verbeterde primitive discard accelerator. Dit houdt in dat driehoeken die zo klein zijn dat ze niet eens zichtbaar zijn op het scherm direct weggegooid worden, zodat deze verderop in de pipeline in zijn geheel niet meer verwerkt worden. Verder is de benodigde bandbreedte voor binnen de chip gegenereerde extra driehoeken (bijvoorbeeld dankzij tesselation) ook verder teruggebracht.
De shader units zelf zijn ook getuned. Allereerst is de instruction prefetch verbeterd: de CU's zorgen ervoor dat ze op tijd komende instructies uit het geheugen hebben opgehaald om zo vertragingen te voorkomen. Verder is de buffer van instructies bij de CU's vergroot, wat volgens AMD primair de prestaties bij single-threaded workloads verbetert. De communicatie tussen de rekeneenheden en de L2-cache is volgens AMD ook flink verbeterd. Ten slotte zijn de shader units geschikt gemaakt om naast 32-bit en 64-bit getallen ook te kunnen werken met 16-bit getallen, zowel integer als floating point. In specifieke (compute) workloads waar geen 32-bit nauwkeurigheid vereist is, kan dat voor minder benodigde geheugenbandbreedte en een lager stroomverbruik zorgen. Hoewel het voor ons lastig te kwantificeren is hoeveel de verschillende verbeteringen daadwerkelijk bijdragen, geeft AMD aan dat de compute units binnen Polaris op dezelfde klokfrequentie tot zo'n 15% beter presteren dan die van de Radeon R9 290. Let wel, die R9 290 is gebaseerd op de Hawaii chip en die is weer gebaseerd op 2e generatie GCN (GCN 1.1), dus een vergelijking met op Tonga of Fiji chips gebaseerde kaarten (derde generatie GCN) was wellicht eerlijker, maar minder indrukwekkend geweest. Het is veilig om aan te nemen dat de prestatiewinst per CU op dezelfde klokfrequentie tegenover de op Tonga gebaseerde Radeon R9 380 en 380X kaarten minder dan 10% is. Daar staat natuurlijk tegenover dat de RX 480 méér CU's heeft en op een hogere klokfrequentie werkt.
De shader units werken volgens AMD 15% efficiënter... dan die van twee generaties terug.
Het blijft niet bij verbeteringen binnen de CU's. AMD heeft ook haar GDDR5 geheugencontroller verder geoptimaliseerd. Belangrijkste vernieuwing is dat men de lossless kleurcompressie verder heeft verbeterd, iets wat Nvidia bij haar nieuwste generatie GPU's overigens ook claimde als een van de verbeteringen. Waar de 3e generatie GCN-chips (de eerste met color compression) tot ruim 15% meer data kon verwerken, is dat bij de vierde generatie GCN ruim 30%. Daar komt bovenop dat AMD de L2-cache heeft vergroot tot 2MB en de caching algoritmes heeft verbeterd, wat betekent dat data minder vaak daadwerkelijk vanuit het GDDR5 geheugen moet worden opgehaald. Het zou naast betere prestaties ook tot 40% energiebesparing bij het geheugen moeten leiden.
De AMD GPU's met GCN-architectuur waren al uniek door de uitstekende ondersteuning voor asynchronous compute, een in DirectX 12 beschikbare feature om een GPU tegelijkertijd twee of meer compleet verschillende taken te laten uitvoeren. Asynchronous compute wordt onder meer flink gebruikt in de Ashes of the Singularity benchmark, waar de GPU tegelijkertijd in de weer kan zijn met grafisch rekenwerk als andere compute workloads (bijvoorbeeld physics en AI). Bij Nvidia GPU's tot aan de nieuwste generatie moesten dergelijke berekeningen om en om gedaan worden, waarmee het lastiger was om de GPU zo efficiënt mogelijk te belasten. Hierdoor presteert AMD in deze specifieke benchmark duidelijk beter, wat als voornaamste gevolg heeft dat Ashes of the Singularity veelvuldig wordt gebruikt in AMD presentaties. Maar het moet gezegd worden: in de DirectX 12 wereld ligt het voor de hand dat GPU's binnen games meer en meer voor andere taken dan puur graphics worden ingezet, waarbij AI en physics twee goede voorbeelden zijn.
Een van de zaken waar asynchronous compute ook voor gebruikt wordt is de asynchonous warp zoals gebruikt door de Oculus Rift VR-headset. Wanneer een volgend frame niet op tijd volledig berekend is, wordt met behulp van de GPU-cores het huidige frame verschoven in de richting van de beweging van het hoofd, om zo toch een zo soepel mogelijke VR-beleving te leveren. Developers hebben bij de vierde generatie GCN-architectuur nieuwe mogelijkheden. Met compute preemption of graphics kan een compute workload complete voorrang krijgen en wordt en graphics-taken tijdelijk volledig gestopt. Bij de quick response queue krijgt de computer workload veel voorrang en kan de developer zelf bepalen welk percentage van de GPU-rekenkracht voor welke taak wordt ingezet.
De asynchronous compute mogelijkheden van de architectuur zijn verbeterd. Op verschillende manieren kunnen twee (of meer) workloads gecombineerd worden.
Al met al belooft AMD dus een in alle eerlijkheid weinig schokkende 15% prestatiewinst per CU op dezelfde klokfrequentie in vergelijking met twee generaties terug. Tegelijkertijd komt daar bovenop natuurlijk de winst die de kleinere transistors opleveren en de efficiëntere werking met het geheugen. Al met al claimt AMD een tot 2,8x beter performance-per-watt bij de Radeon RX 470 ten opzichte van de Radeon R7 270. Laat je echter ook hier niet misleiden door de marketing: de R7 270 is gebaseerd op de Pitcairn GPU met eerste generatie GCN (GCN 1.0), die in 2012 geïntroduceerd werd met de Radeon HD 7850 en 7870. Een vergelijking tussen de Radeon RX 480 (vierde generatie GCN) en Radeon R9 380X (derde generatie GCN) zou veel interessanter zijn, maar die geeft AMD niet. Maar goed, uiteraard hebben wij verderop ook de nodige stroomverbruik tests gedaan en vergelijken we aldaar de RX 480 ook met zijn voorgangers.
Laat je niet verleiden door de mooie getallen: de +15% is in vergelijking met twee generaties terug, de 2.8x zelfs in vergelijking met een GPU uit 2012, drie GCN-generaties geleden.
11 besproken producten
Vergelijk | Product | Prijs | |
---|---|---|---|
![]() |
AMD Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
Asus Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
Gigabyte Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
HIS Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
MSI Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
PowerColor Radeon RX 480 4GB
|
Niet verkrijgbaar | |
![]() |
PowerColor Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
Sapphire Radeon RX 480 8GB
|
Niet verkrijgbaar | |
![]() |
XFX Radeon RX 480 Black Edition 8GB
|
Niet verkrijgbaar | |
![]() |
XFX Radeon RX 480 Core Edition 4GB
|
Niet verkrijgbaar | |
![]() |
XFX Radeon RX 480 XXX OC 8GB
|
Niet verkrijgbaar |