L'articolo è stato scritto dae Vasudev e John Lockman - HPC AI Innovation Lab nel mese di ottobre 2019
Contenitore NGC nvcr.io/nvidia/tensorflow:19.06-py3 |
Versioni Env Conda |
|
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 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 |
Sistema operativo |
Ubuntu 16.04.6 |
RHEL 7.4 |
GCC |
5.4.0 |
7.2.0 |
Tabella 1
Come introdotto in precedenza, CheXNet è un modello di assistente radilogo di intelligenza artificiale che utilizza DenseNet per identificare fino a 14 pathologie da una data immagine x-ray del toracico. Sono stati analizzati diversi approcci per scalare l'addestramento di un modello che potesse funzionare in modo ottimale o superiore rispetto al CheXNet-121 originale con ResNet-50 dimostrando la promessa sia in termini di scalabilità che di maggiore precisione dell'addestramento (AUROC positivo). Gli autori hanno dimostrato capacità di scalabilità sui sistemi cpu, tuttavia siamo interessati a sfruttare il parallelismo delle GPU per accelerare il processo di formazione. Dell EMC PowerEdge C4140 fornisce densità e prestazioni con quattro GPU NVIDIA V100 nella configurazione SXM2.
Sistema bare-metal |
Sistema Kubernetes |
|
Piattaforma |
PowerEdge C4140 |
PowerEdge C4140 |
CPU |
2 x Intel® Xeon® Gold 6148 a 2,4 GHz |
2 x Intel® Xeon® Gold 6148 a 2,4 GHz |
Memoria |
384 GB di DDR4 a 2.666 MHz |
384 GB di DDR4 a 2.666 MHz |
Archiviazione |
Lustro |
NFS |
GPU |
V100-SXM2 32 GB |
V100-SXM2 32 GB |
Sistema operativo |
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 |
Rete |
Mellanox EDR InfiniBand |
Mellanox EDR InfiniBand (IP su IB) |
Il throughput dell'immagine, misurato in immagini al secondo, durante l'addestramento di CheXNet è stato misurato utilizzando 1, 2, 3, 4 e 8 GPU su 2 nodi C4140 su entrambi i sistemi descritti nella Tabella 2. Le specifiche dell'esecuzione, tra cui l'architettura del modello, i dati di input e così via, sono descritte in dettaglio in questo articolo. La figura 1 mostra il confronto delle prestazioni misurato sul sistema Kubernetes e sul sistema bare metal.
Figura 1. Esecuzione della formazione CheXNet su K8s rispetto a Bare Metal
Il sistema bare metal dimostra un aumento dell'8% delle prestazioni durante lo scale-out a 8 GPU. Tuttavia, le differenze nella progettazione dell'architettura di sistema potrebbero causare questa lieve differenza di prestazioni, al di là del solo argomento contenitore rispetto a quello bare metal. Il sistema bare metal può sfruttare la larghezza di banda e la latenza complete della connessione InfiniBand raw e non deve affrontare l'overhead creato con le reti definite dal software, come una flangia. È anche il caso che il sistema K8s utilizzi IP su InfiniBand in grado di ridurre la larghezza di banda disponibile.
Questi numeri possono variare a seconda del carico di lavoro e dei modelli di comunicazione definiti dal tipo di applicazioni eseguite. Nel caso di un problema di classificazione delle immagini, la velocità con cui si verifica la comunicazione tra le GPU è elevata e quindi c'è un tasso di cambio elevato. Tuttavia, se utilizzare un approccio rispetto all'altro dipende dalle esigenze del carico di lavoro. Anche se il nostro sistema basato su Kubernetes ha una piccola riduzione delle prestazioni, circa l'8% in questo caso, solleva utenti e amministratori dalla configurazione di librerie, configurazioni, ambienti e altre dipendenze. Questo approccio consente ai Data Scientist di essere più produttivi e di concentrarsi sulla risoluzione dei principali problemi aziendali come la wra hybrid data e la creazione di modelli.