Deep Learning Performance auf T4-GPUs mit MLPerf-Benchmarks
Summary: Informationen über die Turing-Architektur, die neueste GPU-Architektur von NVIDIA als Nachfolger der Volta-Architektur und die auf der Turing-Architektur basierenden neuen T4. ...
Symptoms
Cause
Resolution
Inhaltsverzeichnis:
Zusammenfassung
Die neueste GPU-Architektur von NVIDIA, als Nachfolger der Volta-Architektur, ist die Turing-Architektur und die neue T4 basiert auf der Turing-Architektur. Diese Architektur wurde für High-Performance-Computing (HPC), Training zu Deep Learning und Inferenz, maschinelles Lernen, Datenanalysen und Grafiken entwickelt. In diesem Blog wird die Performance beim Deep-Learning-Training von T4-GPUs in Dell EMC PowerEdge R740-Servern mit Benchmark-Suite MLPerf quantifiziert. Zudem wird die MLPerf-Performance in T4 mit V100-PCIe in ein und demselben Server mit ein und derselben Software verglichen.
Übersicht
Der Dell EMC PowerEdge R740 ist ein 2-Sockel-2-HE-Rack-Server. Das System verfügt über Intel Skylake Prozessoren, bis zu 24 DIMMs und bis zu 3 V100-PCIe mit 2-Steckplatz-Breite oder 4 T4-GPUs mit 1-Steckplatz-Breite in x16-PCIe-3.0-Steckplätzen. T4 ist der Name der GPU mit der neuesten NVIDIA Turing-Architektur. Die technischen Unterschiede zwischen T4 und V100-PCIe GPU sind in Tabelle 1 aufgeführt. Für die Bewertung der Performance der T4 bei Deep-Learing-Training wurde MLPerf genutzt. MLPerf ist ein von einer mannigfaltigen Gruppe aus Wissenschaft und Industrie wie Google, Baidu, Intel, AMD, Harvard und Stanford usw. zusammengestelltes Benchmarking-Tool zum Messen von Geschwindigkeit und Performance von Software und Hardware für maschinelles Lernen. Die erste veröffentlichte Version V0.5 umfasst Modellimplementierungen in verschiedenen Bereichen des maschinellen Lernens, einschließlich Bildklassifizierung, Objekterkennung und -segmentierung, maschinelle Übersetzung und bestärkendes Lernen. Die Zusammenfassung der für diese Evaluierung verwendeten MLPerf-Benchmarks ist in Tabelle 2 dargestellt. Es wurden die ResNet-50 TensorFlow-Implementierung der Google-Submission und alle Implementierungen aller anderen Modelle der NVIDIA-Submission verwendet. Alle Benchmarks wurden auf Bare-Metal ohne Container ausgeführt. Die für die Evaluierung verwendeten Hardware- und Software-Komponenten sind in Tabelle 3 aufgeführt. Die Performance der T4 in MLPerf-Benchmarks wird mit der V100-PCIe verglichen.
| Tesla V100-PCIe | Tesla T4 | |
|---|---|---|
| Architektur | Volta | Turing |
| CUDA-Cores | 5120 | 2560 |
| Tensor-Cores | 640 | 320 |
| Compute Capability | 7.0 | 7,5 |
| GPU-Takt | 1245 MHz | 585 MHz |
| Boost-Takt | 1380 MHz | 1590 MHz |
| Speichertyp | HBM2 | GDDR6 |
| Arbeitsspeicher | 16 GB / 32 GB | 16 GB |
| Bandbreite | 900 GB/s | 320 GB/s |
| Breite in Steckplätzen | Dual-Slot | Single-Slot |
| Single-Precision (FP32) | 14 TFLOPS | 8,1 TFLOPS |
| Mixed-Precision (FP16/FP32) | 112 TFLOPS | 65 TFLOPS |
| Double-Precision (FP64) | 7 TFLOPS | 254,4 GFLOPs |
| TDP | 250 W | 70 W |
Tabelle 1: T4 und V100-PCIe im Vergleich
| Bildklassifizierung | Objektklassifizierung | Objektinstanzsegmentierung | Übersetzung (wiederkehrend) | Übersetzung (nicht wiederkehrend) | Empfehlung | |
|---|---|---|---|---|---|---|
| Daten | ImageNet | COCO | COCO | WMT E-G | WMT E-G | MovieLens-20M |
| Datenumfang | 144 GB | 20 GB | 20 GB | 37 GB | 1,3 GB | 306 MB |
| Modell | ResNet-50 V1.5 | Single-Stage Detector (SSD) | Mask-R-CNN | GNMT | Transformator | NCF |
| Framework | TensorFlow | PyTorch | PyTorch | PyTorch | PyTorch | PyTorch |
Tabelle 2: Zur Evaluierung verwendete MLPerf-Benchmarks
| Plattform | PowerEdge R740 |
|---|---|
| CPU | 2 Intel Xeon Gold 6136 mit 3,0 GHz (SkyLake) |
| Arbeitsspeicher | 384 GB DDR4 mit 2.666 MHz |
| Storage | 782TB Lustre |
| GPU | T4, V100-PCIe |
| Betriebssystem und Firmware | |
| Betriebssystem | Red Hat® Enterprise Linux® 7.5 x86_64 |
| Linux-Kernel | 3.10.0-693.el7.x86_64 |
| BIOS | 1.6.12 |
| Für Deep Learning | |
| CUDA-Compiler und GPU-Treiber | CUDA 10.0.130 (410.66) |
| CUDNN | 7.4.1 |
| NCCL | 2.3.7 |
| TensorFlow | nightly-gpu-dev20190130 |
| PyTorch | 1.0.0 |
| MLPerf | V0.5 |
Tabelle 3: Hardwarekonfiguration und Software
Performance-Bewertung
Abbildung 1 zeigt die Performanceergebnisse von MLPerf auf T4 und V100-PCIe auf PowerEdge R740-Servern. Es sind sechs MLPerf-Benchmarks dargestellt. Zu jedem Benchmark wurde ein End-to-End-Model-Training ausgeführt, bis die vom MLPerf-Ausschuss festgelegte Sollgenauigkeit des Modells erreicht war. Zu jedem Benchmark ist die Trainingsdauer in Minuten dargestellt. Diese Ergebnisse lassen die folgenden Schlussfolgerungen zu:
-
Die Performance der Modelle ResNet-50 V1.5, SSD und Mask-R-CNN steigt mit zunehmender Anzahl von GPUs angemessen. Bei ResNet-50 V1.5 ist die V100-PCIe 3,6x schneller als die T4. Bei SSD ist die V100-PCI 3,3x bis 3,4x schneller als die T4. Bei Mask-R-CNN ist die V100-PCIe 2,2x bis 2,7x schneller als die T4. Bei derselben Anzahl von GPUs benötigen die T4 und die V100-PCIe bei allen Modellen fast dieselbe Anzahl von Epochen zum Konvergieren.
-
Beim Modell GNMT wurde eine superlineare Beschleunigung beobachtet, wenn mehr T4-GPUs verwendet wurden. Im Vergleich zu einer Einzel-T4 beträgt die Beschleunigung 3,1 bei zwei T4 und 10,4 bei vier T4. Dies liegt daran, dass die Konvergenz des Modells durch den für das Training des Daten-Shuffling und die Initialisierung der Wichtungen in neuronalen Netzwerken verwendeten Random Seed (Startwert Zufallsgenerator) beeinflusst wird. Mit unterschiedlichen Random Seeds benötigt das Modell möglicherweise eine unterschiedliche Anzahl von Epochen, um zu konvergieren, unabhängig von der Anzahl der GPUs. In diesem Experiment benötigte das Modell mit 1, 2, 3 bzw. 4 T4 12, 7, 5 bzw. 4 Epochen, um zu konvergieren. Mit 1, 2 bzw. 3 V100-PCIe benötigte das Modell 16, 12 bzw. 9 Epochen, um zu konvergieren. Da sich die Anzahl der Epochen selbst bei derselben Anzahl von T4- bzw. V100-GPUs erheblich unterscheidet, kann die Performance nicht unmittelbar verglichen werden. In diesem Szenario liefert die Throughput-Metrik einen fairen Vergleich, da sie nicht vom Random Seed abhängig ist. Abbildung 2 zeigt einen Vergleich des Throughputs zwischen der T4 und der V100-PCIe. Bei derselben Anzahl von GPUs ist die V100-PCIe 2,5x bis 3,6x schneller als die T4.
-
Das NCF-Modell und das Transformer-Modell weisen dasselbe Problem wie das GNMT-Modell auf. Beim NCF-Modell ist die Dataset-Größe klein und es dauert nicht lange, bis das Modell konvergiert. Daher tritt dieses Problem im Ergebnis nicht offen zutage. Beim Transformer-Modell mit nur einer GPU zeigt sich dasselbe Problem. Mit einer einzelnen T4 brauchte das Modell 12 Epochen bis zum Konvergieren, mit einer einzelnen V100-PCIe jedoch nur 8 Epochen. Bei zwei oder mehr GPUs benötigte das Modell 4 Epochen bis zum Konvergieren, unabhängig von Anzahl und Typ der GPUs. Die V100-PCIe ist in diesen Fällen 2,6x bis 2,8x schneller als die T4.



Abbildung 1: MLPerf-Ergebnisse zur T4 und zur V100-PCIe

Abbildung 2: Vergleich des Throughputs beim GNMT-Modell
Schlussfolgerungen und zukünftige Arbeiten
In diesem Blog haben wir die Performance von T4-GPUs auf Dell EMC PowerEdge R740-Servern anhand verschiedener MLPerf-Benchmarks bewertet. Die Performance der T4 wurde mit der Performance der V100-PCIe in demselben Server und mit derselben Software verglichen. Alles in allem ist V100-PCIe, in Abhängigkeit von den Charakteristiken der einzelnen Benchmarks, 2,2x bis 3,6x schneller als T4. Eine Beobachtung ist, dass einige Modelle stabil sind, unabhängig von den verwendeten Random Seeds, andere Modelle wie GNMT, NCF und Transformer sind jedoch stark vom Random Seed betroffen. In zukünftigen Arbeiten werden wir die Hyperparameter feinabstimmen, bis die instabilen Modelle mit weniger Epochen konvergieren. Außerdem führen wir MLPerf mit weiteren GPUs und auf weiteren Nodes aus, damit wird die Skalierbarkeit dieser Modelle auf PowerEdge-Servern bewerten können.
*Haftungsausschluss: Zum Zweck des Benchmarking wurden vier T4-GPUs im Dell EMC PowerEdge R740 evaluiert. Derzeit unterstützt der PowerEdge R740 offiziell maximal drei T4 in x16-PCIe-Steckplätzen.