Sie folgten den Gerüchten und ignorierten den Hype; du hast gewartet Bemerkungen und schaute auf alle Metriken. Schließlich haben Sie Ihre Dollars geschlagen und sind mit einer der neuesten Grafikkarten von AMD oder Nvidia weggegangen. Unter ihnen läuft ein großer Grafikprozessor mit Milliarden von Transistoren mit Taktraten, die vor einem Jahrzehnt undenkbar waren.

Sie sind sehr zufrieden mit Ihrem Kauf und die Spiele sahen nicht besser aus und spielten nicht besser. Möglicherweise fragen Sie sich jedoch, was genau Ihre neue Radeon antreibt. RX 5700 und wie anders in einem Chip GeForce RTX.

Willkommen bei der Architektur und dem Funktionsvergleich der neuesten GPUs von AMD und Nvidia: Navi vs Turing.

Moderne GPU-Anatomie

Bevor wir anfangen, gängige Chipstrukturen und -systeme aufzubrechen, werfen wir einen Blick auf die Grundform, der alle modernen GPUs folgen. Diese Prozessoren sind größtenteils nur Gleitkomma-Rechner. Mit anderen Worten, sie führen mathematische Operationen mit Dezimal- / Bruchwerten durch. Zumindest eine GPU muss über eine Logikeinheit verfügen, die für diese Aufgaben vorgesehen ist, und dies ist normalerweise der Fall FP ALUs (Gleitkomma-Arithmetik-Logikeinheiten) oder kurz FPUs. Nicht alle GPUs für Berechnungen sind in FP-Datenwerten enthalten, daher gibt es auch eine ALU für die Ganzzahl (ganze Zahl) kann dieselbe Einheit sein, die mathematische Operationen oder beide Datentypen verarbeitet.




Jetzt brauchen diese Logikeinheiten etwas, um sie zu organisieren, indem sie dekodiert und organisiert werden, um sie beschäftigt zu halten, und das in Form von mindestens einer speziellen Logikeinheitsgruppe. Im Gegensatz zu ALUs können sie nicht vom Endbenutzer programmiert werden. Stattdessen stellt der Hardwareanbieter sicher, dass dieser Prozess vollständig von der GPU und ihren Treibern verwaltet wird.




Es muss auch eine Art Speicherstruktur vorhanden sein, um diese Anweisungen und die zu verarbeitenden Daten zu speichern. Auf seiner einfachsten Ebene wird es zwei Formen geben: Zwischenspeicher und ein Punkt lokaler Speicher. Der erste wird in die GPU und eingebettet SCHANDE. Diese Art von Speicher ist schnell, nimmt jedoch relativ viel vom Layout des Prozessors ein. Lokaler Speicher THEATEREs ist etwas langsamer als SRAM und wird normalerweise nicht auf die GPU gesetzt. Lokaler Speicher auf den meisten Grafikkarten, die wir heute sehen DDDR DRAM-Module.

Schließlich enthält es zusätzliche Einstellungsaufgaben wie das Erstellen von 3D-Grafiken, das Erstellen von Dreiecken aus Ecken, das Rastern eines 3D-Rahmens, das Abtasten und das Mischen von Texturen. Wie Befehls- und Steuergeräte auch diese konstante Funktion in der Natur. Was sie tun und wie sie funktionieren, ist für Benutzer, die die GPU programmieren und verwenden, völlig transparent.




Lassen Sie uns dies zusammenstellen und eine GPU erstellen:




Der orangefarbene Block ist die Einheit, die Texturen mit dem sogenannten verarbeitet Texturabbildungseinheiten (TMU'lar) - TA Texturadressierung Volume - Erstellt Speicherorte für den Cache und den lokalen Speicher - und TF Textur nicht mitbringen sammelt Texturwerte aus dem Speicher und setzt sie zusammen. Heutzutage sind TMUs bei allen Anbietern nahezu gleich, da sie mehrere Texturwerte pro GPU-Taktzyklus verarbeiten, abtasten und mischen können.




Der folgende Block schreibt die Farbwerte der Pixel in den Rahmen, tastet sie zurück (PO) und mischt (PB). Dieser Block führt auch Operationen aus, die verwendet werden, wenn Anti-Aliasing angewendet wird. Der Name dieses Blocks: Ausgabeeinheit rendern or Backend erstellen (Kurz ROP / RB). Wie die TMU werden sie mittlerweile zum Standard und verarbeiten bequem einige Pixel pro Taktzyklus.

Unsere Basis-GPU wäre jedoch selbst nach den Standards vor 13 Jahren schrecklich gewesen. Warum?

Es gibt nur eine FPU, TMU und ROP. Im Jahr 2006 hatten Nvidias Grafikprozessoren wie die GeForce 8800 GTX 128, 32 bzw. 24. Also lasst uns anfangen, etwas dagegen zu unternehmen ...




Wie jeder gute Prozessorhersteller haben wir die GPU durch Hinzufügen weiterer Einheiten aktualisiert. Dies bedeutet, dass der Chip mehr Anweisungen gleichzeitig verarbeiten kann. Um dies zu unterstützen, haben wir einige weitere Caches hinzugefügt, diesmal jedoch direkt neben den Logikeinheiten. Je näher der Cache an einer Taschenrechnerstruktur liegt, desto schneller kann er in den ihm zugewiesenen Transaktionen initialisiert werden.

Das Problem bei unserem neuen Design ist, dass nur noch ein Controller für unsere zusätzlichen ALUs verfügbar ist. Es wäre besser, wenn wir mehr Einheitenblöcke hätten, die alle von ihren eigenen separaten Controllern verwaltet werden, da dies bedeutet, dass wir gleichzeitig sehr unterschiedliche Operationen ausführen können.

Das ist mehr! Separate ALU-Blöcke, die mit ihren eigenen TMUs und ROPs gefüllt sind und von köstlich leckeren, schnellen Cache-Slices unterstützt werden. Es ist immer noch nur eines von allem, aber die Grundstruktur ist keine Million Meilen von dem Grafikprozessor entfernt, den wir heute auf Computern und Konsolen sehen.

Navi ve Turing: Godzilla GPU'ları

Nachdem wir das Grundlayout eines Grafikchips definiert haben, obwohl es leicht vergrößert und verarbeitet wurde, um verschiedene Strukturen hervorzuheben, haben Navi vs. Beginnen wir mit unserem Turing-Vergleich.

Auf der linken Seite befindet sich der neueste Prozessor von AMD. Das allgemeine Chipdesign heißt Navi (einige heißen Navi 10) und die Grafikarchitektur heißt RDNA. Rechts daneben befindet sich der TU102-Prozessor von Nvidia in voller Größe mit der neuesten Turing-Architektur. Es ist wichtig zu beachten, dass diese Bilder nicht skaliert sind: Die Fläche des Navi-Stempels beträgt 251 mm2, während TU102 752 mm2 beträgt. Der Nvidia-Prozessor ist groß, aber nicht achtmal größer als das AMD-Angebot!

Beide kolossal die Anzahl der Transistoren (10,3 gegenüber 18,6 Milliarden), aber TU102 hat durchschnittlich ~ 25 Millionen Transistoren pro mm² im Vergleich zu 41 Millionen pro Quadratzentimeter von Navi.

Dies liegt daran, dass beide Chips zwar von TSMC hergestellt werden, jedoch in unterschiedlichen Prozessknoten hergestellt werden: Nvidias Turing befindet sich in der ausgereiften 12-nm-Produktionslinie, während AMDs Navi im neueren 7-nm-Knoten hergestellt wird.

Nur ein Blick auf die Bilder der Formen sagt nicht viel über Architekturen aus. Schauen wir uns also die von beiden Unternehmen erstellten GPU-Blockdiagramme an.

Die Diagramme sind keine 100% realistische Darstellung der tatsächlichen Layouts. Wenn Sie sie jedoch um 90 Grad drehen, können die verschiedenen Blöcke und der Mittelstreifen definiert werden, die auf beiden angezeigt werden. Zunächst können wir sehen, dass die beiden GPUs eine allgemeine Struktur wie unsere haben (obwohl mehr als alles andere!).

Beide Designs folgen einem mehrschichtigen Ansatz, wie alles angeordnet und gruppiert ist. Um Navi zu verwenden, besteht die GPU aus zwei Blöcken, nach denen AMD sucht. Shader-Motoren (SE) heißt jeder von ihnen 2 Blöcke asynchron Computermotoren (AS). Jeder von diesen enthält 5 Blöcke im Titel. Arbeitsgruppenprozessoren (WGPs), die aus 2 besteht Informationsverarbeitungseinheiten (Öze).

Namen und Nummern sind für das Turing-Design unterschiedlich, aber die Hierarchie ist sehr ähnlich: 6 Grafikverarbeitungscluster (GPC), jeweils 6 Texturverarbeitungscluster (TPC), jeweils 2 Stream Multiprozessor (SM) Blöcke.

Wenn Sie einen Grafikprozessor als eine große Fabrik betrachten, in der verschiedene Abteilungen unterschiedliche Produkte mit denselben Rohstoffen herstellen, macht diese Organisation Sinn. Der CEO der Fabrik sendet alle betrieblichen Details an das Unternehmen und teilt sie dann in verschiedene Aufgaben und Arbeitslasten auf. Mehr als eine haben, unabhängig Die Produktivität der Belegschaft wurde im Werk gesteigert. Bei GPUs ist das nicht anders und hier ist das magische Schlüsselwort zeitliche Koordinierung.

Front und Mitte, Soldat - Timing und Versand

Wie wir sehen Übungen zur Erstellung von 3D-SpielenWir haben gesehen, dass der Grafikprozessor nichts anderes als ein superschneller Taschenrechner ist, indem er eine Reihe von mathematischen Operationen an Millionen von Datenelementen ausführt. Navi und Turing werden wie folgt klassifiziert: Einzelbefehl Mehrere Daten (SIMD) Prozessoren, aber eine bessere Erklärung Single Way Multi Faden (Sinn).

Ein modernes 3D-Spiel erzeugt Hunderte von Threads, manchmal Tausende, da die Anzahl der zu rendernden Eckpunkte und Pixel enorm ist. Um sicherzustellen, dass alles in nur wenigen Mikrosekunden erledigt ist, ist es wichtig, so viele Logikeinheiten wie möglich zu haben, ohne alles anzuhalten, da sich die erforderlichen Daten nicht am richtigen Ort befinden oder nicht genügend Ressourcen vorhanden sind, um darin zu arbeiten.

Als wir uns anschauten, wie die Erstellung von 3D-Spielen funktioniert, stellten wir fest, dass ein Grafikprozessor nichts anderes als ein wirklich schneller Taschenrechner ist, und führten verschiedene mathematische Operationen mit Millionen von Daten durch. Navi und Turing werden als SIMD-Prozessoren (Single Command Multiple Data) klassifiziert. Eine bessere Erklärung wäre jedoch SIMT (Single Command Multiple Threads).

Navi und Turing arbeiten ähnlich, sodass eine Zentraleinheit alle Threads aufnimmt und sie dann programmiert und sendet. Im AMD-Chip diese Rolle Grafikbefehlsprozessor;; Nvidia'da, GigaThread Motoru. Die Threads sind so angeordnet, dass diejenigen mit denselben Anweisungen zu einer Sammlung von 32 Gruppen zusammengefasst werden.

AMD diese Sammlung Wellewährend Nvidia dies Krümmung. Für Navi kann eine Recheneinheit 2 Wellen (oder eine Welle von 64 Threads, aber dieser Vorgang dauert doppelt so lange) verarbeiten, und in Turing läuft ein Stream-Multiprozessor mit 4 Warps. In beiden Designs ist die Welle / Verzerrung unabhängig, was bedeutet, dass die anderen sie nicht beenden müssen, bevor sie beginnen.

Bis dahin ist es zwischen Navi und Turing nicht viel anders - beide wurden entwickelt, um eine große Anzahl von Threads zum Erstellen und Berechnen von Workloads zu verarbeiten. Wir müssen uns ansehen, welche Prozessoren diese Threads sind, um zu sehen, wo sich die beiden GPU-Riesen im Design trennen.

Executive Difference - RDNA und CUDA

Während der Großteil der verwendeten Terminologie gleich zu sein scheint, verfolgen AMD und Nvidia einen etwas anderen Ansatz für kombinierte Shader-Einheiten. Nvidias Hinrichtungseinheiten (Wunder Saat) Digital in der Natur - dies bedeutet, dass eine Einheit eine mathematische Operation an einer Datenkomponente ausführt; Im Gegensatz zu AMD-Einheiten (Stream-Prozessoren) arbeiten an Vektoren - eine Operation für mehrere Datenkomponenten. Es gibt nur eine bestimmte Einheit für skalare Operationen.

Bevor wir uns die Ausführungseinheiten genauer ansehen, wollen wir AMDs eigene Modifikationen untersuchen. 7 Jahre lang folgten Radeon-Grafikkarten einer Architektur namens Graphics Core Next (GCN). Jeder neue Chip überarbeitete verschiedene Aspekte des Designs, aber sie waren im Grunde alle gleich.

AMD präsentierte eine kurze Geschichte der GPU-Architektur:

GCN war eine Weiterentwicklung von TeraScale, einem Design, mit dem große Wellen gleichzeitig verarbeitet werden können. Die Hauptsache bei TeraScale war, dass es für Programmierer nicht sehr einfach war und sehr spezifische Routinen benötigte, um das Beste zu bekommen. GCN hat dies behoben und eine viel besser zugängliche Plattform bereitgestellt.

Die CUs in Navi wurden im Rahmen des AMD-Verbesserungsprozesses gegenüber GCN erheblich überarbeitet. Jede CU enthält zwei Sätze:

  • 32 SP (IEE754 FP32- und INT32-Vektor-ALUs)
  • 1 SFU
  • 1 INT32 skaliert ALU
  • 1 Zeit- und Liefereinheit

Außerdem enthält jede CU 4 Gewebeeinheiten. Es gibt andere Einheiten zum Ausführen von Lese- / Schreibvorgängen für Daten aus dem Cache, die in der folgenden Abbildung jedoch nicht dargestellt sind:

Im Vergleich zu GCN sieht das Setup einer RDNA-CU möglicherweise nicht sehr unterschiedlich aus, aber alles, was hier wichtig ist, ist auf diese Weise organisiert und organisiert. Zunächst hat jeder Satz von 32 SP eine eigene Anweisungseinheit, GCN hatte nur ein Programm für 4 Sätze von 16 SP.

Dies ist eine wichtige Änderung, dh, dass eine Welle von 32 Threads pro Taktzyklus an jeden SP-Satz geliefert werden kann. Die RDNA-Architektur ermöglicht es Vektoreinheiten auch, Wellen von 16 Threads mit der doppelten Geschwindigkeit und Wellen von 64 Threads in der Hälfte zu verarbeiten, sodass Code, der für alle vorherigen Radeon-Grafikkarten geschrieben wurde, weiterhin unterstützt wird.

Diese Änderungen werden bei Spieleentwicklern sehr beliebt sein.

Für skalare Operationen gibt es jetzt zwei Einheiten, die damit umgehen können. Die einzige Reduzierung der Anzahl der Komponenten erfolgt in Form von SFUs - das sind Spezialfunktion Einheitenführt sehr spezifische mathematische Operationen aus, z. trigonometrisch (Sinus, Tangens), reziprok (1 geteilt durch eine Zahl) und Quadratwurzeln. RDNA hat weniger davon als GCNs, aber jetzt können sie mit doppelt so großen Datensätzen wie zuvor arbeiten.

Diese Änderungen werden bei Spieleentwicklern sehr beliebt sein. Bei älteren Radeon-Grafikkarten gab es viele potenzielle Leistungen, die jedoch sehr schwierig waren. Jetzt hat AMD einen großen Schritt unternommen, um die Latenz bei der Verarbeitung von Anweisungen zu verringern und Funktionen beizubehalten, um die Abwärtskompatibilität für alle für die GCN-Architektur entwickelten Programme sicherzustellen.

Was ist mit professioneller Grafik oder dem Computermarkt? Sind diese Änderungen auch für sie von Vorteil?

Die kurze Antwort lautet ja (wahrscheinlich). Die aktuelle Version des Navi-Chips der ähnlichen Radeon RX 5700 XT verfügt über weniger Stream-Prozessoren als das vorherige Vega-Design wir haben besser abgeschnitten Die Radeon RX Vega 56 der vorherigen Generation ist ganz einfach:

Ein Teil dieses Leistungsgewinns ist auf die höhere Taktrate des RX 5700 XT als beim RX Vega 56 zurückzuführen (sodass mehr Pixel pro Sekunde in den lokalen Speicher geschrieben werden können), sinkt jedoch bei der höchsten Ganzzahl- und Gleitkomma-Leistung um bis zu 15%. Wir haben jedoch festgestellt, dass der Navi-Chip 18% besser abschneidet als der Vega.

Wissenschaftler, die professionelle Rendering-Programme und komplexe Algorithmen ausführen, platzen nicht mit ein paar Runden Battlefield V in ihrer Arbeit (d. H. könnte sein...) nur wenn Skalar-, Vektor- und Matrixoperationen, die in einer Spiel-Engine ausgeführt werden, schneller verarbeitet werden Schiff verwandeln Sie es in den Computermarkt. Derzeit wissen wir nicht, was AMD für den professionellen Markt plant - sie passen gut zur Vega-Architektur und tragen zur Verbesserung von Design und Herstellung bei. Angesichts der Fortschritte bei Navi verschiebt das Unternehmen jedoch alles auf die neue Architektur.

Das GPU-Design von Nvidia hat seit 2006, als die GeForce 8-Serie auf den Markt kam, eine ähnliche Entwicklung durchlaufen, wenn auch weniger radikale Änderungen als AMD. Diese GPU hat die erste Tesla-Architektur erstellt, die einen First-Shader-Ansatz in der Ausführungsarchitektur verwendet. Unten sehen wir die Änderungen in SM-Blöcken von Nachfolger von Tesla (Fermi) zu Turings Vorgänger (Volta):

Wie bereits in diesem Artikel erwähnt, CUDA-Kernel Digital. Sie können einen Float- und einen Integer-Befehl pro Taktzyklus für eine Datenkomponente ausführen (beachten Sie jedoch, dass der Befehl selbst mehrere Taktzyklen zur Verarbeitung benötigen kann), aber die Zeiteinheiten ordnen sie in Gruppen an und können Vektoroperationen für einen Programmierer ausführen. Die wichtigste Änderung im Laufe der Jahre besteht darin, dass nicht nur mehr Einheiten vorhanden sind, sondern auch, wie sie organisiert und segmentiert sind.

Im Kepler-Design hatte der vollständige Chip 5 GPCs, die jeweils drei SM-Blöcke enthielten; Als Pascal auftauchte, wurden GPCs in separate Partitionen (TPC) mit zwei SMs pro TPC aufgeteilt. Wie beim Navi-Design. Diese Fragmentierung ist wichtig, damit die allgemeine GPU so vollständig wie möglich genutzt werden kann. Mehrere unabhängige Befehlssätze können parallel verarbeitet werden, wodurch die Schattierungs- und Rechenleistung des Prozessors erhöht wird.

Werfen wir einen Blick auf Turing, das der RDNA Computing Unit entspricht:

Ein SM enthält 4 Transaktionsblöcke, die jeweils Folgendes enthalten:

  • 1 Befehlsplanungs- und Versandeinheit
  • 16 IEE754 FP32 skaliert ALU
  • 16 INT32 skaliert ALU
  • 2 Tensorfarben
  • 4 SFU
  • 4 Laden / Speichern (Ausführen von Lese- / Schreibvorgängen im Cache)

Es gibt auch 2 FP64-Einheiten pro SM, aber Nvidia zeigt sie nicht mehr in Blockdiagrammen an und jede SM verfügt über 4 Textureinheiten (einschließlich Texturadressierungs- und Texturfiltersysteme) und 1 RT-Kern (Ray Tracing).

FP32- und INT32-ALUs können gleichzeitig und parallel arbeiten. Dies ist eine wichtige Funktion, da 3D-Rendering-Engines häufig Gleitkommaberechnungen erfordern, jedoch eine angemessene Anzahl einfacher Ganzzahloperationen (z. B. Datenadressberechnungen) durchgeführt werden muss.

Tensorkerne sind spezielle ALUs, die Matrixoperationen ausführen. Matrizen sind 'quadratische' Datenarrays und Tensorkerne laufen auf einer 4 x 4-Matrix. Das FP16 ist für die Verarbeitung von INT8- oder INT4-Datenkomponenten ausgelegt, sodass der Float-Betrieb in einem Taktzyklus bei 64 FMA (Fused Multiply-Post-Add) erfolgt. Diese Art der Berechnung wird aufgerufen Neuronale Netze und Inferenz - nicht gerade üblich in 3D-Spielen, aber stark von Facebook-Likes in Autos mit Social-Media-Analysealgorithmen oder selbstfahrenden Systemen verwendet. Navi kann auch Matrixberechnungen durchführen, benötigt dafür jedoch eine große Anzahl von SP. Im Turing-System können Matrixoperationen ausgeführt werden, während CUDA-Kerne andere Berechnungen durchführen.

RT Core ist eine weitere Spezialeinheit der Turing-Architektur, die sehr spezifische mathematische Algorithmen ausführt, die für das Ray-Tracing-System von Nvidia verwendet werden. Eine vollständige Analyse dieses Themas würde den Rahmen dieses Artikels sprengen. RT Core sind jedoch zwei Systeme, die getrennt vom Rest des SM arbeiten. Während RT Core also mit Berechnungen beschäftigt ist, kann es mit Peak- oder Pixel-Shadern arbeiten. für Raytracing.

Auf der Basisebene verfügen Navi und Turing über Ausführungseinheiten, die einen ziemlich ähnlichen Funktionsumfang bieten (eine Anforderung, die sich aus der Einhaltung der Anforderungen von Direct3D, OpenGL usw. ergibt).

Auf der Basisebene verfügen Navi und Turing über Ausführungseinheiten, die einen ziemlich ähnlichen Funktionsumfang bieten (eine Anforderung, die sich aus der Einhaltung der Anforderungen von Direct3D, OpenGL usw. ergibt), die jedoch einen ganz anderen Ansatz für die Funktionsweise dieser Funktionen verfolgen. fertig. Wenn es darum geht, welches Design besser ist, kommt es darauf an, wie sie verwendet werden: FP32, ein Programm, das Vektorberechnungen erstellt, und eine große Anzahl von Threads, die wenig Leistung erbringen, würden Navi bevorzugen, während ein Programm mit einer Vielzahl von Ganzzahl-, Gleitkomma-, Skalar- und Vektorberechnungen Turings Flexibilität bietet. bevorzugt usw.

Speicherhierarchie

Moderne GPUs sind so konzipiert, dass sie eine Reihe von Vorgängen auf Stream-Prozessoren ausführen, dh an jedem Element in einem Datenstrom. Dies macht sie weniger flexibel als eine Allzweck-CPU und erfordert auch die Optimierung der Speicherhierarchie des Chips, um Daten und Anweisungen so schnell wie möglich und in so vielen Streams wie möglich an ALUs zu empfangen. Dies bedeutet, dass GPUs weniger Cache als die CPU haben, da der größte Teil des Chips für die Größe des Caches und nicht für den Cache-Zugriff reserviert werden muss.

Sowohl AMD als auch Nvidia verwenden mehrere Caches innerhalb von Chips. Schauen wir uns also zuerst an, was Navi packt.

Ausgehend von der untersten Ebene in der Hierarchie verwenden zwei Blöcke von Stream-Prozessoren (normalerweise) ein 256-Pfund-Vektor-Allzweckregister Logdatei) War die gleiche Menge wie Vega, aber zwischen 4 SP-Blöcken; Das Auslaufen der Register beim Versuch, eine große Anzahl von Threads zu verarbeiten, beeinträchtigt die Leistung erheblich. Dies ist also definitiv eine "gute Sache". AMD hat auch die skalare Aufnahmedatei erheblich erweitert. Früher waren es nur 4 kiB, jetzt sind es 32 kg pro Skalareinheit.

Die beiden Recheneinheiten teilen sich dann einen 32-Pfund-L0-Cache und einen 16-Pfund-Skalardaten-Cache, aber jede CU empfängt ihren eigenen 32-Pfund-Vektor-L0-Cache. Das Verbinden des gesamten Speichers mit ALUs erfolgt über eine lokale Datenfreigabe von 128 Pfund.

In Navi erstellen zwei Computing Engines einen Arbeitsgruppenprozessor, von denen fünf die Asynchronous Computing Engine (ACE) bilden. Jeder ACE hat Zugriff auf seinen eigenen 128-Pfund-L1-Cache, und die gesamte GPU wird weiterhin von 4 MiB L2-Caches unterstützt, die mit L1-Caches und anderen Teilen des Prozessors verbunden sind.

Da das System ausschließlich für die Verarbeitung von 16 GDDR6-Speichercontrollern verwendet wird, handelt es sich um eine Form der proprietären Infinity Fabric-Konnektivitätsarchitektur von AMD. Um die Speicherbandbreite zu maximieren, verwendet Navi auch eine verlustfreie Farbkomprimierung zwischen L1, L2 und nativem GDDR6-Speicher.

Auch dies ist im Vergleich zu früheren AMD-Chips, die nicht genügend Cache auf niedriger Ebene für die Anzahl der enthaltenen Schattierungseinheiten hatten, besonders zu begrüßen. Kurz gesagt, mehr Cache bedeutet mehr interne Bandbreite, weniger träge Anweisungen (weil sie mehr Daten aus dem Speicher abrufen müssen) usw. Und das bedeutet einfach eine bessere Leistung.

In Bezug auf Turings Hierarchie muss gesagt werden, dass Nvidia schüchtern ist, wenn es darum geht, fundiertes Wissen in diesem Bereich bereitzustellen. Zu Beginn dieses Artikels haben wir gesehen, dass jeder SM in 4 Transaktionsblöcke aufgeteilt ist - jeder hat eine kleinere 64-Pfund-Protokolldatei als die in Navi gefundene, aber denken Sie daran, dass Turings ALUs Skalare und keine Vektoren sind. , Einheiten.

Als nächstes können 96 KB gemeinsam genutzter Speicher für jede VM als 64 KB L1-Datencache und 32 KB Gewebe-Cache oder zusätzlicher Aufzeichnungsspeicher verwendet werden. Im "Rechenmodus" kann der gemeinsam genutzte Speicher in verschiedene Partitionen unterteilt werden, z. B. 32 KB gemeinsam genutzten Speicher und 64 KB L1-Cache, jedoch immer als 64 + 32-Teilungen.

Der Mangel an Details über das Turning-Speichersystem hat uns dazu veranlasst, mehr zu wollen. Deshalb haben wir uns an ein GPU-Forschungsteam gewandt, das bei Citadel Enterprise Americas arbeitet. Kürzlich veröffentlichten sie zwei Artikel. Zeit ve Turing Architekturen; Das obige Bild zeigt die Fragmentierung der Speicherhierarchie im TU104-Chip (vollständiger TU102 Sport 6144 kiB L2-Cache).

Das Team bestätigte, dass der L1-Cache-Durchsatz 64 Bit pro Zyklus betrug, und gab an, dass die Effizienz des L1-Cache von Turing beim Testen die beste aller GPUs von Nvidia war. Dies ist mit Navi vergleichbar, obwohl der AMD-Chip eine höhere Leserate für den lokalen Datenspeicher, aber eine niedrigere Rate für Anweisungen / feste Caches aufweist.

Beide GPUs verwenden GDDR6 für den lokalen Speicher - dies ist die neueste Version von Graphics DDR SDRAM - und beide verwenden 32-Bit-Verbindungen zu Speichermodulen Radeon RX 5700 XT Es verfügt über 256 Speicherchips und bietet eine Spitzenbandbreite von 256 GiB / s und 8 GiB Speicherplatz. einer GeForce RTX 2080 Ti Mit dem TU102-Chip funktioniert es mit 11 solchen Modulen für 352 GiB / s Bandbreite und 11 GiB Speicher.

Die Dokumentation von AMD kann manchmal verwirrend erscheinen: Im ersten Blockdiagramm sehen wir, dass Navi vier 64-Bit-Speichercontroller zeigt, während ein späteres Bild 16 Controller zeigt. In Anbetracht Samsung bietet nur 32-Bit-GDDR6 an Es scheint, dass das zweite Bild zeigt, wie viele Verbindungen zwischen dem Infinity Fabric-System und den Speichercontrollern bestehen. Es gibt wahrscheinlich nur 4 Speichercontroller und jeder verwendet zwei Module.

Insgesamt scheint es keinen großen Unterschied zwischen Navi und Turing zu geben, wenn es um ihre Caches und den lokalen Speicher geht. Navi kommt mit seinen größeren Befehls- / Konstanten- und L1-Caches der Ausführungsseite etwas näher, aber beide sind vollgepackt, beide verwenden nach Möglichkeit Farbkomprimierung und beide haben viele benutzerdefinierte GPU-Muster für den Speicherzugriff und wird verwendet, um die Bandbreite zu maximieren.

Dreiecke, Texturen und Pixel

Vor fünfzehn Jahren haben GPU-Hersteller viel darüber getan, wie viele Dreiecke ihre Chips verarbeiten können, wie viele Texturelemente pro Zyklus gefiltert werden können und wie ROP-Ausgabeeinheiten (ROPs) gerendert werden können. Diese Aspekte sind auch heute noch wichtig, aber der Fokus liegt viel mehr auf der Ausführungsseite, da 3D-Rendering-Technologien mehr Rechenleistung erfordern als jemals zuvor.

Um jedoch darauf hinzuweisen, dass es in diesen Bereichen keinen sofort erkennbaren Unterschied zwischen Navi und Turing gibt, sollten Textureinheiten und ROPs noch untersucht werden. In beiden Architekturen können Textureinheiten 4 Texturelemente verarbeiten und abrufen, sie in einem einzelnen Element unbekannt filtern und sie alle in einem Taktzyklus zwischenspeichern (wobei die zusätzlichen Taktschleifen ignoriert werden, die zum Abrufen von Daten aus dem lokalen Speicher benötigt werden).

Die Anordnung der ROP / RBs unterscheidet sich geringfügig zwischen Navi und Turing, ist jedoch nicht zu groß: Der AMD-Chip verfügt über 4 RBs pro ACE und kann jeweils 4 gemischte Pixel pro Taktzyklus ausgeben. Bei Turing hat jeder GPC zwei RBs mit jeweils 8 Pixeln pro Stunde. Die ROP-Anzahl der GPU ist wirklich ein Maß für diese Pixelausgabegeschwindigkeit. Ein vollständiger Navi-Chip liefert also 64 Pixel pro Stunde und eine vollständige TU102 96 (aber denken Sie daran, dass dies ein größerer Chip ist).

Es gibt weniger Informationen auf der Dreiecksseite der Dinge. Was wir wissen ist, dass Navi immer noch maximal 4 Grundelemente pro Taktzyklus (1 pro ACE) liefert, aber es gibt nichts mehr darüber, ob AMD das Problem mit diesem Problem behoben hat. Primitive Shader. Dies war ein stark angepriesenes Merkmal von Vega und ermöglichte es Programmierern, viel mehr Kontrolle über Primitive zu haben, so dass die Ausbeute an Primitiven um 4 Faktoren erhöht werden kann. Funktionalität von Treibern entfernt Das Produkt ist kurz nach seiner Einführung und seitdem inaktiv.

Während Sie noch auf weitere Informationen zu Navi warten, wäre es unklug, weiter zu spekulieren. Turing verarbeitet auch 1 Grundelement pro Stunde pro GPC (d. H. Bis zu 6 für die vollständige TU102-GPU) in Raster-Engines, aber auch Mesh ShaderBietet die gleiche Funktionalität wie die Primitive Shaders von AMD. Direct3D ist kein OpenGL- oder Vulkan-Feature-Set, kann jedoch über API-Erweiterungen verwendet werden.

Dies scheint Turing einen Vorteil gegenüber Navi in ​​Bezug auf den Umgang mit Dreiecken und Grundelementen zu verschaffen, aber derzeit gibt es nicht genügend genaue Informationen im öffentlichen Bereich.

Nicht alles über Durchsetzungseinheiten

Es gibt andere Aspekte von Navi und Turing, die es wert sind, verglichen zu werden. Zunächst verfügen beide GPUs über hochentwickelte Display- und Media-Engines. Der erste verarbeitet die Ausgabe an den Monitor, der zweite codiert und decodiert die Videostreams.

Wie Sie es von einem neuen GPU-Design für 2019 erwarten würden, bietet die Display-Engine von Navi sehr hohe Auflösungen bei hohen Bildwiederholraten und HDR-Unterstützung. Flusskomprimierung anzeigen (DSC) ist ein schneller verlustbehafteter Komprimierungsalgorithmus, mit dem Übertragungen mit einer Auflösung von 4K + bei Bildwiederholfrequenzen über 60 Hz über eine DisplayPort 1.4-Verbindung übertragen werden können. Glücklicherweise ist die Verschlechterung der Bildqualität so gering, dass Sie den DSC als nahezu verlustfrei betrachten.

Turing unterstützt auch DisplayPort mit DSC-Verbindungen, aber die unterstützte Kombination aus hoher Auflösung und Bildwiederholfrequenz ist etwas besser als Navi: 4K HDR bei 144 Hz - der Rest ist der gleiche.

Die Media Engine von Navi ist so modern wie die Display Engine und Erweiterte Videocodierung (H.264) und Hocheffiziente Videocodierung (H.265), wiederum bei hohen Auflösungen und hohen Bitraten.

Die Video-Engine von Turing ist ungefähr die gleiche wie die von Navi, aber die Unterstützung der 8K30-HDR-Codierung kann für einige Leute das Gleichgewicht zugunsten von Turing verbessern.

Es gibt noch andere Aspekte zu vergleichen (zum Beispiel die PCI Express 4.0-Schnittstelle von Navi oder NV Link von Turing), aber unabhängig davon, wie gut gekleidet und vermarktet sie sind, sind sie wirklich winzige Teile der Gesamtarchitektur. Dies liegt daran, dass diese einzigartigen Funktionen für die überwiegende Mehrheit der potenziellen Benutzer nicht wichtig sind.

Like-for-Like-Vergleich

Dieser Artikel ist eine Beobachtung des architektonischen Designs, der Merkmale und der Funktionalität. Ein direkter Leistungsvergleich wäre jedoch ein guter Weg, um eine solche Analyse durchzuführen. Das Koppeln des Navi-Chips auf einer Radeon RX 5700 XT in einer GeForce RTX 2080 Ti mit dem Turing TU102-Prozessor in einer GeForce RTX 2080 Ti wäre jedoch nicht besonders fair, da letztere fast doppelt so viele kombinierte Shader-Einheiten aufweist. Es gibt jedoch eine Version des Turing-Chips, die für einen Vergleich verwendet werden kann. Diese ist in der GeForce RTX 2070 Super enthalten.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Architektonisch Navi 10 | rDNA TU104 | Turing
Prozess 7 nm TSMC 12 nm TSMC
Formfläche (mm2) 251 545
Transistoren (Milliarden) 10.3 13.6
Blockprofil 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 SM
Kombinierte Shader-Kerne 2560 SP 2560 WUNDER
TMUs 160 160
ROPS 64 64
Grundzeit 1605 MHz 1605 MHz
Spieluhr 1755 MHz n / a
Boost-Stunde 1905 MHz 1770 MHz
Erinnerung 8 GB 256-Bit-GDDR6 8 GB 256-Bit-GDDR6
Speicherbandbreite 448 GBit / s 448 GBit / s
Thermal Design Power (TDP) 225 Watt 215 W.

Es ist erwähnenswert, dass der RTX 2070 Super kein "voller" TU104-Chip ist (einer der GPCs ist deaktiviert), daher sind alle diese 13.6-Transistoren inaktiv, was bedeutet, dass die Chips in Bezug auf die Anzahl der Transistoren ungefähr gleich sind. Auf den ersten Blick sehen die beiden GPUs sehr ähnlich aus, insbesondere wenn Sie nur Shader-Einheiten, TMUs, ROPs und Hauptspeichersysteme berücksichtigen.

Im Nvida-Prozessor kann ein SM 32 gleichzeitige Warps verarbeiten, und mit jedem Warp von 32 Threads kann eine vollständig geladene GeForce RTX 2070 Super auf 40.960 Threads über den gesamten Chip ausgeführt werden. Für Navi kann eine CU SIMD32 16 Wellen pro ALU empfangen und jede Welle besteht aus 32 Strängen. Somit kann die Radeon RX 5700 XT auch bis zu 40.960 Threads verpackt werden. Es mag so aussehen, als wären sie genau hier, aber angesichts der unterschiedlichen Anordnung der CU / SMs und des Vorteils von Nvidia bei gleichzeitiger INT- und FP-Verarbeitung hängt das Ergebnis weitgehend vom ausgeführten Code ab.

Welche Auswirkung hat dies auf verschiedene Spielleistungen, da der Code einer 3D-Engine einen Build gegenüber einem anderen bevorzugt, je nachdem, welche Art von Anweisungen routinemäßig an die GPU gesendet werden. Dies, testete zwei Grafikkarten:

Alle im Test verwendeten Spiele wurden für die GCN-Architektur von AMD direkt für mit Radeon ausgestattete PCs oder über GCN-GPUs auf der PlayStation 4 oder Xbox One programmiert. Es ist möglich, dass einige der kürzlich eingeführten auf die Änderungen von RDNA vorbereitet sind, aber Unterschiede in den Benchmark-Ergebnissen sind eher auf die Rendering-Engines und die Art und Weise zurückzuführen, wie Anweisungen und Daten verarbeitet werden.

Was bedeutet das alles? Ist eine Architektur wirklich besser als eine andere? Turing bietet dank Tensor und RT Cores sicherlich mehr Kapazität als Navi, aber letzteres konkurriert definitiv in Bezug auf die 3D-Rendering-Leistung. Die Unterschiede in den 12 Spielbeispielen sind nicht präzise genug, um ein endgültiges Urteil zu fällen.

Und das sind gute Nachrichten für uns.

Letzte Worte

AMDs Navi-Pläne wurde vorgestellt Sie strebten den Start 2018 im Jahr 2016 an und obwohl sie nicht viel sagten. Wenn dieses Datum kommt und geht Straßenkarte geändert Es war jedoch klar, dass Navi in ​​einen 7-nm-Prozessknoten eingebaut werden würde und sich das Design auf die Verbesserung der Leistung konzentrieren würde.

Dies war definitiv der Fall, und wie wir in diesem Artikel gesehen haben, hat AMD architektonische Änderungen vorgenommen, damit Nvidia mit seinen gleichwertigen Angeboten konkurrieren kann. Das neue Design kommt mehr als nur PC-Benutzern zugute, da wir wissen, dass Sony und Microsoft in der kommenden Zeit eine Variante des Chips verwenden werden. Playstation 5 ve sonraki xbox.

Wenn Sie zum Anfang dieses Artikels zurückkehren und sich noch einmal das strukturelle Design von Shader Motors, die Gesamtchipgröße und die Anzahl der Transistoren ansehen, besteht eindeutig die Möglichkeit, dass ein "großer Navi" -Chip Spitzenwerte erreicht. neueste Grafikkarte; AMD hat ziemlich genau bestätigt, dass dies Teil seiner aktuellen Pläne sein und darauf abzielen sollte, die Architektur und den Herstellungsprozess in den nächsten zwei Jahren zu verbessern.

Aber was sind die Pläne für Nvidia, Turing und seinen Nachfolger? Überraschenderweise hat das Unternehmen wenig bestätigt. Im Jahr 2014 Nvidia Aktualisierte GPU-Roadmap Planung der Pascal-Architektur für den Start 2016 (und Erreichen dieses Ziels). Im Jahr 2017 Tesla kündigte den V100 anEs war dieser Entwurf, der Turing 2018 unter Verwendung der Volta-Architektur herausbrachte.

Seitdem war es ziemlich ruhig und wir mussten uns auf Gerüchte und Nachrichtenschnipsel verlassen, die oft dasselbe sagen: Nvidias nächste Architektur wird Ampere heißen, Hergestellt von Samsung Es verwendet den 7-nm-Prozessknoten und ist für 2020 geplant. Abgesehen davon gibt es nichts anderes, um fortzufahren. Es ist unwahrscheinlich, dass der neue Chip die Tradition bricht, indem er sich auf skalare Ausführungseinheiten konzentriert, oder es ist unwahrscheinlich, dass Aspekte wie Tensorkerne fallengelassen werden, da dies zu erheblichen Abwärtskompatibilitätsproblemen führt.

Dennoch können wir einige vernünftige Vorhersagen darüber treffen, wie die nächste Nvidia-GPU aussehen wird. Das Unternehmen hat viel Zeit und Geld investiert. Ray Tracingund seine Unterstützung nur in Spielen erhöhen, ansteigen;; Daher können wir eine Verbesserung des RT-Kerns in Bezug auf Fähigkeiten oder Anzahl pro SM erwarten. Wenn man 7 nm Prozessknoten Wenn dies zutrifft, wird Nvidia wahrscheinlich eher auf eine Leistungsreduzierung als auf eine direkte Erhöhung der Taktrate abzielen, damit die Anzahl der GPCs erhöht werden kann. Es ist auch möglich, 7 nm zu überspringen und Nvidia zu starten. Gerade für 5 nm Um einen Vorteil gegenüber AMD zu erlangen.

Anscheinend AMD und Nvidia, diskrete Grafikkarte Der Markt von Intel, wie wir ihn kennen, plant einen Wiedereinstieg in diese Branche. Rufen Sie 20 Jahre. Dieses neue Produkt (derzeit Xes) Kann auf dem gleichen Level wie Navi und Turing antreten.

Inzwischen hat Intel den GPU-Markt in diesen zwei Jahrzehnten überlebt, indem es integrierte Grafiken für seine CPUs erstellt hat. Intels neueste GPU Gen 11Es ähnelt der AMD-Architektur, da es Vektor-ALUs verwendet, die FP32- und INT32-Daten verarbeiten können. Wir wissen jedoch nicht, ob die neuen Grafikkarten eine direkte Weiterentwicklung dieses Designs darstellen.

Sicher ist, dass die nächsten Jahre sehr interessant sein werden, da drei Giganten von Siliziumstrukturen weiterhin um unsere Geldbörsen kämpfen. Neue GPU-Designs und -Architekturen werden Transistornummern, Cache-Größen und Shader-Eigenschaften herausfordern. Navi und RDNA sind die neuesten und haben gezeigt, dass jeder Schritt nach vorne einen kleinen Unterschied machen kann.

Einkaufsverknüpfungen:

Dieser Artikel wurde ursprünglich am 7. August 2019 veröffentlicht. Im Rahmen unserer # ThrowbackThursday-Initiative haben wir ein wenig überarbeitet und sind abgestürzt.