Deep Learning GPU Benchmarks 2022
Ü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