Deep Learning GPU Benchmarks 2022

Im Folgenden bieten wir einen Überblick über die Deep-Learning Leistung aktueller High-End-GPUs. Enthalten sind die neuesten Angebote von NVIDIA: Die Hopper- und Ada-Lovelace- GPU-Generation. Auch die Leistung von Multi-GPU-Setups wird bewertet.

Table of contents

Übersicht der getesteten GPUs

Obwohl wir nur eine kleine Auswahl aller verfügbaren GPUs getestet haben, sind wir der Meinung, dass wir die GPUs abgedeckt haben, die aufgrund ihrer Rechen- und Speicherkapazitäten und ihrer Kompatibilität mit den aktuellen Deep-Learning-Frameworks, nämlich Pytorch und Tensorflow, derzeit am besten für Deep-Learning-Entwicklung und -Training geeignet sind.

Zur aktualisierten Version der Benchmarks: Deep Learning GPU Benchmark

Als Referenz werden auch die schon etwas in die Jahre gekommenen GPUs Geforce GTX 1080 Ti, RTX 2080 Ti und Tesla V100 einbezogen, um den Anstieg der Rechenleistung in den letzten Jahren zu visualisieren.

GTX 1080TI

Suitable for: Workstations

Launch Date: 2017.03

Architecture: Pascal

VRAM Memory (GB): 11 (GDDR5X)

Cuda Cores: 3584

Tensor Cores: -

Power Consumption (Watt): 250

Memory Bandwidth (GB/s): 484

Geforce RTX 2080TI

Suitable for: Workstations

Launch Date: 2018.09

Architecture: Turing

VRAM Memory (GB): 11 (DDR6)

Cuda Cores: 5342

Tensor Cores: 544

Power Consumption (Watt): 260

Memory Bandwidth (GB/s): 616

QUADRO RTX 5000

Suitable for: Workstations/Servers

Launch Date: 2018.08

Architecture: Turing

VRAM Memory (GB): 16 (GDDR6)

Cuda Cores: 3072

Tensor Cores: 384

Power Consumption (Watt): 230

Memory Bandwidth (GB/s): 448

Geforce RTX 3090

Suitable for: Workstations/Servers 

Launch Date: 2020.09 

Architecture: Ampere 

VRAM Memory (GB): 24 (GDDR6X) 

Cuda Cores: 10496 Tensor Cores: 328 

Power Consumption (Watt): 350 

Memory Bandwidth (GB/s): 936

RTX A5000

Suitable for: Workstations/Servers 

Launch Date: 2021.04 

Architecture: Ampere 

VRAM Memory (GB): 24 (GDDR6) 

Cuda Cores: 8192 

Tensor Cores: 256 

Power Consumption (Watt): 230 

Memory Bandwidth (GB/s): 768

RTX A5500

Suitable for: Workstations/Servers 

Launch Date: 2022.03 

Architecture: Ampere 

VRAM Memory (GB): 24 (GDDR6) 

Cuda Cores: 10240 

Tensor Cores: 220 

Power Consumption (Watt): 230 

Memory Bandwidth (GB/s): 768

RTX A6000

Suitable for: Workstations/Servers 

Launch Date: 2020.10 

Architecture: Ampere 

VRAM Memory (GB): 48 (GDDR6) 

Cuda Cores: 10752 

Tensor Cores: 336 

Power Consumption (Watt): 300 

Memory Bandwidth (GB/s): 768

Geforce RTX 4090

Suitable for: Workstations 

Launch Date: 2022.10 

Architecture: Ada Lovelace 

VRAM Memory (GB): 24 (GDDR6X) 

Cuda Cores: 16384 

Tensor Cores: 512 

Power Consumption (Watt): 450 

Memory Bandwidth (GB/s): 1008

RTX 6000 Ada

Suitable for: Workstations/Servers 

Launch Date: 2022.09 

Architecture: Ada Lovelace 

VRAM Memory (GB): 48 (GDDR6) 

Cuda Cores: 18176 

Tensor Cores: 568 

Power Consumption (Watt): 300 

Memory Bandwidth (GB/s): 960

Tesla V100

Suitable for: Servers 

Launch Date: 2017.05 

Architecture: Volta 

VRAM Memory (GB): 16 (HBM2) 

Cuda Cores: 5120 

Tensor Cores: 640 

Power Consumption (Watt): 250 

Memory Bandwidth (GB/s): 900

A100

Suitable for: Servers 

Launch Date: 2020.05 

Architecture: Ampere 

VRAM Memory (GB): 40/80 (HBM2) 

Cuda Cores: 6912 

Tensor Cores: 512 

Power Consumption (Watt): 300 

Memory Bandwidth (GB/s): 1935 (80 GB PCIe)

H100

Suitable for: Servers 

Launch Date: 2022.10 

Architecture: Grace Hopper 

VRAM Memory (GB): 80 (HBM2) 

Cuda Cores: 14592 

Tensor Cores: 456 

Power Consumption (Watt): 350 

Memory Bandwidth (GB/s): 2000

Der Deep Learning Benchmark

Für unsere Performance-Messung wird das visuelle klassifizierer Model ResNet50 in Version 1.5 verwendet. Als klassisches Deep-Learning-Netzwerk mit seiner komplexen 50-Schichten-Architektur mit verschiedenen Faltungs- und Residual-Schichten ist es immer noch ein geeignetes Netzwerk für die Messung der erreichbaren Deep-Learning-Leistung. Da es in vielen Benchmarks verwendet wird, ist eine nahezu optimale Implementierung verfügbar, welche die maximale Leistung aus der GPU herausholt und dabei aufzeigt, wo die tatsächlichen Leistungsgrenzen der Hardware liegen.

Der Vergleich der GPUs wurde mit synthetischen Zufallsbilddaten durchgeführt, um einen Einfluss externer Faktoren wie der Art des Datensatzes (SSD oder HDD), des Dataloaders und des Datenformats zu vermeiden.

In Bezug auf die verwendeten Einstellungen sind zwei wichtige Punkte zu beachten: Die erste ist die XLA-Funktion, eine Tensorflow-Optimierung, die vor einiger Zeit als stabil erklärt wurde, standardmäßig aber noch immer ausgeschaltet ist. XLA (Accelerated Linear Algebra) optimiert den Netzgraphen, indem es Teile des Netzes speziell für die jeweilige Hardware in optimierte GPU-Kernel kompiliert. Dies kann Leistungsvorteile von 10% bis 30% im Vergleich zu den statischen Tensorflow-Kerneln für verschiedene Schichttypen bringen. Diese Funktion kann durch eine einfache Option oder ein Umgebungsflag aktiviert werden und maximiert die Ausführungsleistung.

Der zweite Punkt ist die Verwendung von Mixed Precision. Bei Inferenzaufgaben ist eine niedrigere Fließkommagenauigkeit die Standardmethode zur Leistungssteigerung. Für die meisten Trainingssituationen kann Float-16bit-Präzision auch für Trainingsaufgaben mit vernachlässigbarem Verlust an Trainingsgenauigkeit verwendet werden, was Trainingsaufgaben deutlich beschleunigen kann. Die Anwendung der Float-16bit-Präzision ist nicht trivial, da die Modellschichten entsprechend angepasst werden müssen. Da nicht alle Berechnungsschritte mit einer niedrigeren Bitgenauigkeit durchgeführt werden sollten, wird das Mischen verschiedener Bitauflösungen für die Berechnung als Mixed Precision bezeichnet.

Die für den Benchmark verwendeten Tensorflow 2 Python-Skripte sind als Tensorflow2 Benchmark auf Github verfügbar.

Die Testumgebung

Der AIME A4000 Server und die AIME T600 Workstation sind optimierte Umgebungen für den Betrieb mehrerer Hochleistungs-GPUs. Sie bieten einerseits eine ausgeklügelte Stromversorgung und Kühlung, die notwendig ist, um die maximale Leistung zu erreichen und 24/7 zu halten, und andererseits die Möglichkeit, jede GPU in einem PCIe-4.0-x16-Steckplatz zu betreiben, der ohne Switches, direkt mit der CPU verbunden ist.

Die technischen Spezifikationen für die Reproduzierbarkeit unserer Benchmarks sind:

Für Server geeignete GPUs: AIME A4000, AMD EPYC 7543 (32 cores), 128 GB ECC RAM

Für GPUs nur montierbar in Workstations: AIME T600, AMD Threadripper Pro 5955WX (16 cores), 128 GB ECC RAM

Unter Anwendung der AIME Machine Learning Container (MLC) Management Ungebung mit folgender Konfiguration:

  • Ubuntu 20.04
  • NVIDIA Treiber Version 520.61.5
  • CUDA 11.2
  • CUDNN 8.2.0
  • Tensorflow 2.9.0 (official build)

Da die NVIDIA H100, RTX 6000 Ada und die RTX 4090 vom offiziellen Tensorflow-Build nicht unterstützt werden, wurde die folgende Konfiguration für die NVIDIA H100, RTX 6000 Ada und die RTX 4090 GPU verwendet:

  • CUDA 11.8
  • CUDNN 8.6.0
  • Tensorflow 2.9.1 (NVIDIA build)

Single-GPU-Leistung

Das Ergebnis unserer Messungen wird mit der Anzahl der durchschnittlich verarbeiteten Bilder pro Sekunde angegeben, die über eine Dauer von 50 Batches mit der angegeben Batchgröße trainiert werden können. Es wurde der Durchschnitt von drei Durchläufen ermittelt. Die Starttemperatur aller GPUs lag dabei unter 50° Celsius.

Die Beschleunigung mit GPUs im Vergleich zu einer 32-Kern-CPU steigt hier um mehrere Größenordnungen, was GPU-Computing nicht nur machbar, sondern für leistungsstarke Deep-Learning-Aufgaben zwingend erforderlich macht.

Die Messungen mit 16 Bit Mixed Precision Training:

Die Ergebnisse zeigen, dass durch die Verwendung von Mixed Precision die Leistung bis ins Dreifache gesteigert werden kann.

Multi-GPU Deep Learning Trainingsleistung

Die nächste Stufe zur Steigerung der Deep-Learning-Leistung besteht darin, die Arbeits- und Trainingslast auf mehrere GPUs zu verteilen. Der AIME A4000 Server und der AIME T600 Workstation unterstützt bis zu 4 GPUs.

Deep Learning lässt sich über mehrere GPUs hinweg gut skalieren. Die am häufigsten verwendete Methode für die Multi-GPU-Skalierung, die in mindestens 90% der Fälle eingesetzt wird, ist die Verteilung des Batche auf die verfügbaren GPUs. Daher ist die effektive Batch-Größe die Summe der Batch-Größen der verwendeten GPUs.

Dabei berechnet jede GPU die Propagations für die angelegten Eingaben des Batch-Bereichs. Die Ergebnisse jeder GPU werden dann summiert, gemittelt und die Gewichte des Modells werden entsprechend angepasst. Das Ergebniss muss wieder an alle GPUs zurück übertragen werden.

Nach der Berechnung eines Batches findet das Maximum der Kommunikationslast statt, da dann die Ergebnisse der Batches gesammelt und die Gewichte angepasst werden. Dieser Vorgang muss abgeschlossen sein, bevor der nächste Batch gestartet werden kann. Während die GPUs an einem Batch arbeiten, findet kaum oder überhaupt keine Kommunikation zwischen den GPUs statt.

Bei dieser Standardlösung für die Multi-GPU-Skalierung muss sichergestellt sein, dass alle GPUs mit der gleichen Geschwindigkeit arbeiten, ansonsten ist die langsamste GPU der Engpass, auf den alle GPUs warten müssen. Daher ist das Mischen verschiedener GPU-Typen beim Skalieren nicht sinnvoll.

Die nächsten beiden Diagramme zeigen, wie gut die RTX 3090 bei Verwendung von single und mixed precision skaliert.

Es wird ein guter linearer und konstanter Skalierungsfaktor von etwa 0,9 erreicht, was bedeutet, dass jede zusätzliche GPU etwa 90 % der theoretischen linearen Leistung hinzufügt. Der gleiche Skalierungsfaktor wird auch mit Mixed Precission Berechnungen erzielt.

Fazit

Mixed Precision kann das Training um mehr als den Faktor 2 beschleunigen

Es zeigt sich, dass es sich für eine Leistungssteigerung lohnen kann, das Training von Float 32-Präzision auf Mixed-Precision-Training umzustellen. Das Anpassen der Software an die jeweiligen Anforderungen könnte ein sehr effizienter Schritt sein, um die Leistung zu verdoppeln.

Multi-GPU-Skalierung ist mehr als machbar

Deep-Learning-Leistungsskalierung im Multi-GPU-Betrieb skaliert zumindest für bis zu 4x GPUs sehr gut. Die Verwendung von 2x GPUs übertrifft in den meisten Fällen die nächst leistungsstärkere GPU in Bezug auf Preis und Leistung.

Die parallele Verwendung verschiedener GPU-Typen ist nicht sinnvoll.

Was ist die beste GPU für Deep Learning?

Die Rechenleistung ist mit Sicherheit der wichtigste Aspekt einer GPU, die für Deep-Learning-Aufgaben verwendet wird, allerdings nicht der einzige Entscheidungsfaktor.

Im Folgenden listen wir unsere Einschätzungen für die vielversprechendsten Deep-Learning-GPUs auf:

RTX 3090

Die RTX 3090 ist nach wie vor das Flaggschiff der RTX-Ampere-Generation. Mit einem aktuell unschlagbaren Preis-/Leistungsverhältnis, dies gilt auch am Ende des Jahres 2022 noch. Nur Leistungsverbesserungen oder eine Preisanpassung der neuesten GPU-Generation werden dies ändern.

RTX A5000

Der kleine Bruder der RTX 3090. In einer ähnlichen Preisklasse wie die RTX 3090 und mit einem beeindruckenden Leistung/Energieverbrauch-Verhältnis ist die RTX A5000 eine sehr interessante Alternative zur RTX 3090 geworden.

RTX A6000

Der größere Bruder der RTX 3090 bzw. A5000. Mit ihren 48 GB GDDR6-Speicher ist sie eine zukunftssichere Version der RTX 3090, um auch langfristig größer werdende Deep Learning Modelle laden zu können.

NVIDIA A100 (40 GB / 80 GB)

Wenn die höchste Leistung oder höchste Leistungsdichte unabhängig vom Preis benötigt wird, ist die NVIDIA A100 die erste Wahl: Sie bietet in allen Kategorien die meiste Rechenleistung.

Auch fällt der geringere Stromverbrauch von 250/300 Watt einer A100 im Vergleich zu 700 Watt eines dualen RTX 3090-Setups mit vergleichbarer Leistung in einen Bereich, in dem bei anhaltender Voll-Last der Unterschied bei der Kühlung und Energiekosten zu einem zu berücksichtigenden Faktor werden kann.

Bei Lösungen, für deren Ausführung eine Virtualisierung unter einem Hypervisor erforderlich ist, z. B. für Cloud-Dienste, ist die NVIDIA A100 derzeit die beste Option für High-End-Deep-Learning-Trainingsaufgaben.

Ein Octa-NVIDIA A100-Setup, wie es mit dem AIME A8000 möglich ist, katapultiert einen in den mehreren petaFLOPS HPC-Leistungsbereich.

RTX 4090

Die erste verfügbare NVIDIA GPU der Ada Lovelace Generation. Die ersten Ergebnisse sind vielversprechend aber die Kompatibilität mit aktuellen Deep-Learning-Frameworks ist noch in Arbeit. Insbesondere die Multi-GPU-Unterstützung funktioniert noch nicht zuverlässig (Dezember 2022). Daher ist die RTX 4090 GPU derzeit nur als Single-GPU-System empfehlenswert.

NVIDIA H100

Die NVIDIA H100 ist erst seit Ende 2022 verfügbar und daher fehlt es noch ein wenig an der Integration in Deep Learning Frameworks (Tensorflow / Pytorch). Da NVIDIA mit der CUDA Version 12 größere Leistungsverbesserungen versprochen hat, muss das volle Potenzial der H100 erst noch frei geschaltet werden. Wir sind neugierig.

Zur aktualisierten Version der Benchmarks: Deep Learning GPU Benchmark

Fragen oder Anmerkungen? Bitte kontaktieren Sie uns unter: hello@aime.info

Spread the word

Weiter lesen...