Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

Bare Metal vs. Kubernetes: Verteiltes Training mit TensorFlow

Summary: TensorFlow, Kubernetes, GPU, verteiltes Training

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Der Artikel wurde von Rakshith Vasudev & John Lockman, HPC AI Innovation Lab, im Oktober 2019 verfasst.

Cause

-

Resolution

Inhaltsverzeichnis

  1. Einführung
    1. Bare Metal
    2. Kubernetes
  2. Softwareversionen
  3. Reales Anwendungsbeispiel: ChexNet
  4. Hardwarespezifikationen
  5. Leistung
  6. Übersicht
     

Einführung

In diesem Artikel wird die Skalierungsperformance beim Training von CheXNet auf NVIDIA V100-SXM2-GPUs in Dell EMC C4140-Servern mithilfe von zwei Ansätzen evaluiert, die in modernen Rechenzentren verwendet werden. Das herkömmliche „Bare Metal“-HPC mit einer von Anaconda entwickelten Umgebung und ein in Container aufgeteiltes System mit NVIDIA GPU Cloud-(NGC-)Containern, das in einer lokalen Kubernetes-Umgebung ausgeführt wird.

Bare Metal
Ein Bare-Metal-System ist ein herkömmliches HPC-Cluster, in dem Software-Stacks direkt auf der lokalen Festplatte oder auf einem freigegebenen Netzwerk-Mount installiert sind. Das Management der Softwareumgebungen wird von einem Systemadministrator durchgeführt. Die Nutzer sind auf das Erstellen von Software in einem freigegebenen/Home-Dateisystem beschränkt. Der Nutzercode wird vom Slurm-Workload-Manager in Batches geplant.

Kubernetes
Das Kubernetes-(K8s-)System nutzt NGC-Container von NVIDIA, um alle erforderlichen Softwarevoraussetzungen, Umgebungskonfigurationen usw. bereitzustellen. Der Systemadministrator installiert nur das Basisbetriebssystem, die Treiber und K8s. Diese Docker-basierten Container können während der Ausführung von NGC heruntergeladen oder in einer lokalen Registrierung gespeichert werden. K8s kümmert sich um das Workload-Management, die Verfügbarkeit von Ressourcen, das Starten verteilter Jobs und die bedarfsgerechte Skalierung.
 

Softwareversionen

 

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
 


Reales Anwendungsbeispiel: ChexNet

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.
 


Hardwarespezifikationen

 

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)

Tabelle 2
 

Leistung

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.

 SLN318899_en_US__1image(12054)
Abbildung 1: CheXNet-Training auf K8s im Vergleich zu Bare Metal
 


Übersicht

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.


 


 

 

Affected Products

High Performance Computing Solution Resources, Poweredge C4140
Article Properties
Article Number: 000126324
Article Type: Solution
Last Modified: 23 Sep 2021
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.