Du fulgte ryktene og ignorerte sprøytenarkomanen; du ventet kommentarer og så på alle beregninger. Til slutt slo du dollarene dine og gikk bort med et av de nyeste grafikkortene fra AMD eller Nvidia. Blant dem kjører en stor grafikkprosessor fylt med milliarder transistorer med klokkehastigheter som var utenkelige for et tiår siden.

Du er veldig fornøyd med kjøpet ditt, og spillene så ikke ut og spilte bedre. Imidlertid lurer du kanskje på hva som driver din nye Radeon. RX 5700 og hvor forskjellig i en chip GeForce RTX.

Velkommen til arkitektur og funksjonssammenligning av AMD og Nvidia: Navi vs Turings nyeste GPUer.

Moderne GPU-anatomi

Før vi begynner å bryte ned vanlige chipstrukturer og -systemer, la oss ta en titt på den grunnleggende formen som alle moderne GPU-er følger. For det meste er disse prosessorene bare FP-kalkulatorer; med andre ord utfører de matteoperasjoner på desimal- / brøkverdier. Så i det minste må en GPU ha en logikkenhet dedikert til disse oppgavene, og disse er vanligvis FP ALUer (flytende punkt aritmetiske logiske enheter) eller FPUer for kort. Ikke alle beregningene GPUer gjør er i FP-dataverdier, så det vil også være en ALU for heltallet (heltall) kan være den samme enheten som håndterer matteoperasjoner eller begge typer data.




Nå vil disse logiske enhetene trenge noe for å organisere dem ved å avkode og organisere dem for å holde dem opptatt, og det vil være i form av minst en spesiell gruppe for logiske enheter. I motsetning til ALU-er, kan de ikke programmeres av sluttbrukeren; i stedet vil maskinvareleverandøren sørge for at denne prosessen administreres fullstendig av GPU og driverne.




Det må også være en slags minnestruktur for å lagre disse instruksjonene og dataene som må behandles. På sitt enkleste nivå vil det være i to former: cache og et poeng lokalt minne. Den første vil være innebygd i GPU og SKAM. Denne typen minne er rask, men den tar relativt mye av prosessorens layout. Lokalt minne DRAMADet er litt tregere enn SRAM og normalt ikke satt på GPU. Lokalt minne på de fleste grafikkort vi ser i dag GDDR DRAM-moduler.

Til slutt inkluderer den flere innstillingsoppgaver som å lage 3D-grafikk, lage trekanter fra hjørner, rasterisere en 3D-ramme, sampling og blande teksturer. Som instruksjons- og kontrollenheter, også disse konstant funksjon i naturen. Hva de gjør og hvordan de jobber er helt gjennomsiktig for brukere som programmerer og bruker GPU.




La oss sette sammen dette og lage en GPU:




Den oransje blokken er enheten som behandler teksturer ved hjelp av det som kalles struktur kartlegging enheter (TMU'lar) - TA tekstur adressering volum - oppretter minneplasser for cache og lokalt minne å bruke - og TF ikke ta med tekstur samler teksturverdier fra minnet og setter dem sammen. I dag er TMU-er stort sett det samme på tvers av alle leverandører fordi de kan håndtere, prøve og blande flere teksturverdier per GPU-klokkesyklus.




Blokken nedenfor skriver fargeverdiene til pikslene i rammen, prøver dem tilbake (PO) og blander (PB); denne blokken utfører også operasjoner som brukes når anti-aliasing brukes. Navnet på denne blokken: gjengi utdataenheten or lage backend (ROP / RB for kort). I likhet med TMU blir de nå ganske standard, og hver håndterer enkelt noen piksler per klokkesyklus.

Imidlertid ville vår grunnleggende GPU ha vært forferdelig selv etter standardene for 13 år siden. Hvorfor?

Det er bare én FPU, TMU og ROP. I 2006 hadde Nvidias grafikkprosessorer som GeForce 8800 GTX henholdsvis 128, 32 og 24. Så la oss begynne å gjøre noe med dette ....




Som enhver god prosessorprodusent, oppdaterte vi GPU ved å legge til noen flere enheter. Dette betyr at brikken kan behandle flere instruksjoner samtidig. For å hjelpe med dette har vi lagt til noen flere cacher, men denne gangen rett ved siden av logiske enheter. Jo nærmere hurtigbufferen er en kalkulatorstruktur, jo raskere kan den initialiseres i transaksjonene som er tilordnet den.

Problemet med vårt nye design er at bare en kontroller fremdeles er tilgjengelig for å håndtere de ekstra ALUene våre. Det ville være bedre om vi hadde flere enhetsblokker, alle styrt av sine egne separate kontrollere, da dette betyr at vi kan utføre veldig forskjellige operasjoner samtidig.

Nå er dette mer! Separate ALU-blokker pakket med egne TMUer og ROP-er og støttet av deilig velsmakende, raske hurtigbufferskiver. Det er fortsatt bare ett av alt, men den grunnleggende strukturen er ikke en million miles unna grafikkprosessoren vi ser på datamaskiner og konsoller i dag.

Navi ve Turing: Godzilla GPU'ları

Nå som vi har definert den grunnleggende utformingen av en grafikkbrikke, selv om den er litt forstørret og behandlet for å markere forskjellige strukturer, Navi vs. La oss starte vår Turing-sammenligning.

Til venstre er AMDs nyeste prosessor. Den generelle chipdesignen heter Navi (noen kalles Navi 10) og grafikkarkitekturen kalles RDNA. Ved siden av, til høyre, er Nvidias TU102-prosessor i full størrelse med den nyeste Turing-arkitekturen. Det er viktig å merke seg at disse bildene ikke er skalert: Navi-matrisen er 251 mm2, mens TU102 er 752 mm2. Nvidia-prosessor er stor, men ikke 8 ganger større enn AMD-tilbudet!

Både enorm antall transistorer (10,3 mot 18,6 milliarder kroner), men TU102 har et gjennomsnitt på ~ 25 millioner transistorer per kvadrat mm sammenlignet med Navis 41 millioner per kvadrat mm.

Dette er fordi mens begge brikkene er produsert av TSMC, blir de produsert i forskjellige prosessnoder: Nvidias Turing er på den modne 12 nm produksjonslinjen, mens AMDs Navi produseres i den nyere 7 nm-noden.

Bare det å se på bilder av formene forteller oss ikke mye om arkitekturer, så la oss ta en titt på GPU-blokkdiagrammene produsert av begge selskapene.

Diagrammene er ikke en 100% realistisk fremstilling av faktiske oppsett, men hvis du roterer dem 90 grader, kan de forskjellige blokkene og den sentrale stripen som vises på begge defineres. Til å begynne med kan vi se at de to GPUene har en generell struktur som vår (men mer enn noe annet!).

Begge designene følger en lagdelt tilnærming til hvordan alt er ordnet og gruppert - for å begynne å bruke Navi består GPUen av to blokker AMD leter etter. Shader Motors (SE), hver av dem kalles 2 blokker asynkron Datamaskiner (ESS). Hver av disse inneholder 5 blokker i tittelen. Arbeidsgruppeprosessorer (WGPs), som består av 2 Informasjonsbehandlingsenheter (Öze).

Navn og tall er forskjellige for Turing-design, men hierarkiet er veldig likt: 6 Klynger for grafikkbehandling (GPC), 6 hver Texture Processing Clusters (TPC), 2 hver Strøm multiprosessor (SM) blokker.

Hvis du ser en grafikkprosessor som en stor fabrikk der forskjellige avdelinger produserer forskjellige produkter med samme råvarer, begynner denne organisasjonen å gi mening. Konsernsjefen sender fabrikken alle operasjonelle detaljer og deler den i forskjellige oppgaver og arbeidsmengder. Har mer enn en, uavhengig Produktiviteten til arbeidsstyrken ble økt på fabrikken. Det er ikke annerledes for GPUer, og her er det magiske nøkkelordet timing.

Front and Center, Soldier - Timing and Dispatch

Hvordan vi ser på 3D-spillopprettingsøvelserVi har sett at grafikkprosessoren ikke er noe mer enn en superrask kalkulator ved å utføre en serie matteoperasjoner på millioner av databiter. Navi og Turing er klassifisert som følger: Single Command Multiple Data (SIMD) prosessorer, men en bedre forklaring Single Way Multi Tråd (Føle).

Et moderne 3D-spill produserer hundrevis av tråder, noen ganger tusenvis, da antall hjørner og piksler som skal gjengis er enormt. For å sikre at det hele gjøres på bare noen få mikrosekunder, er det viktig å ha så mange logiske enheter som mulig uten å stoppe alt fordi nødvendige data ikke er på rett sted eller det ikke er nok ressursplass til å jobbe inne.

Da vi tok en titt på hvordan 3D-spilloppretting fungerer, så vi at en grafikkprosessor ikke er noe mer enn en veldig rask kalkulator, og vi utførte ulike matteoperasjoner på millioner av data. Navi og Turing er klassifisert som SIMD-prosessorer (Single Command Multiple Data), men en bedre forklaring vil være Single Command Multiple Threads (SIMT).

Navi og Turing fungerer på samme måte, så en sentral enhet tar alle trådene og begynner å programmere og kringkaste dem. I AMD-brikken, denne rollen Grafikkommandoprosessor; Nvidia'da, GigaThread Motoru. Trådene er ordnet slik at de med samme instruksjoner grupperes sammen i en samling på 32 grupper.

AMD denne samlingen bølgemens Nvidia dette krumning. For Navi kan en databehandlingsenhet håndtere 2 bølger (eller en bølge med 64 tråder, men denne prosessen tar dobbelt så lang tid) og i Turing kjører en strøm multiprosessor med 4 varper. I begge design er bølgen / warp uavhengig, noe som betyr at de andre ikke trenger å fullføre den før du starter.

Inntil da er det ikke mye forskjellig mellom Navi og Turing - begge var designet for å håndtere et stort antall tråder for å skape og beregne arbeidsmengder. Vi må se på hvilke prosessorer disse trådene er for å se hvor de to GPU-gigantene skiller seg i design.

Executive Difference - RDNA og CUDA

Mens det meste av terminologien som brukes virker den samme, tar AMD og Nvidia en ganske annen tilnærming til kombinerte skyggenheter. Nvidias utførelsesenheter (MIRAKLER frø) digital i naturen - dette betyr at en enhet utfører en matematisk operasjon på en datakomponent; I motsetning til AMD-enheter (Strømprosessorer) jobbe med vektorer - en operasjon på flere datakomponenter. Det er bare en spesifikk enhet for skalaroperasjoner.

Før vi ser nærmere på utførelsesenhetene, la oss undersøke AMDs egne modifikasjoner. I 7 år fulgte Radeon-grafikkort en arkitektur som heter Graphics Core Next (GCN). Hver nye brikke reviderte forskjellige aspekter av designet, men de var alle i utgangspunktet de samme.

AMD presenterte en kort historie om GPU-arkitekturen:

GCN var en utvikling av TeraScale, et design som gjør at store bølger kan behandles samtidig. Det viktigste med TeraScale var at det ikke var veldig enkelt mot programmerere og trengte veldig spesifikke rutiner for å få det beste. GCN har løst dette og gitt en mye mer tilgjengelig plattform.

CUene i Navi har blitt betydelig revidert fra GCN som en del av AMDs forbedringsprosess. Hver CU inneholder to sett:

  • 32 SP (IEE754 FP32 og INT32 vektor ALUer)
  • 1 SFU
  • 1 INT32 skalerer ALU
  • 1 timing og leveringsenhet

Foruten disse inneholder hver CU 4 vevsenheter. Det er andre enheter for å utføre data lese / skrive operasjoner fra hurtigbufferen, men ikke vist på bildet nedenfor:

Sammenlignet med GCN ser kanskje ikke oppsett av en RDNA CU veldig annerledes ut, men alt viktig her er organisert og organisert på denne måten. Til å begynne med har hvert sett med 32 SP sin egen dedikerte instruksjonsenhet, GCN hadde bare ett program for 4 sett med 16 SP.

Dette er en viktig endring, noe som betyr at en bølge på 32 tråder per klokkesyklus kan leveres til hvert SP-sett. RDNA-arkitekturen tillater også vektorenheter å behandle bølger med 16 tråder med dobbelt hastighet og bølger på 64 tråder i to, så kode som er skrevet for alle tidligere Radeon-grafikkort støttes fortsatt.

Disse endringene vil være veldig populære for spillutviklere.

For skalaroperasjoner er det nå to enheter som kan håndtere dem; den eneste reduksjonen i antall komponenter er i form av SFUer - disse er spesiell funksjon enheterutfører veldig spesifikke matematiske operasjoner, f.eks. trigonometrisk (sinus, tangens), gjensidig (1 delt på et tall) og kvadratrøtter. RDNA har færre av disse enn GCN-er, men nå kan de operere på dobbelt så store datasett som før.

Disse endringene vil være veldig populære for spillutviklere. Det var mye potensiell ytelse på eldre Radeon-grafikkort, men det var veldig vanskelig å gjøre. Nå har AMD tatt et stort skritt mot å redusere ventetiden i prosessinstruksjoner og beholde funksjoner for å sikre bakoverkompatibilitet for alle programmer designet for GCN-arkitekturen.

Hva med profesjonell grafikk eller databehandlingsmarkedet? Er disse endringene gunstige for dem også?

Det korte svaret er ja (sannsynligvis). Den nåværende versjonen av Navi-brikken som finnes på den lignende Radeon RX 5700 XT, har færre strømprosessorer enn den forrige Vega-designen, mens vi presterte bedre forrige generasjon Radeon RX Vega 56 er ganske enkel:

Noe av denne ytelsesgevinsten kommer fra den høyere klokkehastigheten til RX 5700 XT enn RX Vega 56 (slik at den kan skrive flere piksler per sekund til lokalt minne), men faller med så mye som 15% ved høyeste ytelse med heltall og flytende punkt; likevel fant vi ut at Navi-brikken presterte 18% bedre enn Vega.

Forskere som kjører profesjonelle gjengivelsesprogrammer og komplekse algoritmer, sprenger ikke med noen runder Battlefield V i arbeidet sitt (dvs. kunne vært...) bare hvis skalar-, vektor- og matriseoperasjoner utført i en spillmotor behandles raskere skip gjør det til databehandlingsmarkedet. Foreløpig vet vi ikke hva AMDs planer for det profesjonelle markedet er - de kan gå bra med Vega-arkitekturen og bidra til å forbedre design, produksjon, men gitt fremskrittene i Navi, flytter selskapet alt til den nye arkitekturen.

Nvidias GPU-design har gjennomgått en lignende utvikling siden 2006, da de lanserte GeForce 8-serien, om enn mindre radikale endringer enn AMD. Denne GPUen opprettet den første Tesla-arkitekturen som brukte en first shader-tilnærming i utførelsesarkitekturen. Nedenfor kan vi se endringene i SM-blokker fra etterfølger til Tesla (Fermi) til Turings forgjenger (Volta):

Som nevnt tidligere i denne artikkelen, CUDA-kjerner digital. De kan utføre en flottør og ett heltallsinstruksjon per klokkesyklus på en datakomponent (merk imidlertid at selve instruksjonen kan ta flere klokkesykluser som skal behandles), men tidsenhetene ordner dem i grupper, de kan utføre vektoroperasjoner til en programmerer. Den viktigste endringen gjennom årene inkluderer ikke bare å være flere enheter, men hvordan de er organisert og segmentert.

I Kepler-designen hadde den fulle brikken 5 GPCer, hver med tre SM-blokker; Da Pascal dukket opp, ble GPC delt i separate partisjoner (TPC) med to SM per TPC. Som med Navi-designet. denne fragmenteringen er viktig da den gjør at den generelle GPUen kan brukes så fullt som mulig; Flere uavhengige instruksjonssett kan behandles parallelt, noe som øker skyggen og databehandlingen til prosessoren.

La oss ta en titt på Turing tilsvarende RDNA Computing Unit:

En SM inneholder 4 transaksjonsblokker, som hver inneholder:

  • 1 instruksjonsplanlegging og forsendelsesenhet
  • 16 IEE754 FP32-skalaer ALU
  • 16 INT32-skalaer ALU
  • 2 Tensorfarger
  • 4 SFU
  • 4 Last / lagring (utfører cache-lese / skrive-operasjoner)

Det er også 2 FP64-enheter per SM, men Nvidia viser dem ikke lenger i blokkdiagrammer, og hver SM har 4 tekstur-enheter (inkluderer teksturadresserings- og teksturfiltreringssystemer) og 1 RT (Ray Tracing) -kjerne.

FP32 og INT32 ALU kan fungere samtidig og parallelt. Dette er en viktig funksjon fordi 3D-gjengivelsesmotorer ofte krever flytpunktsberegninger, men det er et rimelig antall enkle heltalloperasjoner (f.eks. Datareadressberegninger) som skal gjøres.

Tensor Cores er spesielle ALUer som utfører matriseoperasjoner. Matriser er 'firkantede' dataarriser og tensorkjerner kjører på en 4 x 4 matrise. FP16 er designet for å behandle INT8- eller INT4-datakomponenter, slik at flottøroperasjon skjer til 64 FMA (smeltet multipliser-legg til) i en klokkesyklus. Denne typen beregninger kalles nevrale nettverk og inferens - ikke akkurat vanlig i 3D-spill, men mye brukt av Facebook-likes i biler med sosiale medianalysealgoritmer eller selvkjørende systemer. Navi kan også gjøre matriseberegninger, men krever et stort antall SP for dette; I Turing-systemet kan matriseoperasjoner utføres mens CUDA-kjerner gjør annen matematikk.

RT Core er en annen spesiell enhet unik for Turing-arkitekturen som utfører veldig spesifikke matematiske algoritmer som brukes til Nvidias strålesporingssystem. En fullstendig analyse av dette ligger utenfor omfanget av denne artikkelen, men RT Core er to systemer som fungerer hver for seg for resten av SM, så mens RT Core er opptatt med å gjøre beregninger, kan den fungere på peak- eller pixel-shaders. for strålesporing.

På grunnleggende nivå har Navi og Turing kjøringsenheter som tilbyr et ganske likt funksjonssett (et krav som kommer fra å oppfylle kravene i Direct3D, OpenGL, etc.).

På grunnleggende nivå har Navi og Turing kjøringsenheter som tilbyr et ganske likt funksjonssett (et krav som kommer fra å oppfylle kravene i Direct3D, OpenGL, etc.), men de tar en helt annen tilnærming til hvordan disse funksjonene er. ferdig. Når det gjelder hvilket design som er bedre, kommer det til hvordan de brukes: FP32 et program som produserer vektorberegninger og et stort antall tråder som utfører lite, foretrekker Navi, mens et program med en rekke heltall, flytpunkt, skalar og vektorberegninger vil gi Turings fleksibilitet. foretrekker osv.

Minnehierarki

Moderne GPUer er designet for å utføre en rekke operasjoner på strømprosessorer, det vil si på hvert element i en datastrøm. Dette gjør dem mindre fleksible enn en generell CPU og krever også optimalisering av minnehierarkiet til brikken for å motta data og instruksjoner til ALUer så raskt som mulig og i så mange strømmer som mulig. Dette betyr at GPU-er vil ha mindre hurtigbuffer enn CPU-en, da det meste av brikken må være dedikert til mengden hurtigbuffer, ikke hurtigbuffertilgang.

Både AMD og Nvidia tyr til bruk av flere cacher i sjetonger, så la oss ta en titt på hva Navi pakker først.

Fra det laveste nivået i hierarkiet bruker to blokker av Stream-prosessorer totalt 256 pund register for generelle formål (vanligvis loggfil) Var samme mengde som Vega, men mellom 4 SP-blokker; Å gå tom for registre mens du prøver å behandle et stort antall tråder skader virkelig ytelsen, så dette er definitivt en "god ting". AMD har også økt den skalære opptaksfilen kraftig. Da det bare var 4 kiB før, er det nå 32 kilo per skalar enhet.

De to beregningsenhetene deler deretter en 32 pund L0-cache og en 16 pund skalar data-cache, men hver CU mottar sin egen L0-cache på 32 pund; Å koble alt dette minnet til ALUer er en 128 pund lokal datadeling.

I Navi oppretter to databehandlingsmaskiner en arbeidsgruppeprosessor, og fem av dem danner den asynkrone databehandlingsmotoren (ACE). Hver ACE har tilgang til sin egen 128-pund L1-cache, og hele GPU-en støttes videre av 4 MiB L2-cacher som kobles til L1-cacher og andre deler av prosessoren.

Siden systemet strengt tatt brukes til å håndtere 16 GDDR6-minnekontrollere, er det en form for AMDs egenutviklede Infinity Fabric-tilkoblingsarkitektur. For å maksimere minnebåndbredden bruker Navi også tapsfri fargekomprimering mellom L1, L2 og innfødt GDDR6-minne.

Igjen, alt dette er spesielt velkomment sammenlignet med tidligere AMD-brikker som ikke hadde nok lavnivåbuffer for antall skyggeleggingsenheter de inneholder. Kort sagt, mer cache tilsvarer mer intern båndbredde, mindre trege instruksjoner (fordi de må hente mer data fra minnet) osv. Og det tilsvarer bare bedre ytelse.

På Turings hierarki må det sies at Nvidia er på den sjenerte siden når det gjelder å gi inngående kunnskap på dette området. Tidligere i denne artikkelen så vi hver SM delt i 4 transaksjonsblokker - hver har en mindre 64-pund loggfil enn den som ble funnet i Navi, men husk at Turing's ALU er skalarer, ikke vektorer. , enheter.

Deretter kan 96 kb delt minne for hver virtuell maskin brukes som 64 kb L1-data-hurtigbuffer og 32 kb med vevsbuffer eller ekstra postplass. I 'beregningsmodus' kan det delte minnet deles inn i forskjellige partisjoner, for eksempel 32 kb delt minne og 64 kB L1-cache, men alltid gjøres som 64 + 32-divisjoner.

Mangelen på detaljer gitt om Turning-minnesystemet fikk oss til å ønske mer, så vi henvendte oss til et GPU-forskerteam som jobbet hos Citadel Enterprise Americas. Nylig publiserte de to artikler. Tid ve Turing arkitekturer; Bildet over er fragmenteringen av minnehierarkiet i TU104-brikken (full TU102 sport 6144 kiB L2-cache).

Teamet bekreftet at L1-cache-gjennomstrømningen var 64 bits per syklus, og uttalte at under testing av effektiviteten til Turing's L1-cache var den beste av alle Nvidias GPUer. Dette er på nivå med Navi, selv om AMD-brikken har en høyere lesehastighet for Local Data Store, men en lavere rate for instruksjon / faste cacher.

Begge GPU-ene bruker GDDR6 for lokalt minne - dette er den nyeste versjonen av Grafikk DDR SDRAM - og begge bruker 32-biters tilkoblinger til minnemoduler, så Radeon RX 5700 XT Den har 256 minnebrikker og gir en maksimal båndbredde på 256 GiB / s og 8 GiB plass. en GeForce RTX 2080 Ti Med TU102-brikken fungerer den med 11 slike moduler for 352 GiB / s båndbredde og 11 GiB-lagring.

AMDs dokumentasjon kan til tider virke forvirrende: I det første blokkdiagrammet ser vi Navi viser fire 64-biters minnekontrollere, mens et senere bilde viser 16 kontrollere. Med tanke på Samsung tilbyr bare 32-bit GDDR6 Det ser ut til at det andre bildet viser hvor mange forbindelser det er mellom Infinity Fabric-systemet og minnekontrollerne. Det er sannsynligvis bare 4 minnekontrollere, og hver bruker to moduler.

Samlet sett ser det ikke ut til å være noen stor forskjell mellom Navi og Turing når det gjelder deres cacher og lokale minne. Det er litt mer til at Navi kommer nærmere utførelsessiden av ting med sin større instruksjon / konstant og L1-cacher, men begge er fylt, begge bruker fargekomprimering der det er mulig, og begge har mange tilpassede GPU-mønstre i minnetilgang og brukes til å maksimere båndbredden.

Trekanter, teksturer og piksler

For femten år siden gjorde GPU-produsenter mye om hvor mange trekanter sjetongene deres takler, antall teksturelementer som kan filtreres per syklus, og muligheten for gjengivelsesenheter (ROP). Disse aspektene er fremdeles viktige i dag, men fokuset er mye mer på utførelsessiden, ettersom 3D-gjengivelsesteknologier krever mer dataytelse enn noen gang før.

Imidlertid, bare for å påpeke at det ikke er noen øyeblikkelig merkbar forskjell mellom Navi og Turing i disse områdene, er tekstur enheter og ROP fortsatt verdt å utforske. I begge arkitekturer kan teksturenheter håndtere og hente 4 teksturelementer, filtrere dem ukjente i et enkelt element og cache dem alle i en klokkesyklus (ignorerer de ekstra klokkesløyfene som er tatt for å hente data fra det lokale minnet).

Arrangementet av ROP / RB er litt annerledes mellom Navi og Turing, men ikke for mye: AMD-brikken har 4 RB per ACE, og hver kan levere 4 blandede piksler per klokkesyklus; På Turing har hver GPC to RB, som hver gir 8 piksler per time. GPUs ROP-antall er virkelig et mål på denne pikselutgangshastigheten, så en full Navi-brikke gir 64 piksler per time og full TU102 96 (men husk at dette er en større brikke).

Det er mindre informasjon på trekantsiden av ting. Det vi vet er at Navi fremdeles gir maksimalt 4 primitiver per klokkesyklus (1 per ACE), men det er ikke lenger noe som helst om AMD har løst problemet med dette problemet. Primitive Shaders. Dette var en høyt utnyttet funksjon av Vega og tillot programmerere å ha mye mer kontroll over primitiver, slik at primitivt utbytte kan økes med 4 faktorer. funksjonalitet fjernet fra drivere Produktet har ligget i dvale kort tid etter lanseringen og helt siden den gang.

Mens du fremdeles venter på mer informasjon om Navi, ville det være uklokt å spekulere videre. Turing håndterer også 1 primitiv per time per GPC (dvs. opptil 6 for hele TU102 GPU) i Raster Engines, men også Mesh ShadersTilbyr samme funksjonalitet som AMDs Primitive Shaders; Direct3D er ikke et OpenGL- eller Vulkan-funksjonssett, men kan brukes via API-utvidelser.

Dette ser ut til å gi Turing et forsprang på Navi når det gjelder håndtering av trekanter og primitiver, men for tiden er det ikke nok presis informasjon i det offentlige rom.

Ikke alt om håndhevelsesenheter

Det er andre aspekter av Navi og Turing som er verdt å sammenligne. Til å begynne med har begge GPU-ene svært avanserte skjerm- og mediemotorer. Den første behandler utgangen til skjermen, den andre koder og dekoder videostrømmene.

Som du forventer av en ny 2019 GPU-design, tilbyr Navis skjermmotor veldig høye oppløsninger med høy oppdateringshastighet og tilbyr HDR-støtte. Vis flytkomprimering (DSC) er en kompresjonsalgoritme med rask tap, som gjør at 4K + -oppløsninger ved oppdateringshastigheter høyere enn 60 Hz kan overføres via en DisplayPort 1.4-tilkobling. Heldigvis er forringelsen av bildekvaliteten veldig liten til det punktet du anser at DSC er nesten tapsfri.

Turing støtter også DisplayPort med DSC-tilkoblinger, men den støttede kombinasjonen av høy oppløsning og oppdateringsfrekvens er litt bedre enn Navi: 4K HDR ved 144 Hz - resten er den samme.

Navis mediemotor er like moderne som displaymotoren og Avansert videokoding (H.264) og Høyeffektiv videokoding (H.265), igjen ved høye oppløsninger og høye bithastigheter.

Turings videomotor er omtrent den samme som Navis, men støtte for 8K30 HDR-koding kan slå balansen i Tures favør for noen mennesker.

Det er andre aspekter å sammenligne (for eksempel Navis PCI Express 4.0-grensesnitt eller Turings NV Link), men uansett hvor kledd og markedsført, er de veldig små biter av den generelle arkitekturen. Dette fordi disse unike funksjonene for de aller fleste potensielle brukere ikke vil være viktige.

Like-for-Like-sammenligning

Denne artikkelen er en observasjon av arkitektonisk design, funksjoner og funksjonalitet, men å ha en direkte ytelses sammenligning vil være en god måte å fullføre en slik analyse på. Imidlertid ville ikke parring av Navi-brikken på en Radeon RX 5700 XT i en GeForce RTX 2080 Ti med Turing TU102-prosessoren i en GeForce RTX 2080 Ti ikke være veldig rettferdig, med tanke på at sistnevnte er nesten dobbelt så mange kombinerte skyggenheter. Imidlertid er det en versjon av Turing-brikken som kan brukes til en sammenligning, og dette er den som finnes i GeForce RTX 2070 Super.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Arkitektonisk Navi 10 | rDNA TU104 | Turing
prosess 7 nm TSMC 12 nm TSMC
Formareal (mm2) 251 545
Transistorer (milliarder) 10.3 13.6
Blokkere profil 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 SM
Kombinerte skyggekjerner 2560 SP 2560 MIRAKLER
TMUer 160 160
ROPS 64 64
Grunnleggende tid 1605 MHz 1605 MHz
Spillklokke 1755 MHz Ikke relevant
Boost time 1905 MHz 1770 MHz
Hukommelse 8 GB 256 bit GDDR6 8 GB 256 bit GDDR6
Minne båndbredde 448 GBps 448 GBps
Termisk designkraft (TDP) 225 watt 215 W.

Det er verdt å merke seg at RTX 2070 Super ikke er en 'full' TU104-brikke (en av GPC-ene er deaktivert), så alle disse 13.6-transistorer er inaktive, noe som betyr at sjetongene er omtrent de samme når det gjelder antall transistorer. Til pålydende ser de to GPU-ene veldig like ut, spesielt hvis du bare vurderer skyggenheter, TMUer, ROP-er og hovedminnesystemer.

I Nvida-prosessoren kan en SM behandle 32 samtidige warps, og med hver warp på 32 tråder kan en fullastet GeForce RTX 2070 Super kjøre på 40 960 tråder over hele brikken; For Navi kan en CU SIMD32 motta 16 bølger per ALU, og hver bølge er 32 tråder. Dermed kan Radeon RX 5700 XT også pakkes opp til 40.960 tråder. Det kan virke som om dette gjør dem nøyaktig her, men gitt hvor forskjellig CU / SM er ordnet og Nvidias fordel med samtidig INT- og FP-behandling, vil resultatet i stor grad avhenge av koden som kjøres.

Hvilken effekt vil dette ha på forskjellige spillytelser, da koden til en 3D-motor vil favorisere en bygning fremfor en annen, avhengig av hva slags instruksjoner som rutinemessig sendes til GPU. Dette, testet to grafikkort:

Alle spill som ble brukt i testen ble programmert for AMDs GCN-arkitektur direkte for Radeon-utstyrte PC-er eller via GCN GPUer som ble funnet på PlayStation 4 eller Xbox One. Det er mulig at noen av de nylig lanserte er forberedt på RDNAs endringer, men forskjeller i referanseresultater er mer sannsynlig på grunn av gjengivelsesmotorer og måten instruksjoner og data behandles på.

Så hva betyr alt dette? Er en arkitektur virkelig bedre enn en annen? Turing tilbyr absolutt mer kapasitet enn Navi takket være Tensor og RT Cores, men sistnevnte konkurrerer definitivt når det gjelder 3D-gjengivelsesytelse. Forskjellene som ses i de 12 spilleksemplene er ikke presise nok til å ta en endelig dom.

Og dette er gode nyheter for oss.

Avsluttende ord

AMDs Navi-planer ble kunngjort De siktet mot 2018-lanseringen i 2016, og selv om de ikke sa mye. Når den datoen kommer og går veikart endret det var imidlertid klart at Navi ville bli bygget i en 7nm prosessnode, og designet ville fokusere på å forbedre ytelsen.

Dette var definitivt tilfelle, og som vi har sett i denne artikkelen, har AMD gjort arkitektoniske endringer for å tillate Nvidia å konkurrere med dets tilsvarende tilbud. Den nye designen fordeler mer enn bare PC-brukere, som vi vet Sony og Microsoft vil bruke en variant av brikken i den kommende perioden. Playstation 5 ve sonraki xbox.

Hvis du går tilbake til begynnelsen av denne artikkelen og ser igjen på den strukturelle utformingen av Shader Motors, den totale dørstørrelsen og antall transistorer, er det tydelig rom for at en 'stor Navi' -brikke kan toppe seg. siste grafikkort; AMD har ganske mye bekreftet at dette skal være en del av de nåværende planene og har som mål å forbedre arkitekturen og produksjonsprosessen i løpet av de neste to årene.

Men hva er planene for Nvidia, Turing og dens etterfølger? Overraskende nok har lite blitt bekreftet av selskapet. I 2014, Nvidia Oppdatert GPU-veikart Planlegger Pascal-arkitekturen for lanseringen i 2016 (og oppnå det målet). I 2017, Tesla kunngjorde V100Det var dette designet som tok frem Turing i 2018, ved hjelp av Volta-arkitekturen.

Siden har det vært ganske stille, og vi måtte stole på rykter og nyhetsutdrag, som ofte sier det samme: Nvidias neste arkitektur vil hete Ampere, Laget av Samsung Den bruker prosessnoden 7nm og er planlagt til 2020. Annet enn det er det ingenting annet å fortsette. Det er ikke sannsynlig at den nye brikken vil bryte tradisjonen ved å fokusere på skalære kjøringsenheter, eller at det er usannsynlig å slippe aspekter som Tensor Cores, da dette vil forårsake betydelige bakoverkompatibilitetsproblemer.

Likevel kan vi komme med noen rimelige spådommer om hvordan neste Nvidia GPU vil se ut. Selskapet har investert betydelig tid og penger. Strålesporingog dens støtte bare i spill øke; Derfor kan vi forvente å se en forbedring i RT-kjernen når det gjelder evner eller tall per SM. Hvis en 7 nm prosessnode Hvis det er sant, vil Nvidia sannsynligvis sikte på strømreduksjon snarere enn å øke klokkehastigheten, slik at de kan øke antall GPCer. Det er også mulig å hoppe over 7 nm og starte Nvidia. Rett i 5 nm For å få en fordel i forhold til AMD.

Tilsynelatende AMD og Nvidia, diskret grafikkort Marked fra Intel som vi vet at de planlegger å komme inn i denne bransjen på nytt, Ring 20 år. Dette nye produktet (for øyeblikket Xe er) Vil kunne konkurrere på samme nivå som Navi og Turing.

I mellomtiden har Intel overlevd GPU-markedet i disse to tiårene ved å lage integrert grafikk til sine CPUer. Intels siste GPU 1. generasjon 11Det ligner AMDs arkitektur, da det bruker vektor-ALUer som kan håndtere FP32- og INT32-data, men vi vet ikke om de nye grafikkortene vil være en direkte utvikling av dette designet.

Det som er sikkert er at de neste årene vil være veldig interessante ettersom tre giganter av silisiumstrukturer fortsetter å kjempe for lommebøkene våre. Nye GPU-design og arkitekturer vil utfordre transistornumre, cachestørrelser og skyggegenskaper; Navi og RDNA er de nyeste av disse og har vist at hvert skritt fremover kan utgjøre en liten forskjell.

Shopping snarveier:
  • GeForce RTX 2070 Super klar Amazon
  • GeForce RTX 2080 Super klar Amazon
  • GeForce RTX 2080 Ti åpen Amazon
  • Radeon RX 5700 XT slått på Amazon
  • Radeon RX 5700 åpen Amazon
  • GeForce RTX 2060 Super klar Amazon
  • GeForce GTX 1660 Super klar Amazon

Denne artikkelen ble opprinnelig publisert 7. august 2019. Som en del av vårt #ThrowbackThursday-initiativ, reviderte vi og krasjet litt.