AMD Compute Units vs. Nvidia CUDA Cores: Was ist der Unterschied?

Wenn Sie Nvidia und AMD verfolgt haben, kennen Sie wahrscheinlich die Spezifikationen ihrer GPUs, die diese beiden Unternehmen gerne verwenden. Nvidia betont zum Beispiel gerne die Anzahl der CUDA-Kerne, um sein Angebot von AMDs Karten zu unterscheiden, während AMD dasselbe mit seinen Compute Units tut.

Aber was bedeuten diese Begriffe eigentlich? Ist ein CUDA-Kern dasselbe wie eine Recheneinheit? Wenn nicht, was ist dann der Unterschied?

Lassen Sie uns diese Fragen beantworten und sehen, was eine AMD-GPU von einer Nvidia-GPU unterscheidet.

Allgemeine Architektur einer GPU

Alle GPUs, egal ob von AMD, Nvidia oder Intel, funktionieren im Allgemeinen gleich. Sie haben die gleichen Schlüsselkomponenten und das Gesamtlayout dieser Komponenten ist auf einer höheren Ebene ähnlich.

Aus der Top-Down-Perspektive sind also alle GPUs gleich.

Wenn wir uns die spezifischen, proprietären Komponenten ansehen, die jeder Hersteller in seine GPU packt, werden die Unterschiede deutlich. Nvidia baut beispielsweise Tensor-Kerne in ihre GPUs ein, während AMD-GPUs keine Tensor-Kerne haben.

Ebenso verwendet AMD Komponenten wie den Infinity Cache, die Nvidia-GPUs nicht haben.

Um den Unterschied zwischen Compute Units (CUs) und CUDA-Kernen zu verstehen, müssen wir uns also zuerst die Gesamtarchitektur einer GPU ansehen. Sobald wir die Architektur verstehen und sehen, wie eine GPU funktioniert, können wir den Unterschied zwischen Compute Units und CUDA-Kernen deutlich erkennen.

Wie funktioniert eine GPU?

Das erste, was Sie verstehen müssen, ist, dass eine GPU Tausende oder sogar Millionen von Anweisungen gleichzeitig verarbeitet. Daher benötigt eine GPU viele kleine, hochparallele Kerne, um diese Anweisungen zu verarbeiten.

Diese kleinen GPU-Kerne unterscheiden sich von großen CPU-Kernen, die jeweils eine komplexe Anweisung pro Kern verarbeiten.

Eine Nvidia RTX 3090 hat beispielsweise 10496 CUDA-Kerne. Das Spitzenmodell AMD Threadripper 3970X hingegen hat nur 64 Kerne.

Daher können wir GPU-Kerne nicht mit CPU-Kernen vergleichen. Es gibt viele Unterschiede zwischen einer CPU und einer GPU, da die Ingenieure sie für unterschiedliche Aufgaben entwickelt haben.

Darüber hinaus sind im Gegensatz zu einer durchschnittlichen CPU alle GPU-Kerne in Clustern oder Gruppen angeordnet.

Schließlich verfügt ein Cluster von Kernen auf einer GPU über andere Hardwarekomponenten wie Texturverarbeitungskerne, Gleitkommaeinheiten und Caches

um Millionen von Anweisungen gleichzeitig zu verarbeiten. Diese Parallelität definiert die Architektur einer GPU. Vom Laden einer Anweisung bis zur Verarbeitung erledigt eine GPU alles nach den Prinzipien der Parallelverarbeitung.

  • Zuerst empfängt die GPU eine Anweisung zum Verarbeiten aus einer Warteschlange von Anweisungen. Diese Anweisungen sind fast immer überwiegend vektorbezogen.
  • Um diese Anweisungen zu lösen, leitet ein Thread-Scheduler sie anschließend zur Verarbeitung an einzelne Kerncluster weiter.
  • Nach dem Empfang der Anweisungen weist ein integrierter Kern-Cluster-Scheduler die Anweisungen Kernen oder Verarbeitungselementen zur Verarbeitung zu.
  • Schließlich verarbeiten verschiedene Kerncluster verschiedene Anweisungen parallel und die Ergebnisse werden auf dem Bildschirm angezeigt. Alle Grafiken, die Sie auf dem Bildschirm sehen, beispielsweise in einem Videospiel, sind also nur eine Sammlung von Millionen verarbeiteter Vektoren.
AMD Compute Units vs. Nvidia CUDA Cores: Was ist der Unterschied? - cuda vs compute units gpu architecture

Kurz gesagt, eine GPU hat Tausende von Verarbeitungselementen, die wir „Kerne“ nennen, die in Clustern angeordnet sind. Scheduler weisen diesen Clustern Arbeit zu, um Parallelität zu erreichen.

Was sind Recheneinheiten?

Wie im vorherigen Abschnitt zu sehen ist, verfügt jede GPU über Cluster von Kernen, die Verarbeitungselemente enthalten. AMD nennt diese Kerncluster „Compute Units“.

www.youtube.com/watch?v=uu-3aEyesWQ&t=202s

Compute Units sind eine Sammlung von Verarbeitungsressourcen wie parallele arithmetische und logische Einheiten (ALUs), Caches, Gleitkommaeinheiten oder Vektorprozessoren, Register und etwas Speicher zum Speichern von Thread-Informationen.

AMD Compute Units vs. Nvidia CUDA Cores: Was ist der Unterschied? - cuda vs compute units amd architecture

Der Einfachheit halber bewirbt AMD nur die Anzahl der Compute Units seiner GPUs und geht nicht auf die zugrunde liegenden Komponenten ein.

Wenn Sie also die Anzahl der Recheneinheiten sehen, stellen Sie sich diese als eine Gruppe von Verarbeitungselementen und allen zugehörigen Komponenten vor.

Was sind CUDA-Kerne?

Während AMD es bei der Anzahl der Compute Units gerne einfach hält, verkompliziert Nvidia die Dinge mit Begriffen wie CUDA-Kernen.

CUDA-Kerne sind nicht unbedingt Kerne. Sie sind nur Gleitkommaeinheiten, die Nvidia zu Marketingzwecken gerne als Kerne bezeichnet. Und wenn Sie sich erinnern, haben Core-Cluster viele integrierte Gleitkommaeinheiten. Diese Einheiten führen Vektorberechnungen durch und sonst nichts.

Sie als „Kern“ zu bezeichnen, ist also reines Marketing.

Daher ist ein CUDA-Kern ein Verarbeitungselement, das Gleitkommaoperationen ausführt. In einem Single-Core-Cluster können viele CUDA-Kerne vorhanden sein.

AMD Compute Units vs. Nvidia CUDA Cores: Was ist der Unterschied? - cuda vs compute units nvidia architecture

Schließlich nennt Nvidia Core-Cluster „Streaming Multiprocessors or SMs“. SMs entsprechen AMD Compute Units, da Compute Units selbst Kerncluster sind.

Was ist der Unterschied zwischen Recheneinheiten und CUDA-Kernen?

Der Hauptunterschied zwischen einer Compute Unit und einem CUDA-Kern besteht darin, dass sich ersterer auf einen Kerncluster und letzterer auf ein Verarbeitungselement bezieht.

Um diesen Unterschied besser zu verstehen, nehmen wir das Beispiel eines Getriebes.

Ein Getriebe ist eine Einheit aus mehreren Zahnrädern. Sie können sich das Getriebe als Recheneinheit und die einzelnen Zahnräder als Gleitkommaeinheiten von CUDA-Kernen vorstellen.

Mit anderen Worten, wo Compute Units eine Sammlung von Komponenten sind, stellen CUDA-Kerne eine spezifische Komponente innerhalb der Sammlung dar. Compute Units und CUDA-Kerne sind also nicht vergleichbar.

Dies ist auch der Grund, warum AMD die Anzahl der Compute Units für ihre GPUs im Vergleich zu konkurrierenden Nvidia-Karten und ihrer CUDA-Kernanzahl immer deutlich niedriger angibt. Ein günstigerer Vergleich wäre zwischen der Anzahl der Streaming-Multiprozessoren der Nvidia-Karte und der Anzahl der Compute Units der AMD-Karte.

Verwandte: AMD 6700XT vs. Nvidia RTX 3070: Was ist die beste GPU unter 500 US-Dollar?

CUDA-Kerne und Recheneinheiten sind unterschiedlich und nicht vergleichbar

Unternehmen haben die Angewohnheit, eine verwirrende Terminologie zu verwenden, um ihre Produkte im besten Licht zu präsentieren. Das verwirrt nicht nur den Kunden, sondern macht es auch schwer, den Überblick zu behalten.

Stellen Sie also sicher, dass Sie wissen, worauf Sie bei der Suche nach einer GPU achten müssen. Wenn Sie sich vom Marketing-Jargon fernhalten, wird Ihre Entscheidung viel besser und stressfreier.