Was ist der Unterschied zwischen CUDA Cores und Tensor Cores? (erklärt) - Alle Unterschiede

 Was ist der Unterschied zwischen CUDA Cores und Tensor Cores? (erklärt) - Alle Unterschiede

Mary Davis

CUDA- und Tensor-Kerne sind Produkte, die von einem Unternehmen namens Nvidia entwickelt wurden. Was sind also CUDA- und Tensor-Kerne? CUDA steht für Compute Unified Device Architecture. Die CUDA-Kerne befinden sich in Ihren GPUs, Smartphones und sogar in Ihren Autos, wie die Nvidia-Entwickler sagen.

CUDA-Kerne sind eine Plattform für parallele Berechnungen und eine Anwendungsprogrammierschnittstelle (API), die es Software ermöglicht, bestimmte Arten von Grafikverarbeitungseinheiten (GPUs) für die allgemeine Verarbeitung zu nutzen.

Tensor Cores hingegen, die ebenfalls von Nvidia entwickelt wurden, werden auch in GPUs verwendet. Tensor Cores ermöglichen Berechnungen mit gemischter Genauigkeit, indem sie Berechnungen dynamisch anpassen, um den Durchsatz zu erhöhen und gleichzeitig die Genauigkeit beizubehalten.

Einfach ausgedrückt, sind diese Kerne ein wichtiger Teil der GPUs in Ihrem PC, um bestimmte Berechnungen durchzuführen. CUDA-Kerne werden verwendet, um zwei Zahlen zu multiplizieren und sie zu einer anderen Zahl zu addieren.

Der Tensor-Kern ist derselbe, aber mit 4×4-Matrizen. Diese Berechnungen beschleunigen im Grunde das Rendering von Grafiken für Sie.

Was ist CUDA?

Compute Unified Device Architecture, kurz CUDA, entwickelt von Nvidia, veröffentlicht am 23. Juni 2007, ist eine Plattform für parallele Berechnungen und eine Programmierschnittstelle (API).

Dies ermöglicht es der Software, bestimmte Arten von Grafikprozessoren (GPUs) für die allgemeine Verarbeitung zu nutzen, eine Methode, die als "General-Purpose Computing on GPUs" (GPU) bekannt ist.

CUDA ist eine Softwareschicht, die direkten Zugriff auf den virtuellen Befehlssatz des Grafikprozessors und die parallelen Rechenelemente für die Ausführung von Rechenkernen bietet. CUDA wurde für die Arbeit mit verschiedenen Programmiersprachen wie C, C++ und Fortran entwickelt.

Die Möglichkeit, mit verschiedenen Programmiersprachen zu arbeiten, macht es für Spezialisten in der parallelen Programmierung einfacher, die GPU-Ressourcen zu nutzen, wenn man sie von früheren APIs wie Direct3D oder OpenGL unterscheidet, für die man fortgeschrittenere Kenntnisse in der grafischen Programmierung benötigt.

GPUs mit CUDA unterstützen auch Programmier-Frameworks wie OpenMP, OpenACC, OpenCL und auch HIP, die solchen Code zu CUDA kompilieren können. Der erste Name für CUDA war ein Akronym für Compute Unified Device Architecture. Später ließ Nvidia jedoch das allgemein verwendete Akronym fallen.

Eine leistungsstarke Nvidia-Grafikkarte GTX 1080 Ti

Mehr über CUDA

Als spezialisierter Computerprozessor erfüllt der Grafikprozessor (GPU) die Anforderungen von rechenintensiven 3D-Grafikaufgaben in Echtzeit.

Um 2012 entwickelten sich die GPUs weiter und wurden zu hochparallelen Multicore-Systemen, die eine effektive Datenverarbeitung für große Blöcke ermöglichen.

Bei der parallelen Verarbeitung großer Datenblöcke ist dieses Konzept den allgemeinen Zentraleinheiten (CPUs) für Algorithmen wie z. B.:

  • kryptografische Hash-Funktionen
  • maschinelles Lernen
  • Molekulardynamik-Simulationen
  • Physikmotoren
  • Sortieralgorithmen

Anwendungen der CUDA Architektur heute und in Zukunft

  • Beschleunigtes Rendering von 3D-Grafiken
  • Beschleunigte Interkonvertierung von Videodateiformaten
  • Beschleunigte Verschlüsselung, Entschlüsselung und Komprimierung
  • Bioinformatik, z. B. NGS-DNA-Sequenzierung BarraCUDA
  • Verteilte Berechnungen, z. B. zur Vorhersage der nativen Konformation von Proteinen
  • Simulationen medizinischer Analysen, z. B. virtuelle Realität auf der Grundlage von CT- und MRT-Bildern
  • Physikalische Simulationen, insbesondere in der Fluiddynamik
  • Training neuronaler Netze bei Problemen des maschinellen Lernens
  • Gesichtserkennung
  • Projekte zum verteilten Rechnen, wie [email protected] und andere Projekte, die BOINC verwenden
  • Molekulare Dynamik
  • Mining von Kryptowährungen
  • Struktur aus Bewegung (SfM) Software

Was ist ein Tensorkern?

Spezialisierte Cores, sogenannte Tensor Cores, ermöglichen das Mixed-Precision-Training. Die erste Generation dieser spezialisierten Cores tut dies mit einem Fused-Multiply-Add-Algorithmus. Damit ist es möglich, zwei 4 x 4 FP16-Matrizen zu einer 4 x 4 FP16- oder FP32-Matrix zu multiplizieren und zu addieren.

Das Endergebnis ist FP32 mit nur geringem Genauigkeitsverlust. Mixed-Precision-Computing wird als solches bezeichnet, auch wenn die Eingabematrizen möglicherweise FP16 mit geringer Genauigkeit sind.

In der Praxis führt dies zu einer erheblichen Beschleunigung der Berechnungen, ohne die endgültige Effektivität des Modells zu beeinträchtigen. Diese Fähigkeit wurde durch spätere Mikroarchitekturen auf noch ungenauere Zahlendarstellungen erweitert.

Die erste Generation wurde mit der Volta-Mikroarchitektur ab V100 eingeführt. Mit jeder neuen GPU-Mikroarchitektur wurden mehr Formate für die Berechnung von Zahlen zur Verfügung gestellt.

Im folgenden Abschnitt werden wir darüber sprechen, wie sich die Kapazität und Funktionalität von Tensor Cores mit jeder Mikroarchitekturgeneration verändert und verbessert hat.

Ein grafisch gerendertes Bild von einem Titan V

Wie funktionieren Tensor Cores?

Erste Generation:

Die Volta-GPU-Mikroarchitektur war in der ersten Generation der Tensor Cores enthalten, die das Training mit gemischter Präzision und dem FP16-Zahlenformat ermöglichten.

Dies könnte bei bestimmten GPUs zu einem bis zu 12-fachen Anstieg des TeraFLOP-Durchsatzes führen. 640 Kerne der Top-Tier-V100 bieten eine bis zu 5-fache Steigerung der Leistungsgeschwindigkeit gegenüber den Pascal-GPUs der vorherigen Generation.

Zweite Generation:

Mit der Einführung der Turing-GPUs wurde die zweite Generation von Tensor-Cores eingeführt. Int8, Int4 und Int1 wurden zur Liste der unterstützten Tensor-Core-Präzisionen hinzugefügt, die zuvor auf FP16 beschränkt waren.

Dank der gemischt präzisen Trainingsverfahren konnte der Leistungsdurchsatz der GPU im Vergleich zu Pascal-GPUs um das bis zu 32-fache gesteigert werden.

Dritte Generation:

Die Architektur eines Ampere-Grafikprozessors erweitert die früheren Fortschritte der Volta- und Turing-Mikroarchitekturen um die Unterstützung von FP64-, TF32- und bfloat16-Präzisionen.

Deep-Learning-Training und Inferenzaktivitäten werden durch diese Formate mit zusätzlicher Präzision erheblich beschleunigt. Das TF32-Format beispielsweise funktioniert ähnlich wie FP32 und garantiert darüber hinaus eine bis zu 20-fache Beschleunigung, ohne dass der Code geändert werden muss.

Mit nur wenigen Zeilen Code wird die automatische Implementierung der gemischten Präzision das Training um das Doppelte beschleunigen.

NVLink der dritten Generation, um blitzschnelle Multi-GPU-Interaktionen zu ermöglichen, Ray-Tracing-Kerne der dritten Generation und Spezialisierung auf spärliche Matrixmathematik sind weitere Aspekte der Ampere-Mikroarchitektur .

Siehe auch: Thee vs. Thou vs. Thy vs. Ye (Der Unterschied) - All The Differences

Vierte Generation:

Eine zukünftige Version der auf der Hopper-Mikroarchitektur basierenden vierten Generation von Tensor Cores ist geplant. Die Tensor Cores der vierten Generation im nächsten H100.

die voraussichtlich im März 2022 auf den Markt kommen wird, wird FP8-Präzisionsformate verarbeiten können und laut NVIDIA riesige Sprachmodelle "um das 30-fache gegenüber der vorherigen Generation" beschleunigen.

Eine RTX-Grafikkarte wird für das sehr schnelle Rendern von Grafiken verwendet, da sie Tensor-Kerne enthält.

Der Unterschied zwischen CUDA Cores und Tensor Cores

Tensor-Kerne sind derzeit auf Titan V und Tesla V100 beschränkt. Die 5120 CUDA-Kerne auf beiden GPUs haben eine maximale Kapazität von einer Multiplikations-Akkumulations-Operation mit einfacher Genauigkeit (z.B. in fp32: x += y * z) pro GPU-Takt (z.B. Tesla V100 PCIe-Frequenz ist 1,38Gz).

Jeder Tensorkern arbeitet mit 4×4 kleinen Matrizen für kleine Matrizen. Pro GPU-Takt kann jeder Tensorkern eine Matrix-Multiplikations-Akkumulations-Operation durchführen.

Er multipliziert zwei 4×4-FP16-Matrizen und addiert die 4×4-FP32-Matrix, die sich im Akkumulator ergibt (der ebenfalls eine 4×4-FP32-Matrix ist).

Siehe auch: Was ist der Unterschied zwischen einer Gemeinde, einem Landkreis und einem Stadtbezirk in den USA? - Alle Unterschiede

Da die Eingabematrizen fp16 und die Multiplikationsergebnisse und der Akkumulator fp32 sind, wird der Algorithmus als "mixed precision" bezeichnet.

Der korrekte Begriff wäre wahrscheinlich einfach "4×4-Matrixkerne", aber das NVIDIA-Marketingteam hat sich für "Tensorkerne" entschieden.

Tensor-Kerne - eine vollständige Erklärung in Kürze

GPU-Karte CUDA Kerne VRAM
GeForce GTX 1660 Ti 1536 6GB
GeForce GTX 1660 Super 1408 6GB
GeForce GTX 1660 1408 6GB
GeForce GTX 1650 Super 1408 4GB
GeForce GTX 1650 1024 und 896 4GB
GeForce GTX 1060 3GB 1280 4GB
GeForce GTX 1650 1280 3GB
GeForce GTX 1060 6GB 768 6GB
GeForce GTX 1050 Ti (3GB) 768 4GB
GeForce GTX 1050 (2GB) 640 3GB
GeForce GTX 960 1024 2GB
GeForce GTX 950 786 2GB
GeForce GTX 780 Ti 2880 2GB
GeForce GTX 780 2304 3GB
GeForce GTX 750 Ti 640 2 GB
GeForce GTX 750 512 1 GB oder 2 GB

GPUs, die CUDA Kerne enthalten

Schlussfolgerung

  • CUDA und Tensor-Cores sind Produkte, die beide von einem Unternehmen namens Nvidia entwickelt wurden. CUDA steht für Compute Unified Device Architecture. Diese CUDA-Cores befinden sich in Ihren GPUs, Smartphones und sogar in Ihren Autos.
  • Tensor-Cores, die ebenfalls von Nvidia entwickelt wurden, werden hingegen auch in GPUs eingesetzt. Spezialisierte Cores, die sogenannten Tensor-Cores, ermöglichen das Training mit gemischter Genauigkeit. Die erste Generation der Tensor-Cores ermöglichte das Training mit gemischter Genauigkeit und dem Zahlenformat FP16.
  • Dies könnte bei bestimmten GPUs einen bis zu 12-fachen Anstieg des TeraFLOP-Durchsatzes zur Folge haben. Int8, Int4 und Int1 wurden der Liste der unterstützten Tensor Core-Präzisionen hinzugefügt.
  • Durch gemischte Präzisions-Trainingsverfahren konnte die Leistung der GPU um das bis zu 32-fache gesteigert werden. Eine zukünftige Version der auf der Hopper-Mikroarchitektur basierenden vierten Generation von Tensor Cores ist geplant.

Andere Artikel

    Mary Davis

    Mary Davis ist Autorin, Content-Erstellerin und begeisterte Forscherin, die sich auf Vergleichsanalysen zu verschiedenen Themen spezialisiert hat. Mit einem Abschluss in Journalismus und über fünf Jahren Erfahrung in diesem Bereich hat Mary eine Leidenschaft dafür, ihren Lesern unvoreingenommene und unkomplizierte Informationen zu liefern. Ihre Liebe zum Schreiben begann bereits in jungen Jahren und war eine treibende Kraft hinter ihrer erfolgreichen Karriere als Schriftstellerin. Marys Fähigkeit, zu recherchieren und Ergebnisse in einem leicht verständlichen und ansprechenden Format zu präsentieren, hat sie bei Lesern auf der ganzen Welt beliebt gemacht. Wenn sie nicht gerade schreibt, reist Mary gerne, liest und verbringt Zeit mit Familie und Freunden.