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
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Bare Metal vs. Kubernetes: Distribueret undervisning med TensorFlow

Summary: TensorFlow, Kubernetes, GPU, distribueret undervisning

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Artiklen er skrevet af Rakshith Vasudev & John Lockman - HPC AI Innovation Lab i oktober 2019

Cause

Resolution

Indholdsfortegnelse

  1. Introduktion
    1. Bare Metal
    2. Kubernetes
  2. Softwareversioner
  3. Brugscase fra den virkelige verden: CheXNet
  4. Hardwarespecifikationer
  5. Performance (Ydeevne)
  6. Overblik
     

Indledning

I denne artikel evaluerer vi skaleringen af ydeevnen, når du uddanner CheXNet på Nvidia V100 SXM2 GPU'er i Dell EMC C4140-servere ved hjælp af to metoder, der anvendes i moderne datacentre. Den traditionelle HPC "Bare Metal" med et miljø bygget af Anaconda og et containeriseret system med Nvidia GPU Cloud (NGC)-containere, der kører i et on-prem Kubernetes-miljø.

Blottet metal
Et Bare Metal-system er en traditionel HPC-klynge, hvor softwarestakke installeres direkte på den lokale harddisk eller et delt netværksmontering. Administration af softwaremiljøer udføres af en systemadministrator. Brugerne har begrænset til at bygge software i et delt/hjemme-filsystem. Brugerkoden planlægges af Slurm Workload Manager.

Kubernetes
Vores Kubernetes (K8s)-system anvender Nvidias NGC-containere til at levere alle nødvendige softwareforudsætninger, miljøkonfigurationer osv. Systemadministratoren installerer kun det grundlæggende operativsystem, drivere og k8s. Disse docker-baserede containere kan downloades fra NGC under kørsel eller gemmes i en lokal registreringsdatabase. K8s håndterer workloadadministration, tilgængelighed af ressourcer, start af distribuerede job og skalering efter behov.
 

Softwareversioner

 

NGC-beholder nvcr.io/nvidia/tensorflow:19.06 py3

Brugerversioner

Ramme

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-driver

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

Operativsystem

Ubuntu 16.04.6

RHEL 7.4

GCC

5.4.0

7.2.0

Tabel 1
 


Brugscase fra den virkelige verden: CheXNet

Som introduceret tidligere er CheXNet en AI-radiologassistentmodel, der bruger DenseNet til at identificere op til 14 patologier ud fra et givent patiade x-ray-billede. Flere metoder blev undersøgt for at udskalere undervisningen af en model, der kunne fungere lige så godt som eller bedre end den oprindelige CheXNet-121 med ResNet-50, som har et løfte om både skalerbarhed og øget indlæringsgengivelse (positiv AUROC). Forfatterene demonstrerede skalerbarheden på CPU-systemer, men vi er interesserede i at udnytte gpu'ens parallelitet til at fremskynde indlæringsprocessen. Dell EMC PowerEdge C4140 giver både tæthed og ydeevne med fire Nvidia V100 GPU'er i SXM2-konfigurationen.
 


Hardwarespecifikationer

 

Bare Metal-system

Kubernetes-system

Platform

PowerEdge C4140

PowerEdge C4140

CPU

2 x Intel® Xeon® Gold 6148 ved 2,4 GHz

2 x Intel® Xeon® Gold 6148 ved 2,4 GHz

Hukommelse

384 GB DDR4 ved 2666 MHz

384 GB DDR4 ved 2666 MHz

Storage

Glans

NFS

GPU

V100-SXM2 32 GB

V100-SXM2 32 GB

Operativsystem

RHEL 7.4-x86_64

CentOS 7.6

Linux-kerne

3.10.0-693.x86_64

3.10.0-957.21.3.el7.x86_64

Netværk

Mellanox EDR InfiniBand

Mellanox EDR InfiniBand

(IP over IB)

Tabel 2
 

Performance (Ydeevne)

Billedoverførselshastigheden målt i billeder pr. sekund, da indlæringen af CheXNet blev målt ved brug af 1, 2, 3, 4 og 8 GPU'er på tværs af 2 C4140-noder på begge systemer beskrevet i Tabel 2. Specifikationerne for kørsel, herunder modelarkitekturen, inputdata osv., er beskrevet i denne artikel. Figur 1 viser den målte sammenligning af ydeevnen på Kubernetes-systemet og bare metal-systemet.

 SLN318899_en_US__1image(12054)
Figur 1: Kørsel af CheXNet-træning på K8s vs. Bare Metal
 


Overblik

Det bare metal-system viser en stigning i ydeevnen på 8 %, når vi opskalerer til 8 GPU'er. Forskellene i systemarkitekturens design kan imidlertid forårsage denne lille forskel i ydeevnen ud over blot beholderen vs. metalargumentet. Det blotte metalsystem kan drage fordel af den fulde båndbredde og ventetid af den rå InfiniBand-forbindelse og behøver ikke at håndtere de omkostninger, der er forbundet med softwaredefinerede netværk som f.eks. en flannel. Det er også tilfældet, at K8s-systemet bruger IP over InfiniBand, hvilket kan reducere den tilgængelige båndbredde. 
Disse tal kan variere afhængigt af arbejdsbelastningen og kommunikationsmønstrene defineret efter den type programmer, der køres. I tilfælde af et problem med billedklassificeringen er den hastighed, hvormed kommunikationen forekommer mellem GPU'er, høj, og derfor er der en høj ombytningshastighed. Om du skal bruge én tilgang frem for den anden, afhænger dog af arbejdsbelastningens behov. Selvom vores Kubernetes-baserede system har en lille ydeevne-bod, ~8 % i dette tilfælde, fritager det brugere og administratorer fra at konfigurere biblioteker, konfigurationer, miljøer og andre afhængigheder. Denne tilgang gør datalogerne mere produktive og fokuserer på at løse centrale forretningsproblemer som f.eks. data-wrangling og modelopbygning.


 


 

 

Article Properties


Affected Product

High Performance Computing Solution Resources, Poweredge C4140

Last Published Date

23 Sep 2021

Version

5

Article Type

Solution