Der Artikel wurde von Rakshith Vasudev & John Lockman, HPC AI Innovation Lab, im Oktober 2019 verfasst.
NGC-Container nvcr.io/nvidia/tensorflow:19.06- py3 |
Conda env-Versionen |
|
Framework |
TensorFlow 1.13.1 |
TensorFlow 1.12.0 |
Horovod |
0.15.1 |
0.16.1 |
MPI |
OpenMPI 3.1.3 |
OpenMPI 4.0.0 |
CUDA |
10,2 |
10,1 |
CUDA-Treiber |
430,26 |
418.40.04 |
NCCL |
2.4.7 |
2.4.7 |
CUDNN |
7.6.0 |
7.6.0 |
Python |
3.5.2 |
3.6.8 |
Betriebssystem |
Ubuntu 16.04.6 |
RHEL 7,4 |
GCC |
5.4.0 |
7.2.0 |
Tabelle 1
Wie bereits erwähnt, handelt es sich bei CheXNet um ein KI-Assistentenmodell für Radiologen, das DenseNet verwendet, um bis zu 14 Pathologien auf einem Thorax-Röntgenbild zu identifizieren. Es wurden mehrere Ansätze untersucht, um das Training eines Modells zu skalieren, damit es genauso gut oder sogar besser als das ursprüngliche CheXNet-121 mit ResNet-50 ist. Dabei wurden vielversprechende Ergebnisse in Bezug auf Skalierbarkeit und höhere Trainingsgenauigkeit (positives AUROC) erzielt. Die Autoren konnten Skalierbarkeit auf CPU-Systemen nachweisen, wir sind aber daran interessiert, die Parallelität von GPUs zu nutzen, um den Trainingsprozess zu beschleunigen. Der Dell EMC PowerEdge C4140 bietet mit vier NVIDIA V100-GPUs in SXM2-Konfiguration sowohl Dichte als auch Performance.
Bare-Metal-System |
Kubernetes-System |
|
Plattform |
PowerEdge C4140 |
PowerEdge C4140 |
CPU |
2 x Intel® Xeon® Gold 6148 bei 2,4 GHz |
2 x Intel® Xeon® Gold 6148 bei 2,4 GHz |
Speicher |
384 GB DDR4 bei 2,666 MHz |
384 GB DDR4 bei 2,666 MHz |
Speicher |
Lustre |
NFS |
GPU |
V100-SXM2 32GB |
V100-SXM2 32GB |
Betriebssystem |
RHEL 7,4 x86_64 |
CentOS 7.6 |
Linux-Kernel |
3.10.0-693.x86_64 |
3.10.0-957.21.3.el7.x86_64 |
Netzwerk |
Mellanox EDR InfiniBand |
Mellanox EDR InfiniBand (IP über IB) |
Der Bilddurchsatz in Bildern pro Sekunde wurde beim Training von CheXNet auf beiden Systemen mit 1, 2, 3, 4 und 8 GPUs auf 2 C4140-Nodes gemessen, wie in Tabelle 2 dargestellt. Die technischen Daten der Ausführung, einschließlich der Modellarchitektur, der Eingabedaten usw., sind in diesem Artikel aufgeführt. Abbildung 1 zeigt einen Vergleich der gemessenen Performance auf dem Kubernetes-System und dem Bare-Metal-System.
Abbildung 1: CheXNet-Training auf K8s im Vergleich zu Bare Metal
Das Bare-Metal-System zeigt bei einem Scale-out auf 8 GPUs eine Performancesteigerung von 8 %. Dieser leichte Performanceunterschied könnte jedoch auf die Unterschiede im Design der Systemarchitektur zurückzuführen sein, was über den Vergleich „Container vs. Bare Metal“ hinausgeht. Das Bare-Metal-System kann die volle Bandbreite und Latenz der InfiniBand-Rohverbindung nutzen und muss sich nicht mit dem Overhead auseinandersetzen, der bei softwaredefinierten Netzwerken wie einem Flanell entsteht. Außerdem verwendet das K8s-System IP über InfiniBand, was die verfügbare Bandbreite reduzieren kann.
Diese Zahlen können je nach Workload und Kommunikationsmustern der ausgeführten Anwendungen variieren. Bei einem Bildklassifizierungsproblem ist die Geschwindigkeit, mit der die Kommunikation zwischen den GPUs erfolgt, hoch und daher kommt es zu einer hohen Austauschrate. Es hängt jedoch von den Anforderungen des Workloads ab, welcher Ansatz verwendet werden sollte. Obwohl das Kubernetes-basierte System eine geringe Performanceeinbuße aufweist, in diesem Fall ca. 8 %, müssen Nutzer und Administratoren keine Bibliotheken, Konfigurationen, Umgebungen und andere Abhängigkeiten mehr einrichten. Dieser Ansatz ermöglicht es Wissenschaftlern, produktiver zu arbeiten und sich auf die Lösung wichtiger geschäftlicher Probleme wie die Datenaufbereitung und Modellerstellung zu konzentrieren.