Je volgde de geruchten en negeerde de hype; je wachtte opmerkingen en keek naar alle statistieken. Eindelijk, je sloeg je dollars en liep weg met een van de nieuwste grafische kaarten van AMD of Nvidia. Onder hen is een grote grafische processor gevuld met miljarden transistors die draait op kloksnelheden die tien jaar geleden ondenkbaar waren.

Je bent erg blij met je aankoop en de games zagen er niet beter uit en speelden niet beter. U vraagt ​​zich misschien af ​​wat uw nieuwe Radeon precies aandrijft. RX 5700 en hoe anders in een chip GeForce RTX.

Welkom bij de architectuur en functievergelijking van AMD en Nvidia: Navi vs Turing's nieuwste GPU's.

Moderne GPU-anatomie

Voordat we beginnen met het afbreken van veelgebruikte chipstructuren en systemen, laten we eens kijken naar de basisvorm die alle moderne GPU's volgen. Deze processors zijn voor het grootste deel slechts drijvende-kommaberekeningen (FP); met andere woorden, ze voeren wiskundige bewerkingen uit op decimale / fractionele waarden. Een GPU moet dus in ieder geval een logische eenheid hebben die aan deze taken is toegewezen, en dat zijn ze meestal ook FP ALU's (drijvende-komma rekenkundige logische eenheden) of kortweg FPU's. Niet alle berekeningen die GPU's doen, zijn in FP-gegevenswaarden, dus er zal ook een ALU zijn voor het gehele getal (geheel getal) kan dezelfde eenheid zijn die wiskundige bewerkingen of beide soorten gegevens afhandelt.




Nu hebben deze logische eenheden iets nodig om ze te ordenen door ze te decoderen en te ordenen om ze bezig te houden, en dat zal in de vorm zijn van ten minste één speciale groep logische eenheden. In tegenstelling tot ALU's kunnen ze niet door de eindgebruiker worden geprogrammeerd; in plaats daarvan zorgt de hardwareleverancier ervoor dat dit proces volledig wordt beheerd door de GPU en zijn stuurprogramma's.




Er moet ook een soort geheugenstructuur zijn om deze instructies en de gegevens die moeten worden verwerkt op te slaan. Op het eenvoudigste niveau zal het in twee vormen zijn: cache en een punt lokaal geheugen. De eerste wordt ingebed in de GPU en SCHAAMTE. Dit type geheugen is snel, maar neemt relatief veel van de processor in beslag. Lokaal geheugen DRAMAHet is iets langzamer dan SRAM en wordt normaal gesproken niet op de GPU geplaatst. Lokaal geheugen op de meeste grafische kaarten die we tegenwoordig zien GDDR DRAM-modules.

Ten slotte bevat het extra insteltaken zoals het maken van 3D-afbeeldingen, het maken van driehoeken vanuit hoeken, het rasteren van een 3D-frame, het samplen en mengen van texturen. Net als instructie- en besturingseenheden, ook deze constante functie in de natuur. Wat ze doen en hoe ze werken, is volledig transparant voor gebruikers die de GPU programmeren en gebruiken.




Laten we dit samenvoegen en een GPU maken:




Het oranje blok is de eenheid die texturen verwerkt met behulp van wat wordt genoemd texture mapping-eenheden (TMU'lar) - TA textuur adressering volume - creëert geheugenlocaties voor cache en lokaal geheugen om te gebruiken - en TF breng geen textuur verzamelt textuurwaarden uit het geheugen en voegt ze samen. Tegenwoordig zijn TMU's vrijwel hetzelfde voor alle leveranciers omdat ze meerdere textuurwaarden per GPU-klokcyclus kunnen verwerken, samplen en mixen.




Het onderstaande blok schrijft de kleurwaarden van de pixels in het frame, samplet ze terug (PO) en mixt (PB); dit blok voert ook bewerkingen uit die worden gebruikt wanneer anti-aliasing wordt toegepast. De naam van dit blok: render uitvoereenheid or backend maken (Afgekort ROP / RB). Net als de TMU worden ze nu redelijk standaard, elk met een comfortabele verwerking van een paar pixels per klokcyclus.

Onze standaard GPU zou echter 13 jaar geleden zelfs volgens de normen verschrikkelijk zijn geweest. Waarom?

Er is slechts één FPU, TMU en ROP. In 2006 hadden de grafische processors van Nvidia, zoals de GeForce 8800 GTX, respectievelijk 128, 32 en 24. Dus laten we hier iets aan gaan doen ...




Zoals elke goede processorfabrikant hebben we de GPU bijgewerkt door wat meer eenheden toe te voegen. Dit betekent dat de chip meer instructies tegelijkertijd kan verwerken. Om hierbij te helpen, hebben we wat meer caches toegevoegd, maar deze keer direct naast de logische eenheden. Hoe dichter de cache bij een rekenmachinestructuur is, hoe sneller deze kan worden geïnitialiseerd in de transacties die eraan zijn toegewezen.

Het probleem met ons nieuwe ontwerp is dat er nog maar één controller beschikbaar is voor onze extra ALU's. Het zou beter zijn als we meer eenheidsblokken hadden, allemaal beheerd door hun eigen afzonderlijke controllers, omdat we dan heel verschillende bewerkingen tegelijkertijd kunnen uitvoeren.

Dit is nu meer! Afzonderlijke ALU-blokken vol met hun eigen TMU's en ROP's en ondersteund door heerlijk smakelijke, snelle cacheplakken. Het is nog steeds maar een van alles, maar de basisstructuur is niet een miljoen mijl verwijderd van de grafische processor die we tegenwoordig op computers en consoles zien.

Navi ve Turing: Godzilla GPU'ları

Nu we de basislay-out van een grafische chip hebben gedefinieerd, hoewel enigszins vergroot en verwerkt om verschillende structuren te markeren, Navi vs. Laten we beginnen met onze Turing-vergelijking.

Aan de linkerkant is AMD's nieuwste processor. Het algemene chipontwerp heet Navi (sommige heten Navi 10) en de grafische architectuur heet RDNA. Ernaast, aan de rechterkant, staat de full-size TU102-processor van Nvidia met de nieuwste Turing-architectuur. Het is belangrijk op te merken dat deze afbeeldingen niet geschaald zijn: het oppervlak van de Navi-dobbelsteen is 251 mm2, terwijl TU102 752 mm2 is. De Nvidia-processor is groot, maar niet 8 keer groter dan het aanbod van AMD!

Beide kolossaal het aantal transistors (10,3 versus 18,6 miljard), maar TU102 heeft een gemiddelde van ~ 25 miljoen transistors per vierkante mm vergeleken met Navi's 41 miljoen per vierkante mm.

Dit komt omdat, hoewel beide chips door TSMC worden vervaardigd, ze in verschillende procesknooppunten worden geproduceerd: Nvidia's Turing bevindt zich op de volwassen 12 nm-productielijn, terwijl AMD's Navi wordt geproduceerd in het nieuwere 7 nm-knooppunt.

Alleen al het kijken naar afbeeldingen van de mallen zegt ons niet veel over architecturen, dus laten we eens kijken naar de GPU-blokdiagrammen die door beide bedrijven zijn geproduceerd.

De diagrammen zijn geen 100% realistische weergave van de werkelijke lay-outs, maar als u ze 90 graden roteert, kunnen de verschillende blokken en centrale stroken die op beide verschijnen, worden gedefinieerd. Om te beginnen kunnen we zien dat de twee GPU's een algemene structuur hebben zoals de onze (hoewel meer dan wat dan ook!).

Beide ontwerpen volgen een gelaagde benadering van hoe alles is gerangschikt en gegroepeerd - om Navi te gaan gebruiken, bestaat de GPU uit 2 blokken waarnaar AMD op zoek is. Shader Motors (SE), elk van hen wordt 2 blokken genoemd asynchroon Computer-engines (AAS). Elk van deze bevat 5 blokken in de titel. Werkgroepverwerkers (WGP's), bestaande uit 2 Informatie verwerkingseenheden (Öze).

Namen en nummers zijn verschillend voor Turing-ontwerp, maar de hiërarchie lijkt erg op elkaar: 6 Clusters voor grafische verwerking (GPC), elk 6 Clusters voor textuurverwerking (TPC), elk 2 Stream multiprocessor (SM) blokken.

Als je een grafische processor ziet als een grote fabriek waar verschillende afdelingen met dezelfde grondstoffen verschillende producten maken, begint deze organisatie logisch te worden. De CEO van de fabriek stuurt alle operationele details naar het bedrijf en verdeelt deze vervolgens in verschillende taken en workloads. Met meer dan één, onafhankelijk De productiviteit van het personeelsbestand werd in de fabriek verhoogd. Het is niet anders voor GPU's en hier is het magische sleutelwoord timing.

Voor en midden, soldaat - timing en verzending

Hoe we kijken Oefeningen voor het maken van 3D-spellenWe hebben gezien dat de grafische processor niets meer is dan een supersnelle rekenmachine door een reeks wiskundige bewerkingen uit te voeren op miljoenen gegevensstukken. Navi en Turing zijn als volgt ingedeeld: Enkele opdracht meerdere gegevens (SIMD) processors, maar een betere uitleg Single Way Multi Draad (Zin).

Een modern 3D-spel produceert honderden threads, soms duizenden, omdat het aantal te renderen hoekpunten en pixels enorm is. Om ervoor te zorgen dat alles in slechts een paar microseconden is voltooid, is het belangrijk om zoveel mogelijk logische eenheden te hebben zonder alles te stoppen, omdat de vereiste gegevens niet op de juiste plaats staan ​​of omdat er niet genoeg bronruimte is om binnen te werken.

Toen we keken hoe het maken van 3D-games werkt, zagen we dat een grafische processor niets meer is dan een heel snelle rekenmachine, en we hebben verschillende wiskundige bewerkingen uitgevoerd op miljoenen gegevens. Navi en Turing worden geclassificeerd als Single Command Multiple Data (SIMD) -processors, maar een betere verklaring zou Single Command Multiple Threads (SIMT) zijn.

Navi en Turing werken op dezelfde manier, dus een centrale eenheid neemt alle threads en begint ze te programmeren en uit te zenden. In de AMD-chip is deze rol Grafische opdrachtprocessor; Nvidia'da, GigaThread Motoru. De threads zijn zo gerangschikt dat degenen met dezelfde instructies gegroepeerd zijn in een verzameling van 32 groepen.

AMD deze collectie Golfterwijl Nvidia dit kromming. Voor Navi kan een computereenheid 2 golven aan (of een golf van 64 threads, maar dit proces duurt twee keer zo lang) en bij Turing werkt een Stream Multiprocessor met 4 warps. In beide ontwerpen is de golf / kromtrekking onafhankelijk, wat betekent dat de anderen deze niet hoeven af ​​te werken voordat ze beginnen.

Tot dan toe is het niet veel anders tussen Navi en Turing - beide zijn ontworpen om grote aantallen threads te verwerken om workloads te maken en te berekenen. We moeten kijken naar welke processors deze threads zijn om te zien waar de twee GPU-giganten qua ontwerp van elkaar scheiden.

Uitvoerend verschil - RDNA en CUDA

Hoewel de meeste gebruikte terminologie hetzelfde lijkt, hebben AMD en Nvidia een nogal andere benadering van gecombineerde shader-eenheden. De uitvoeringseenheden van Nvidia (WONDEREN zaden) digitaal in de natuur - dit betekent dat een eenheid een wiskundige bewerking uitvoert op een gegevenscomponent; In tegenstelling tot AMD-units (Stroomprocessors) werken aan vectoren - een bewerking op meerdere datacomponenten. Er is slechts één specifieke eenheid voor scalaire bewerkingen.

Laten we, voordat we de uitvoeringseenheden nader bekijken, de eigen aanpassingen van AMD bekijken. 7 jaar lang volgden Radeon grafische kaarten een architectuur genaamd Graphics Core Next (GCN). Elke nieuwe chip herzag verschillende aspecten van het ontwerp, maar ze waren in wezen allemaal hetzelfde.

AMD presenteerde een korte geschiedenis van de GPU-architectuur:

GCN was een evolutie van TeraScale, een ontwerp waarmee grote golven gelijktijdig kunnen worden verwerkt. Het belangrijkste bij TeraScale was dat het niet erg gemakkelijk was tegen programmeurs en dat er heel specifieke routines nodig waren om het beste te krijgen. GCN heeft dit opgelost en een veel toegankelijker platform geboden.

De CU's in Navi zijn aanzienlijk herzien ten opzichte van GCN als onderdeel van het verbeteringsproces van AMD. Elke CU bevat twee sets:

  • 32 SP (IEE754 FP32 en INT32 vector ALU's)
  • 1 SFU
  • 1 INT32 weegschaal ALU
  • 1 timing- en leveringseenheid

Daarnaast bevat elke CU 4 weefseleenheden. Er zijn andere eenheden om gegevenslees- / schrijfbewerkingen uit de cache uit te voeren, maar deze worden niet weergegeven in de onderstaande afbeelding:

In vergelijking met GCN ziet de opzet van een RDNA CU er misschien niet heel anders uit, maar al het belangrijke hier is op deze manier georganiseerd en georganiseerd. Om te beginnen heeft elke set van 32 SP zijn eigen speciale instructie-eenheid, GCN had slechts één programma voor 4 sets van 16 SP.

Dit is een belangrijke wijziging, wat betekent dat één golf van 32 threads per klokcyclus kan worden geleverd aan elke SP-set. De RDNA-architectuur stelt vectoreenheden ook in staat om golven van 16 threads te verwerken met tweemaal de snelheid en golven van 64 threads in de helft, dus code geschreven voor alle eerdere Radeon grafische kaarten wordt nog steeds ondersteund.

Deze wijzigingen zullen erg populair zijn bij game-ontwikkelaars.

Voor scalaire bewerkingen zijn er nu twee eenheden die ze aankunnen; de enige vermindering van het aantal componenten is in de vorm van SFU's - deze zijn speciale functie eenhedenvoert zeer specifieke wiskundige bewerkingen uit, bijv. trigonometrisch (sinus, tangens), reciproque (1 gedeeld door een getal) en vierkantswortels. RDNA heeft er minder van dan GCN's, maar ze kunnen nu werken met twee keer zo grote datasets als voorheen.

Deze wijzigingen zullen erg populair zijn bij game-ontwikkelaars. Er waren veel potentiële prestaties op oudere Radeon grafische kaarten, maar het was erg moeilijk om te doen. Nu heeft AMD een grote stap gezet om de latentie in verwerkingsinstructies te verminderen en functies te behouden om achterwaartse compatibiliteit te garanderen voor alle programma's die zijn ontworpen voor de GCN-architectuur.

Hoe zit het met professionele grafische afbeeldingen of de computermarkt? Zijn deze veranderingen ook gunstig voor hen?

Het korte antwoord is ja (waarschijnlijk). De huidige versie van de Navi-chip op de vergelijkbare Radeon RX 5700 XT heeft minder Stream Processors dan het vorige Vega-ontwerp, terwijl we presteerden beter de vorige generatie Radeon RX Vega 56 is vrij eenvoudig:

Een deel van deze prestatieverbetering komt van de hogere kloksnelheid van de RX 5700 XT dan de RX Vega 56 (zodat hij meer pixels per seconde naar het lokale geheugen kan schrijven), maar daalt met maar liefst 15% bij de hoogste integer- en floating-pointprestaties; Toch ontdekten we dat de Navi-chip 18% beter presteerde dan de Vega.

Wetenschappers die professionele weergaveprogramma's en complexe algoritmen uitvoeren, barsten niet van een paar rondes Battlefield V in hun werk (d.w.z. zou kunnen...) alleen als scalaire, vector- en matrixbewerkingen die in een game-engine worden uitgevoerd, sneller worden verwerkt schip verander het in de computermarkt. Momenteel weten we niet wat AMD's plannen voor de professionele markt zijn - ze kunnen goed samengaan met de Vega-architectuur en helpen bij het verbeteren van ontwerp en fabricage, maar gezien de vooruitgang in Navi, verplaatst het bedrijf alles naar de nieuwe architectuur.

Het GPU-ontwerp van Nvidia heeft een vergelijkbare evolutie ondergaan sinds 2006, toen ze de GeForce 8-serie lanceerden, zij het minder ingrijpende veranderingen dan AMD. Deze GPU creëerde de eerste Tesla-architectuur die een eerste shaderbenadering gebruikte in de uitvoeringsarchitectuur. Hieronder zien we de veranderingen in SM-blokken van opvolger naar Tesla (Fermi) naar Turing's voorganger (Volta):

Zoals eerder in dit artikel vermeld, zijn CUDA-kernels digitaal. Ze kunnen één float- en één integer-instructie per klokcyclus uitvoeren op een datacomponent (merk echter op dat de instructie zelf meerdere klokcycli kan vergen om te worden verwerkt), maar de timingeenheden rangschikken ze in groepen, ze kunnen vectorbewerkingen uitvoeren voor een programmeur. De belangrijkste verandering door de jaren heen is niet alleen dat er meer eenheden zijn, maar ook hoe ze zijn georganiseerd en gesegmenteerd.

In het Kepler-ontwerp had de volledige chip 5 GPC's, elk met drie SM-blokken; Toen Pascal tevoorschijn kwam, werden GPC's opgesplitst in afzonderlijke partities (TPC) met twee SM's per TPC. Net als bij het Navi-ontwerp. deze fragmentatie is belangrijk omdat hierdoor de algemene GPU zo volledig mogelijk kan worden gebruikt; Meerdere onafhankelijke instructiesets kunnen parallel worden verwerkt, waardoor de schaduw en computerprestaties van de processor toenemen.

Laten we eens kijken naar het Turing-equivalent van RDNA Computing Unit:

Een SM bevat 4 transactieblokken met elk:

  • 1 eenheid voor instructieplanning en verzending
  • 16 IEE754 FP32 weegschalen ALU
  • 16 INT32 weegschalen ALU
  • 2 Tensor kleuren
  • 4 SFU
  • 4 Load / Storage (lezen / schrijven van cache uitvoeren)

Er zijn ook 2 FP64-eenheden per SM, maar Nvidia geeft ze niet langer weer in blokdiagrammen en elke SM heeft 4 texture-units (inclusief texture-adressering en texture-filtersystemen) en 1 RT (Ray Tracing) -kern.

FP32 en INT32 ALU's kunnen gelijktijdig en parallel werken. Dit is een belangrijk kenmerk omdat 3D-rendering-engines vaak drijvende-kommaberekeningen vereisen, maar er is een redelijk aantal eenvoudige integer-bewerkingen (bijv. Gegevensadresberekeningen) die moeten worden uitgevoerd.

Tensor Cores zijn speciale ALU's die matrixbewerkingen uitvoeren. Matrices zijn 'vierkante' datarrays en Tensor-kernen draaien op een 4 x 4 matrix. De FP16 is ontworpen om INT8- of INT4-datacomponenten te verwerken, zodat float-operatie plaatsvindt naar 64 FMA (fused multiply-post-add) in één klokcyclus. Dit type berekening wordt genoemd neurale netwerken en gevolgtrekking - niet bepaald gebruikelijk in 3D-games, maar veel gebruikt door Facebook-likes in auto's met analyse-algoritmen voor sociale media of zelfrijdende systemen. Navi kan ook matrixberekeningen uitvoeren, maar heeft hiervoor een groot aantal SP nodig; In het Turing-systeem kunnen matrixbewerkingen worden uitgevoerd terwijl CUDA-kernen andere wiskunde doen.

RT Core is een andere speciale eenheid die uniek is voor de Turing-architectuur en die zeer specifieke wiskundige algoritmen uitvoert die worden gebruikt voor het raytracing-systeem van Nvidia. Een volledige analyse hiervan valt buiten het bestek van dit artikel, maar RT Core zijn twee systemen die afzonderlijk werken met de rest van de SM, dus terwijl RT Core bezig is met berekeningen, kan het werken op piek- of pixel-shaders. voor ray tracing.

Op het basisniveau hebben Navi en Turing uitvoeringseenheden die een redelijk vergelijkbare functieset bieden (een vereiste die voortvloeit uit het voldoen aan de vereisten van Direct3D, OpenGL, enz.).

Op het basisniveau hebben Navi en Turing uitvoeringseenheden die een redelijk vergelijkbare set functies bieden (een vereiste die voortvloeit uit het voldoen aan de vereisten van Direct3D, OpenGL, enz.), Maar ze benaderen hoe die functies zijn heel anders. afgewerkt. Als het gaat om welk ontwerp beter is, gaat het om hoe ze worden gebruikt: FP32, een programma dat vectorberekeningen produceert en een groot aantal threads dat weinig presteert, geeft de voorkeur aan Navi, terwijl een programma met een verscheidenheid aan integer-, floating-point-, scalair- en vectorberekeningen de flexibiliteit van Turing zal geven prefereert, etc.

Geheugenhiërarchie

Moderne GPU's zijn ontworpen om een ​​reeks bewerkingen uit te voeren op streamprocessors, dat wil zeggen op elk element in een datastroom. Dit maakt ze minder flexibel dan een CPU voor algemene doeleinden en vereist ook optimalisatie van de geheugenhiërarchie van de chip om zo snel mogelijk en in zoveel mogelijk streams gegevens en instructies naar ALU's te ontvangen. Dit betekent dat GPU's minder cache hebben dan de CPU, omdat het grootste deel van de chip moet worden toegewezen aan de hoeveelheid cache, niet aan cachetoegang.

Zowel AMD als Nvidia nemen hun toevlucht tot het gebruik van meerdere caches in chips, dus laten we eens kijken wat Navi als eerste verpakt.

Beginnend vanaf het laagste niveau in de hiërarchie, gebruiken twee blokken stroomprocessors in totaal een vectorregister van 256 pond (gewoonlijk log-bestand) Was hetzelfde bedrag als Vega maar tussen 4 SP-blokken; Als de registers opraken terwijl u een groot aantal threads probeert te verwerken, heeft dit echt een negatieve invloed op de prestaties, dus dit is absoluut een "goede zaak". AMD heeft ook het scalaire opnamebestand aanzienlijk vergroot. Was het voorheen nog maar 4 kiB, nu is dat 32 kilo per scalaire eenheid.

De twee Compute Units delen dan een 32-pond L0-cache en een 16-pond scalaire data-cache, maar elke CU krijgt zijn eigen 32-pond vector L0-cache; Het verbinden van al dit geheugen met ALU's is een 128-pond Local Data Share.

In Navi creëren twee Computing Engines een Workgroup Processor en vijf daarvan vormen de Asynchronous Computing Engine (ACE). Elke ACE heeft toegang tot zijn eigen 128-pond L1-cache, en de hele GPU wordt verder ondersteund door 4 MiB L2-caches die verbinding maken met L1-caches en andere delen van de processor.

Aangezien het systeem strikt wordt gebruikt om 16 GDDR6-geheugencontrollers te verwerken, is het een vorm van AMD's gepatenteerde Infinity Fabric-connectiviteitsarchitectuur. Om de geheugenbandbreedte te maximaliseren, gebruikt Navi ook verliesloze kleurcompressie tussen L1, L2 en native GDDR6-geheugen.

Nogmaals, dit alles is bijzonder welkom in vergelijking met eerdere AMD-chips die niet genoeg low-level cache hadden voor het aantal shading-eenheden dat ze bevatten. Kortom, meer cache is gelijk aan meer interne bandbreedte, minder trage instructies (omdat ze meer gegevens uit het geheugen moeten halen), enz. En dat staat gelijk aan betere prestaties.

Over de hiërarchie van Turing moet worden gezegd dat Nvidia aan de verlegen kant staat als het gaat om het verstrekken van diepgaande kennis op dit gebied. Eerder in dit artikel zagen we elke SM opgesplitst in 4 transactieblokken - elk heeft een kleiner logbestand van 64 pond dan dat in Navi, maar onthoud dat de ALU's van Turing scalair zijn, geen vectoren. , eenheden.

Vervolgens kan 96 kb gedeeld geheugen voor elke VM worden gebruikt als 64 kb L1-gegevenscache en 32 kb weefselcache of extra recordruimte. In 'compute mode' kan het gedeelde geheugen worden opgedeeld in verschillende partities, zoals 32 kb gedeeld geheugen en 64 kb L1 cache, maar altijd als 64 + 32 divisies.

Door het gebrek aan details over het Turning-geheugensysteem wilden we meer, dus wendden we ons tot een GPU-onderzoeksteam dat bij Citadel Enterprise Americas werkte. Onlangs hebben ze twee artikelen gepubliceerd. Tijd ve Turing architecturen; De afbeelding hierboven is de fragmentatie van de geheugenhiërarchie in de TU104-chip (volledige TU102 sport 6144 kiB L2-cache).

Het team bevestigde dat de doorvoercapaciteit van de L1-cache 64 bits per cyclus was, en verklaarde dat tijdens het testen de efficiëntie van de L1-cache van Turing de beste was van alle GPU's van Nvidia. Dit is vergelijkbaar met Navi, hoewel de chip van AMD een hogere leessnelheid heeft voor Local Data Store, maar een lagere snelheid voor instructie / vaste caches.

Beide GPU's gebruiken GDDR6 voor lokaal geheugen - dit is de nieuwste versie van Graphics DDR SDRAM - en beide gebruiken 32-bits verbindingen met geheugenmodules, dus Radeon RX 5700 XT Het heeft 256 geheugenchips en biedt een piekbandbreedte van 256 GiB / s en 8 GiB aan ruimte. een GeForce RTX 2080 Ti Met de TU102-chip werkt het met 11 van dergelijke modules voor 352 GiB / s bandbreedte en 11 GiB opslag.

De documentatie van AMD kan soms verwarrend lijken: in het eerste blokschema zien we dat Navi vier 64-bits geheugencontrollers toont, terwijl een latere afbeelding 16 controllers laat zien. Overwegen Samsung biedt alleen 32-bits GDDR6 aan Het lijkt erop dat de tweede afbeelding laat zien hoeveel verbindingen er zijn tussen het Infinity Fabric-systeem en de geheugencontrollers. Er zijn waarschijnlijk maar 4 geheugencontrollers en elk gebruikt twee modules.

Over het algemeen lijkt er geen groot verschil te zijn tussen Navi en Turing als het gaat om hun caches en lokaal geheugen. Er is een beetje meer aan de hand dat Navi's dichter bij de uitvoering komen met zijn grotere instructie / constante en L1-caches, maar beide zitten boordevol dingen, beide gebruiken waar mogelijk kleurcompressie en beide hebben veel aangepaste GPU-patronen bij geheugentoegang en gebruikt om de bandbreedte te maximaliseren.

Driehoeken, texturen en pixels

Vijftien jaar geleden hebben GPU-fabrikanten veel gedaan aan het aantal driehoeken dat hun chips aankunnen, het aantal texture-elementen dat per cyclus kan worden gefilterd en het vermogen van render-uitvoereenheden (ROP's). Deze aspecten zijn vandaag de dag nog steeds belangrijk, maar de focus ligt veel meer op de uitvoeringskant, aangezien 3D-renderingtechnologieën meer computerprestaties vereisen dan ooit tevoren.

Om er echter op te wijzen dat er op deze gebieden geen onmiddellijk merkbaar verschil is tussen Navi en Turing, zijn texture units en ROP's nog steeds het ontdekken waard. In beide architecturen kunnen textuureenheden 4 textuurelementen verwerken en ophalen, ze onbekend filteren in een enkel element en ze allemaal in een klokcyclus opslaan (waarbij de extra klokloops worden genegeerd die worden genomen om gegevens uit het lokale geheugen op te halen).

De opstelling van ROP / RB's verschilt enigszins tussen Navi en Turing, maar niet te veel: AMD-chip heeft 4 RB's per ACE en elk kan 4 gemengde pixels per klokcyclus uitvoeren; Bij Turing heeft elke GPC twee RB's, elk met 8 pixels per uur. De ROP-telling van de GPU is in feite een maat voor deze pixeluitvoersnelheid, dus een volledige Navi-chip levert 64 pixels per uur en de volledige TU102 96 (maar onthoud dat dit een grotere chip is).

Er is minder informatie over de driehoekige kant van dingen. Wat we wel weten, is dat Navi nog steeds maximaal 4 primitieven per klokcyclus geeft (1 per ACE), maar er is niet meer bekend of AMD het probleem met dit probleem heeft opgelost. Primitieve Shaders. Dit was een veelgeprezen kenmerk van Vega en stelde programmeurs in staat veel meer controle over primitieven te hebben, zodat de primitieve opbrengst met 4 factoren kan worden verhoogd. functionaliteit verwijderd uit stuurprogramma's Het product is kort na de lancering en sindsdien inactief.

In afwachting van meer informatie over Navi, zou het onverstandig zijn om verder te speculeren. Turing verwerkt ook 1 primitief per uur per GPC (d.w.z. tot 6 voor de volledige TU102 GPU) in Raster Engines, maar ook Mesh-shadersBiedt dezelfde functionaliteit als AMD's Primitive Shaders; Direct3D is geen OpenGL- of Vulkan-functieset, maar kan worden gebruikt via API-extensies.

Dit lijkt Turing een voorsprong te geven op Navi in ​​termen van het omgaan met driehoeken en primitieven, maar momenteel is er niet genoeg nauwkeurige informatie in het publieke domein.

Niet alleen over handhavingseenheden

Er zijn andere aspecten van Navi en Turing die het waard zijn om te vergelijken. Om te beginnen zijn beide GPU's voorzien van zeer geavanceerde display- en media-engines. De eerste verwerkt de uitvoer naar de monitor, de tweede codeert en decodeert de videostreams.

Zoals je zou verwachten van een nieuw 2019 GPU-ontwerp, biedt de display-engine van Navi zeer hoge resoluties bij hoge verversingsfrequenties en biedt HDR-ondersteuning. Bekijk Flow Compression (DSC) is een snel compressiealgoritme met verlies waarmee bijvoorbeeld 4K + resoluties met vernieuwingsfrequenties hoger dan 60 Hz kunnen worden verzonden via een DisplayPort 1.4-verbinding; Gelukkig is de verslechtering van de beeldkwaliteit erg klein tot het punt waarop je de DSC als bijna verliesloos beschouwt.

Turing ondersteunt ook DisplayPort met DSC-verbindingen, maar de ondersteunde combinatie van hoge resolutie en verversingssnelheid is iets beter dan Navi: 4K HDR op 144 Hz - de rest is hetzelfde.

De media-engine van Navi is net zo modern als de display-engine en Geavanceerde videocodering (H.264) en Zeer efficiënte videocodering (H.265), opnieuw met hoge resoluties en hoge bitsnelheden.

De video-engine van Turing is ongeveer hetzelfde als die van Navi, maar ondersteuning voor 8K30 HDR-codering kan voor sommige mensen de balans in het voordeel van Turing veranderen.

Er zijn nog andere aspecten om te vergelijken (bijvoorbeeld Navi's PCI Express 4.0-interface of Turing's NV Link), maar ongeacht hoe gekleed en op de markt gebracht, het zijn echt kleine stukjes van de algehele architectuur. Dit komt omdat voor de overgrote meerderheid van potentiële gebruikers deze unieke functies niet belangrijk zullen zijn.

Like-for-Like-vergelijking

Dit artikel is een observatie van architectonisch ontwerp, kenmerken en functionaliteit, maar een directe prestatievergelijking zou een goede manier zijn om een ​​dergelijke analyse te voltooien. Het koppelen van de Navi-chip op een Radeon RX 5700 XT in een GeForce RTX 2080 Ti met de Turing TU102-processor in een GeForce RTX 2080 Ti zou echter niet echt eerlijk zijn, aangezien dit laatste bijna twee keer zo groot is als het aantal gecombineerde shader-eenheden. Er is echter een versie van de Turing-chip die ter vergelijking kan worden gebruikt, en deze is te vinden in de GeForce RTX 2070 Super.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Architectonisch Navi 10 | rDNA TU104 | Turing
werkwijze 7 nm TSMC 12 nm TSMC
Vormgebied (mm2) 251 545
Transistors (miljarden) 10.3 13.6
Profiel blokkeren 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 SM
Gecombineerde arceringkernen 2560 SP 2560 WONDEREN
TMU's 160 160
ROPS 64 64
Basistijd 1605 MHz 1605 MHz
Game klok 1755 MHz Nvt
Boost uur 1905 MHz 1770 MHz
Geheugen 8 GB 256-bits GDDR6 8 GB 256-bits GDDR6
Geheugenbandbreedte 448 GBps 448 GBps
Thermisch ontwerpvermogen (TDP) 225 Watt 215 W.

Het is vermeldenswaard dat de RTX 2070 Super geen 'volledige' TU104-chip is (een van de GPC's is uitgeschakeld), dus al deze 13.6-transistors zijn inactief, wat betekent dat de chips ongeveer hetzelfde zijn in termen van het aantal transistors. Op het eerste gezicht lijken de twee GPU's erg op elkaar, vooral als je alleen kijkt naar shader-units, TMU's, ROP's en hoofdgeheugensystemen.

In de Nvida-processor kan een SM 32 gelijktijdige warps verwerken, en met elke warp van 32 threads kan een volledig geladen GeForce RTX 2070 Super op 40.960 threads over de hele chip draaien; Voor Navi kan één CU SIMD32 16 golven per ALU ontvangen en elke golf is 32 strengen. Zo kan de Radeon RX 5700 XT ook worden verpakt tot 40.960 threads. Het lijkt misschien alsof ze hierdoor precies hier zijn, maar gezien hoe verschillend de CU / SM's zijn gerangschikt en het voordeel van Nvidia met gelijktijdige INT- en FP-verwerking, zal het resultaat grotendeels afhangen van de code die wordt uitgevoerd.

Welk effect zal dit hebben op verschillende spelprestaties, aangezien de code van een 3D-engine de voorkeur geeft aan de ene build boven de andere, afhankelijk van het soort instructies dat routinematig naar de GPU wordt gestuurd. Dit, twee grafische kaarten getest:

Alle games die in de test werden gebruikt, werden geprogrammeerd voor de GCN-architectuur van AMD, rechtstreeks voor met Radeon uitgeruste pc's of via GCN-GPU's op de PlayStation 4 of Xbox One. Het is mogelijk dat enkele van de recent gelanceerde versies zijn voorbereid op de wijzigingen van RDNA, maar verschillen in benchmarkresultaten zijn waarschijnlijker vanwege de rendering-engines en de manier waarop instructies en gegevens worden verwerkt.

Dus wat betekent dit allemaal? Is de ene architectuur echt beter dan de andere? Turing biedt zeker meer capaciteit dan Navi dankzij Tensor en RT Cores, maar de laatste concurreert zeker op het gebied van 3D-renderingprestaties. De verschillen die te zien zijn in de 12 spelvoorbeelden zijn niet precies genoeg om een ​​definitief oordeel te vellen.

En dit is goed nieuws voor ons.

Laatste woorden

AMD's Navi-plannen werd aangekondigd Ze mikten op de lancering van 2018 in 2016 en hoewel ze niet veel zeiden. Wanneer die datum komt en gaat wegenkaart veranderd Het was echter duidelijk dat Navi zou worden gebouwd in een 7nm-procesknooppunt en dat het ontwerp zich zou richten op het verbeteren van de prestaties.

Dit was zeker het geval, en zoals we in dit artikel hebben gezien, heeft AMD architectonische wijzigingen aangebracht om Nvidia in staat te stellen te concurreren met zijn gelijkwaardige aanbiedingen. Het nieuwe ontwerp biedt meer voordelen dan alleen pc-gebruikers, aangezien we weten dat Sony en Microsoft de komende periode een variant van de chip zullen gebruiken. Playstation 5 ve sonraki xbox.

Als je teruggaat naar het begin van dit artikel en nog eens kijkt naar het structurele ontwerp van Shader Motors, de totale grootte van de matrijs en het aantal transistors, is er duidelijk ruimte voor een 'grote Navi'-chip om te pieken. nieuwste grafische kaart; AMD heeft vrijwel bevestigd dat dit onderdeel moet zijn van zijn huidige plannen en moet streven naar verbetering van de architectuur en het productieproces in de komende twee jaar.

Maar wat zijn de plannen voor Nvidia, Turing en zijn opvolger? Verrassend genoeg is er weinig bevestigd door het bedrijf. In 2014 heeft Nvidia Bijgewerkte GPU-roadmap Planning van de Pascal-architectuur voor de lancering in 2016 (en het bereiken van dat doel). In 2017 Tesla heeft de V100 aangekondigdHet was dit ontwerp dat Turing in 2018 op de markt bracht, met behulp van de Volta-architectuur.

Sindsdien is het behoorlijk stil geweest en moesten we vertrouwen op geruchten en nieuwsfragmenten, die vaak hetzelfde zeggen: de volgende architectuur van Nvidia zal Ampere heten, Gemaakt door Samsung Het maakt gebruik van het 7nm-procesknooppunt en is gepland voor 2020. Anders dan dat, is er niets anders om door te gaan. Het is onwaarschijnlijk dat de nieuwe chip de traditie zal doorbreken door zich te concentreren op scalaire uitvoeringseenheden, of het is onwaarschijnlijk dat aspecten zoals Tensor Cores zullen vallen, aangezien dit aanzienlijke achterwaartse compatibiliteitsproblemen zal veroorzaken.

Toch kunnen we redelijke voorspellingen doen over hoe de volgende Nvidia GPU eruit zal zien. Het bedrijf heeft veel tijd en geld geïnvesteerd. Opsporen van stralenen de ondersteuning ervan alleen in games toename; Daarom kunnen we een verbetering verwachten in de RT-kern in termen van mogelijkheden of aantallen per SM. Als een 7 nm procesknooppunt Als dat waar is, zal Nvidia waarschijnlijk streven naar vermogensreductie in plaats van directe kloksnelheidverhoging, zodat ze het aantal GPC's kunnen vergroten. Het is ook mogelijk om 7 nm over te slaan en Nvidia te starten. Rechtstreeks 5 nm Om een ​​voordeel te behalen ten opzichte van AMD.

Blijkbaar AMD en Nvidia, discrete grafische kaart Markt van Intel zoals we die kennen, ze zijn van plan om deze branche opnieuw te betreden, Bel 20 jaar. Dit nieuwe product (momenteel Xe's) Zal kunnen concurreren op hetzelfde niveau als Navi en Turing.

Ondertussen heeft Intel de GPU-markt gedurende deze twee decennia overleefd door geïntegreerde grafische afbeeldingen voor zijn CPU's te maken. Intel's nieuwste GPU Gen 11Het is vergelijkbaar met de architectuur van AMD omdat het vector-ALU's gebruikt die FP32- en INT32-gegevens aankunnen, maar we weten niet of de nieuwe grafische kaarten een directe evolutie van dit ontwerp zullen zijn.

Wat zeker is, is dat de komende jaren erg interessant zullen zijn, aangezien drie giganten van siliciumstructuren blijven vechten voor onze portemonnee. Nieuwe GPU-ontwerpen en architecturen zullen transistornummers, cachegroottes en shader-eigenschappen uitdagen; Navi en RDNA zijn hiervan de nieuwste en hebben laten zien dat elke stap vooruit een klein verschil kan maken.

Shopping-snelkoppelingen:
  • GeForce RTX 2070 Super helder Amazon
  • GeForce RTX 2080 Super helder Amazon
  • GeForce RTX 2080 Ti geopend Amazon
  • Radeon RX 5700 XT ingeschakeld Amazon
  • Radeon RX 5700 geopend Amazon
  • GeForce RTX 2060 Super helder Amazon
  • GeForce GTX 1660 Super helder Amazon

Dit artikel is oorspronkelijk gepubliceerd op 7 augustus 2019. Als onderdeel van ons # ThrowbackThursday-initiatief hebben we het herzien en een beetje gecrasht.