De toekomst van pc-graphics
NieuwsWat biedt de toekomst voor grafische afbeeldingen? Waarom, Graphics Core Next, natuurlijk. Bedankt, AMD, voor die mooie pallindromische manier om een functie te starten.
En ook om te praten over de opvolger van de huidige generatie Radeon grafische kaarten, die ergens volgend jaar zal verschijnen.
De onthulling van GCN vond plaats tijdens de Fusion Developer Summit in juni. Het is de eerste complete architecturale revisie van GPU-technologie die sinds de lancering van Vista gewaagd is.
Dat maakt het overigens ook tot het eerste volledig nieuwe grafische kaartontwerp voor AMD dat niet is gebaseerd op werk dat ATI heeft gestart voordat het werd gekocht.
Vista, en met name DirectX 10, riep op tot grafische kaarten om een volledig programmeerbare shader-pijplijn te ondersteunen.
Dat betekende het afschaffen van traditionele stukjes schakeling die te maken hadden met specifieke elementen van grafische verwerking - zoals pixel shaders en vertex shaders - en ze te vervangen door iets flexibeler dat alles kon: de uniforme shader (zie "Waarom zijn shaders unifi ed? ", volgende pagina).
Schisma
Tijdens de geboorte van DX10-klasse graphics, was er iets van een schisma tussen Nvidia en AMD.
Eenvoudiger: de eerste koos voor een interpretatie van de unified shader-theorie in zijn G80 GeForce-chips, die vrij flexibel was. Plaats een paar honderd zeer eenvoudige processors in een grote reeks en stuur ze één berekening (of, in sommige omstandigheden, twee) een stuk om aan te werken totdat al het werk klaar is.
Het is een methode die een beetje een nachtmerrie creëert voor de set-up engine, maar het is zeer flexibel en voor goed geschreven code die voordeel haalt uit de manier waarop processors samen op het bord zitten, dynamiet.
Bij het ontwerp van de G80 en zijn opvolgers had Nvidia oog voor toepassingen die verder gingen dan grafische weergaven. Ontwikkelaars kunnen GPGPU-applicaties maken voor GeForce-kaarten die zijn geschreven in C en recentelijk C++.
AMD / ATI richtte zich ondertussen op de traditionele vereisten voor een grafische kaart. De uniforme shaders werkten door operaties te combineren in 'Zeer lange instructiewoorden' (VLIW) en ze af te sturen om in batches te worden verwerkt.
De basiseenheid in een vroege Nvidia DX10-kaart was een enkele 'scalaire' processor, gerangschikt in batches van 16 voor parallelle verwerking.
In een AMD-processor was het een vierwegs 'vector'-processor en met een vijfde voor speciale functies. Vandaar één naam voor de Radeon-architectuur: VLIW5. Hoewel de installatie verschrikkelijk klinkt, is deze eigenlijk ontworpen om efficiënter te zijn.
Het belangrijke punt is dat een pixelkleur wordt gedefinieerd door het mengen van rode, groene, blauwe en alpha (transparantiekanalen). Dus de R600-processor - die de basis vormde voor de HD2xxx- en HD3xxx-reeks kaarten - was ontworpen om ongelooflijk efficiënt te zijn in het uitwerken van die vier waarden, steeds opnieuw.
Helaas waren die vroege R600-kaarten niet geweldig, maar met de tijd en de tweaking maakte AMD het ontwerp goed en werkte het goed.
De kaarten HD4xxx, HD5xxx en HD6xxx waren overtreffend, waardoor ze betere prestaties leverden en minder stroom nodig hadden dan vergelijkbare Nvidia-computers. Vaak ook goedkoper. Maar ondanks de verfijningen van de afgelopen vier jaar, is de huidige generatie GeForce en Radeon-chips nog steeds herkenbaar als onderdeel van dezelfde families als die van de eerste G80 en R600.
Er zijn wijzigingen geweest in de geheugeninterface (tot ziens energie-hongerige Radeon-ringbus) en een enorme toename van het aantal uitvoeringskernen (1.536 op een enkele Radeon HD6970 in vergelijking met 320 op een HD2900XT), maar de belangrijkste verandering in de loop van de tijd heeft zich de speciale functie-eenheid van de processorcores.
Graphics Core Next is echter een volledig nieuw ontwerp. Volgens AMD is de bestaande architectuur niet meer de meest efficiënte voor de taken die grafische kaarten moeten uitvoeren.
Nieuwe aanpak
TOEKOMSTIGE GRAFISCHE GEGEVENS: VLIW5 heeft vier vectorverwerkingseenheden: één voor R, G, B en alfa
Proportioneel gezien is het aantal routines voor fysica en geometrie dat wordt uitgevoerd op de grafische kaart dramatisch toegenomen in een standaard stuk gamecode, wat vraagt om een flexibeler processorontwerp dan een ontwerp dat voornamelijk is bedoeld om in pixels te kleuren.
Als gevolg hiervan wordt het VLIW-ontwerp verlaten ten gunste van een die kan worden geprogrammeerd in C en C++.
De basiseenheid van GCN is een 16-brede reeks uitvoeringseenheden die zijn ingericht voor SIMD-bewerkingen (enkele instructie, meerdere gegevens). Als dat G80 en G80 bekend voorkomen, is dat omdat het zo is.
Cynisch gezien kan dit worden gezien als een stilzwijgende erkenning dat Nvidia het altijd goed had gehad, en het lijdt geen twijfel dat AMD kijkt naar GPGPU-toepassingen voor de volgende generatie chips. Maar er is meer aan de hand dan dat.
Binnen GCN worden deze SIMD-processoren samen gegroepeerd in groepen van vier om een 'rekeneenheid' of CU te maken. Ze zijn functioneel nog steeds vierweg vectoreenheden (perfect voor RGBA-instructies) maar zijn ook gekoppeld aan een scalaire processor voor eenmalige berekeningen die niet efficiënt kunnen worden voltooid op de SIMD-eenheden.
Elke CU heeft alle schakelingen die het ook vrijwel autonoom moet zijn, met een L1-cache, Instructie Fetch Arbitration-controller, Branch & MSG-eenheid enzovoort.
Er is echter meer dan de CU voor GCN. De nieuwe architectuur ondersteunt ook x86 virtuele geheugenruimten, wat betekent dat grote datasets - zoals de megatextures id waar software voor gebruikt Woede - kan worden geadresseerd als ze gedeeltelijk buiten het interne geheugen wonen.
En hoewel het niet - zoals andere waarnemers hebben opgemerkt - een niet-werkende processor is, is het in staat om zijn transistors zeer efficiënt te gebruiken door tegelijkertijd aan meerdere threads te werken en ertussen te schakelen als er een is gepauzeerd en te wachten op een reeks waarden wordt teruggestuurd. Met andere woorden, het is een enorm veelzijdige chip.
Na een vroege preview van het ontwerp, hebben sommigen bepaalde overeenkomsten gevonden met Intel's verdwenen Larrabee-concepten en ook met de Atom- en ARM-8-chips, behalve veel meer gericht op parallelle verwerking.
INVENTIEVE NAMING: GCN zal nog steeds werken met RGBA-gegevens, maar biedt meer flexibiliteit
"Graphics is nog steeds onze primaire focus", zei Eric Demers van AMD tijdens zijn keynote-presentatie over GCN, "maar we maken aanzienlijke optimalisaties voor de berekening ... Wat is berekenen en wat is de grafische weergave wazig."
De grote vraag is nu of AMD deze ambitieuze chip kan laten werken. De eerste VLIW5-chips waren teleurstellend en liepen heter en langzamer dan verwacht. Dat waren ook de eerste generatie Fermi-gebaseerde GPU's van Nvidia.
Zal GCN het in één spijkeren? We hebben een tijdje om te wachten om erachter te komen. De eerste chips op basis van GCN hebben de codenaam Northern Islands en zullen waarschijnlijk officieel worden gebrandmerkt als Radeon HD7xxx. Ze waren oorspronkelijk gepland voor dit jaar, maar worden nu niet verwacht tot 2012.