Artikel is geschreven door Rakshith Vasudev &John Lockman - HPC AI Innovation Lab in oktober 2019
NGC-container nvcr.io/nvidia/tensorflow:19.06- py3 |
Conda env versies |
|
Kader |
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 |
Besturingssysteem |
Ubuntu 16.04.6 |
RHEL 7.4 |
GCC |
5.4.0 |
7.2.0 |
Tabel 1
Zoals eerder geïntroduceerd, is CheXNet een AI-radioloogassistent-model dat gebruikmaakt van DenseNet om maximaal 14 ziektebeelden te identificeren van een bepaald rö ray-beeld op de borst. Verschillende benaderingen werden onderzocht om de training van een model uit te breiden dat zowel goed als beter presteert dan de oorspronkelijke CheXNet-121 met ResNet-50 die beloftes demonstreerde in zowel schaalbaarheid als verbeterde trainingsnauwkeurigheid (positieve ACREDITC). De auteurs demonstreerden schaalbaarheid op CPU-systemen, maar we zijn geïnteresseerd in het gebruik van het parallelisme van GPU's om het trainingsproces te versnellen. De Dell EMC PowerEdge C4140 biedt zowel dichtheid als prestaties met vier NVIDIA V100 GPU's in de SXM2-configuratie.
Bare metal systeem |
Kubernetes-systeem |
|
Platform |
PowerEdge C4140 |
PowerEdge C4140 |
CPU |
2 x Intel® Xeon® Gold 6148 bij 2,4 GHz |
2 x Intel® Xeon® Gold 6148 bij 2,4 GHz |
Geheugen |
384 GB DDR4 bij 2666 MHz |
384 GB DDR4 bij 2666 MHz |
Storage |
Lustre |
NFS |
GPU |
V100-SXM2 32 GB |
V100-SXM2 32 GB |
Besturingssysteem |
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 |
Netwerk |
Mellanox EDR InfiniBand |
Mellanox EDR InfiniBand (IP via IB) |
De imagedoorvoer, gemeten in images per seconde, bij het trainen van CheXNet werd gemeten met behulp van 1, 2, 3, 4 en 8 GPU's in 2 C4140 knooppunten op beide systemen die worden beschreven in Tabel 2. De specificaties van de uitvoering, inclusief de modelarchitectuur, invoerdata, enz. worden beschreven in dit artikel. Afbeelding 1 toont de gemeten prestatievergelijking op het Kubernetes-systeem en het bare metal systeem.
Afbeelding 1: CheXNet-training uitvoeren op K8's versus Bare Metal
Het bare metal systeem toont een toename van 8% van de prestaties wanneer we opschalen naar 8 GPU's. De verschillen in het ontwerp van de systeemarchitectuur kunnen echter dit kleine prestatieverschil veroorzaken, naast alleen de container versus het bare metal argument. Het bare metal systeem kan profiteren van de volledige bandbreedte en latentie van de onbewerkte InfiniBand-verbinding en heeft geen te maken met de overhead die is gemaakt met softwaregedefinieerde netwerken, zoals een kliknel. Het is ook het geval dat het K8s-systeem IP gebruikt via InfiniBand, wat de beschikbare bandbreedte kan verminderen.
Deze cijfers kunnen variëren, afhankelijk van de workload en de communicatiepatronen die worden gedefinieerd door het type applicaties dat wordt uitgevoerd. In het geval van een probleem met de imageclassificatie is de snelheid waarmee communicatie plaatsvindt tussen GPU's hoog en dus is er een hoge wisselkoers. Het gebruik van de ene benadering ten opzichte van de andere is echter afhankelijk van de behoeften van de workload. Hoewel ons Kubernetes-gebaseerde systeem een kleine prestatieboete heeft, neemt ~8% in dit geval gebruikers en beheerders weg van het instellen van bibliotheken, configuraties, omgevingen en andere afhankelijkheden. Deze aanpak stelt datawetenschappers in staat productiever te zijn en zich te richten op het oplossen van belangrijke zakelijke problemen, zoals datawrangling en modelbuild.