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: Treinamento distribuído com o TensorFlow

Summary: TensorFlow, Kubernetes, GPU, Treinamento distribuído

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

O artigo foi escrito por Rakshith Vasudev e John Lockman do Laboratório de inovação em IA e HPC em outubro de 2019

Cause

-

Resolution

Sumário

  1. Introdução
    1. Bare Metal
    2. Kubernetes
  2. Versões de software
  3. Caso de uso real: CheXNet
  4. Especificações de hardware
  5. Desempenho
  6. Resumo
     

Introdução

Neste artigo, avaliamos o desempenho de dimensionamento ao treinar o CheXNet nas GPUs Nvidia V100 SXM2 em servidores Dell EMC C4140 com duas abordagens usadas em data centers modernos. O tradicional sistema "bare metal" de HPC com um ambiente criado pela Anaconda e um sistema em contêiner com contêineres Nvidia GPU Cloud (NGC) em execução em um ambiente Kubernetes local.

Bare metal
Um sistema bare metal é um cluster de HPC tradicional em que as pilhas de software são instaladas diretamente no disco rígido local ou em uma montagem de rede compartilhada. O gerenciamento de ambientes de software é realizado por um administrador do sistema. Os usuários estão restritos à criação de software em um sistema de arquivos compartilhado/doméstico. O código de usuário é programado em lote pelo gerenciador de carga de trabalho Slurm.

Kubernetes
Nosso sistema Kubernetes (k8s) utiliza contêineres NGC da Nvidia para fornecer todos os pré-requisitos de software necessários, todas as configurações de ambiente etc. O administrador do sistema instala apenas o sistema operacional de base, os drivers e o k8s. É possível fazer download no NGC desses contêineres baseados em Docker durante a execução ou armazená-los em um registro local. O k8s lida com o gerenciamento da carga de trabalho, a disponibilidade de recursos, a inicialização de trabalhos distribuídos e o dimensionamento sob demanda.
 

Versões de software

 

Contêiner NGC nvcr.io/nvidia/tensorflow:19.06- py3

Conda env – versões

Estrutura

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

Driver CUDA

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 operacional

Ubuntu 16.04.6

RHEL 7.4

GCC

5.4.0

7.2.0

Tabela 1
 


Caso de uso real: CheXNet

Como mencionado anteriormente, o CheXNet é um modelo de assistente de radiologia de IA que usa o DenseNet para identificar até 14 patologias em uma imagem específica de raios X do tórax. Várias abordagens foram exploradas para ampliar o treinamento de um modelo que poderia ter um desempenho tão bom ou melhor do que o CheXNet-121 original. O ResNet-50 se mostrou promissor tanto em escalabilidade quanto em maior precisão de treinamento (AUROC positivo). Os autores demonstraram a escalabilidades em sistemas de CPU. No entanto, estamos interessados em explorar o paralelismo das GPUs para acelerar o processo de treinamento. O Dell EMC PowerEdge C4140 oferece densidade e desempenho com quatro GPUs Nvidia V100 na configuração SXM2.
 


Especificações de hardware

 

Sistema bare metal

Sistema Kubernetes

Plataforma

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

Memória

DDR4 de 384 GB, a 2666 MHz

DDR4 de 384 GB, a 2666 MHz

Armazenamento

Lustre

NFS

GPU

V100-SXM2 de 32 GB

V100-SXM2 de 32 GB

Sistema operacional

RHEL 7,4 x86_64

CentOS 7.6

Kernel do Linux

3.10.0-693.x86_64

3.10.0-957.21.3.el7.x86_64

Network

InfiniBand EDR Mellanox

InfiniBand EDR Mellanox

(IP sobre IB)

Tabela 2
 

Desempenho

O throughput de imagem, calculado em imagens por segundo, durante o treinamento do CheXNet foi medido usando 1, 2, 3, 4 e 8 GPUs em 2 nós C4140 em ambos os sistemas descritos na Tabela 2. As especificações da execução, incluindo a arquitetura do modelo, os dados de entrada etc., são detalhadas neste artigo. A Figura 1 mostra a comparação de desempenho medido no sistema Kubernetes e no sistema bare metal.

 SLN318899_en_US__1image(12054)
Figura 1: Executando o treinamento do CheXNet no k8s vs. bare metal
 


Resumo

O sistema bare metal demonstra um aumento de 8% no desempenho à medida que dimensionamos para oito GPUs. No entanto, as diferenças no design da arquitetura do sistema podem causar essa pequena diferença de desempenho, além do argumento do contêiner vs. bare metal. O sistema bare metal pode aproveitar a largura de banda completa e a latência da conexão InfiniBand bruta e não precisa lidar com a sobrecarga criada com redes definidas por software, como o Flannel. O sistema k8s está usando IP sobre InfiniBand, o que pode reduzir a largura de banda disponível. 
Esses números podem variar, dependendo da carga de trabalho e dos padrões de comunicação definidos pelos tipos de aplicativos que são executados. No caso de um problema de classificação de imagem, a taxa na qual a comunicação ocorre entre as GPUs é alta e, portanto, há uma alta taxa de câmbio. No entanto, o uso de uma abordagem sobre a outra depende das necessidades da carga de trabalho. Embora nosso sistema baseado em Kubernetes tenha uma pequena penalidade de desempenho, de aproximadamente 8% nesse caso, ele libera os usuários e administradores da configuração de bibliotecas, configurações, ambientes e outras dependências. Essa abordagem permite que os cientistas de dados sejam mais produtivos e concentrem-se na solução de problemas de negócios importantes, como a estruturação de dados e a criação de modelos.


 


 

 

Article Properties


Affected Product

High Performance Computing Solution Resources, Poweredge C4140

Last Published Date

23 Sep 2021

Version

5

Article Type

Solution