Två jättar går olika vägar och välkommen till nutiden

Med Maxwell-arkitekturen tog Nvidia steget över till en arkitektur där beräkningsenheter klustrades ihop i grupper som kallades Symmetrical Multi-Processing Engines (SME), vilka gav grafikkorten effektivare exekvering av instruktioner samtidigt som energieffektiviteten förbättrades. Varje SME hade en egen schemaläggare istället för de fyra schemaläggare som användes i Kepler.

NVIDIA-14nm-GPUs.jpg

Med Maxwell-arkitekturen lade Nvidia en riktigt lyckad grund som AMD ännu inte lyckats överträffa.

Den förbättrade schemaläggningen i varje SME-kluster innebar att det inte längre var nödvändigt att använda en crossbar-lösning för synkronisering av minnesanrop som användes i Kepler och dess föregångare. Eftersom crossbar-lösningen ständigt var aktiv konsumerade den konstant ström, även i situationer där stora delar av kretsen inte användes. Denna förändring gjorde Maxwell ytterligare mer energieffektiv.

Vid det här laget hade AMD lanserat en rad olika generationer baserade på den tekniska grund som etablerades med GCN och Southern Islands. Radeon 200-serie hade hunnit före Nvidia med stöd för DirectX 12, men annars konkurrerade dessa och efterföljande kort i Radeon R9 300-serien främst med Nvidias Maxwell-kort i övre mellansegmentet.

Under 2013 inleddes också en ny era för AMD där företaget överlät prestandasegmentet för dedikerade grafikkort till Nvidia, och istället blev de den dominerande aktören för systemkretsar i åttonde generationens spelkonsoler. Med Playstation 4 och Xbox One levererade AMD systemkretsen, som bygger kring den energieffektiva processorarkitekturen Jaguar och GCN.

apu_w_ps4.jpg

Dold kapacitet i GCN-arkitekturen, såsom Asynchronous Compute, började nyttjas i och med åttonde generationens spelkonsoler.

Grafikkretsen i Playstation 4 baserades alltså på GCN-arkitekturen som först såg dagens ljus sent år 2011 med HD 7000-serien, men Sony och AMD utökade grafikdelens kapacitet inom ett område som varit en dold potential i GCN-arkitekturen under många år. När AMD presenterade GCN-arkitekturen i Nothern Islands-familjen redan 2011 innehöll den något som kallades Asynchronous Compute Engines (ACE), något som inte utnyttjades.

Asynchronous Compute Engines var speciella schemaläggare som lät grafikkretsen utföra och prioritera beräkningsresurser så att de exekveras i rätt tid, och på ett sätt som inte tillför latens i grafikberäkningarna. På PC-sidan hade dessa enheter inte utnyttjats då DirectX 11 och tidigare eller OpenGL inte gav utvecklarna den hårdvarunära kontroll av schemaläggningen som krävdes.

GPU_pipeline_asynch.jpg

Asynchronous Compute var en del av GCN som gjorde det möjligt att schemalägga parallell exekvering av beräkningsköer.

Med Playstation 4 och Xbox One gjorde den hårdvarunära kontrollen av resurserna att ACE-enheterna kunde nyttjas till att förbättra parallell exekvering av generella- och grafikberäkningar, och längre fram minska latensen i VR-tillämpningar. Playstation 4 utrustades med åtta ACE-enheter, ett rejält steg upp från de två ACE-enheter som ursprungliga GCN-arkitekturen och Xbox One skröt med.

Detta var starten på stöd för asynkron exekvering och lågnivåutveckling som även skulle leta sin väg till PC-plattformen. Först i form av AMD:s egenutvecklade gränssnitt Mantle, följt av DirectX 12 och senare OpenGL-världens svar i form av Vulkan, som i mångt och mycket bygger vidare på Mantle, under år 2016. Stödet för DirectX 12 skulle sedan också ta steget över från Windows 10 på PC-sidan till Xbox One.

Välkommen till nutiden

Nu är vi framme i dagsläget, i skrivande stund senvåren 2018. Samtliga grafikkort på marknaden har stöd för lågnivåutveckling, men är på PC-marknaden fortfarande i sin linda vad det gäller lågnivåutveckling. Det finns titlar som utnyttjar tekniken, men andelen av de totala spelsläppen är liten och av dessa är det ytterligare mindre andel som vinner stora fördelar över versionerna för konventionella högnivåramverk.

Med Xbox One X introducerade Microsoft en grafikkrets som kombinerar element av de GCN-baserade grafikkortsfamiljerna Polaris och Vega. Grafikkretsen utrustades även med vad som kallas Scorpio Engine, ett gränssnitt som gör att hårdvaran kommunicerar med processorn och resten av systemet enligt DirectX 12-modellen.

project-scorpio.jpg

Systemkretsen i Xbox One X har en grafikkrets vars bildmotor arbetar enligt DirectX 12-modellen.

Om denna modell förs vidare till nästa generations konsoler kan kanske lågnivåutveckling ta fart i större utsträckning. Nu när processorer på pc-sidan också börjar utrustas med det stora antalet kärnor och trådkapacitet som åttonde generationens konsoler stoltserat med. När nästa generation konsoler anammar nästa generations grafikarkitekturer från AMD och Nvidia kommer utvecklare ha tillgång till samma förutsättningar från start.

Så vad ser vi på horisonten för grafiktekniken? I skrivande stund ser duopolen mellan AMD och Nvidia att fortsätta, och kommande generationerna Navi respektive Volta ser inte ut att introducera några revolutionerande förändringar i den grundläggande arkitekturen. Tidigare rivalen Intel arbetar på en egen dedikerad grafikarkitektur, men det återstår att se vilken närvaro de får och om de ruckar på rådande renderingsmetoder.

Med detta är vår genomgång av grafikkortens historia till sin ände. Vi hoppas att det var intressant läsning, och är du intresserad av modern spelutveckling eller Asynchronous Compute-tekniken rekommenderar vi att du läser våra djupdykningar i de båda ämnesområdena.

Läs mer:

En djupdykning i modern spelutveckling

Ingress_grafik_smal2.jpg

I denna djupgående artikel utforskar vi olika aspekter av den moderna spelutvecklingen, med nedslag i allt från lågnivåprogrammering till vilken nytta den gemensamma hårdvaran i konsoler och pc-marknaden egentligen har.

En djupdykning i modern spelutveckling

Djupdykning i Asynchronous Compute

Asynch_illustration_notext.jpg

I denna tekniska genomgång utforskar vi funktionen Asynchronous Compute, tekniken som introducerades med AMD:s GCN-arkitektur och som låter grafikkretsar utföra flera parallella beräkningsköer synkroniserat.

Djupdykning i Asynchronous Compute

Nörda ned dig i GPU-nostalgi i forumet

Majoriteten av bilderna i denna artikel har hämtats från SweClockers-medlemmarnas förnäma katalog av gamla grafikkort. Om du vill ta dig en promenad längsmed minnenas allé eller dela med dig av dina egna grafikkortsbilder kan du göra detta i denna forumtråd.

Har du bilder på gamla GPU-klassiker?