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

Sistema de bajo nivel frente a Kubernetes: Capacitación distribuida con TensorFlow

Summary: TensorFlow, Kubernetes, GPU, Capacitación distribuida

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

Artículo escrito por Rakshith Vasudev y John Lockman: Laboratorio de innovación de IA de HPC en octubre del 2019

Cause

-

Resolution

Tabla de contenido

  1. Introducción
     1. De bajo nivel
     2. Kubernetes
  2. Versiones del software
  3. Caso de uso del mundo real: CheXNet
  4. Especificaciones de hardware
  5. Rendimiento
  6. Resumen
     

Introducción

En este artículo, evaluamos el rendimiento de escalamiento cuando se realiza la capacitación de CheXNet en GPU Nvidia V100 SXM2 en servidores Dell EMC C4140 mediante dos enfoques utilizados en los centros de datos modernos. El trabajo HPC tradicional “de bajo nivel” con un entorno compilado por Anaconda y un sistema en contenedores con Nvidia GPU Cloud (NGC) que se ejecutan en un entorno de Kubernetes local.

De bajo nivel
Un sistema de bajo nivel (bare metal) es un clúster de HPC tradicional donde las pilas de software se instalan directamente en el disco duro local o en un montaje de red compartido. Un administrador del sistema realiza la administración de entornos de software. Los usuarios están restringidos al desarrollo de software en un sistema de archivos compartido/local. El gerente de cargas de trabajo de Slurm programa el código de usuario por lotes.

Kubernetes
Nuestro sistema Kubernetes (K8s) utiliza contenedores NGC de Nvidia para proporcionar todos los requisitos de software, configuraciones de entorno y otros elementos necesarios. El administrador del sistema solo instala el sistema operativo base, los controladores y k8s. Estos contenedores basados en Docker se pueden descargar desde NGC durante la ejecución o almacenarse en un registro local. K8s maneja la administración de cargas de trabajo, la disponibilidad de recursos, el lanzamiento de trabajos distribuidos y el escalamiento según demanda.
 

Versiones del software

 

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

Versiones de entornos Conda

Infraestructura

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

Controlador de 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 operativo

Ubuntu 16.04.6

RHEL 7.4

GCC

5.4.0

7.2.0

Tabla 1
 


Caso de uso del mundo real: CheXNet

Como se indicó anteriormente, CheXNet es un modelo de asistente de radiología de IA que utiliza DenseNet para identificar hasta 14 patologías desde una imagen determinada de rayos X de tórax. Se exploraron varios enfoques para escalar horizontalmente la capacitación de un modelo que podría funcionar tan bien como o mejor que el CheXNet-121 original con ResNet-50, lo que demuestra su promesa tanto en escalabilidad como en mayor precisión de capacitación (AUROC positivo). Los autores demostraron escalabilidades en los sistemas de CPU; sin embargo, estamos interesados en aprovechar el paralelismo de las GPU para acelerar el proceso de capacitación. Dell EMC PowerEdge C4140 proporciona densidad y rendimiento con cuatro GPU Nvidia V100 en la configuración SXM2.
 


Especificaciones de hardware

 

Sistema de bajo nivel

Sistema Kubernetes

Plataforma

PowerEdge C4140

PowerEdge C4140

CPU

2 Intel® Xeon® Gold 6148 a 2,4 GHz

2 Intel® Xeon® Gold 6148 a 2,4 GHz

Memoria

384 GB DDR4 a 2666 MHz

384 GB DDR4 a 2666 MHz

Almacenamiento

Lustre

NFS

Unidad de procesamiento de gráficos (GPU)

V100-SXM2 de 32 GB

V100-SXM2 de 32 GB

Sistema operativo

RHEL 7.4 x86_64

CentOS 7.6

Kernel de Linux

3.10.0-693.x86_64

3.10.0-957.21.3.el7.x86_64

Red

Mellanox EDR InfiniBand

Mellanox EDR InfiniBand

(IP a través de IB)

Tabla 2
 

Rendimiento

El rendimiento de la imagen, medido en imágenes por segundo, cuando la capacitación de CheXNet se midió con 1, 2, 3, 4 y 8 GPU en 2 nodos C4140 en ambos sistemas descritos en la Tabla 2. Las especificaciones de la ejecución, incluida la arquitectura del modelo, los datos de entrada, etc., se detallan en este artículo. En la Figura 1, se muestra la comparación de rendimiento medido en el sistema Kubernetes y el sistema de bajo nivel.

 SLN318899_en_US__1image(12054)
Figura 1: Ejecución de capacitación de CheXNet en K8s frente a un sistema de bajo nivel
 


Resumen

El sistema de bajo nivel demuestra un aumento del 8 % en el rendimiento a medida que escalamos horizontalmente a 8 GPU. Sin embargo, las diferencias en el diseño de la arquitectura de sistema podrían causar esta ligera diferencia de rendimiento, más allá de solo el argumento de contenedor frente al argumento de bajo nivel. El sistema de bajo nivel puede aprovechar todo el ancho de banda y la latencia de la conexión InfiniBand cruda y no tiene que lidiar con la sobrecarga creada con redes definidas por software, como un flannel. También es cierto que el sistema K8s está utilizando IP a través de InfiniBand, lo que puede reducir el ancho de banda disponible. 
Estos números pueden variar según la carga de trabajo y los patrones de comunicación definidos por el tipo de aplicaciones que se ejecutan. En el caso de un problema de clasificación de imagen, la velocidad a la que se produce la comunicación entre las GPU es alta y, por lo tanto, hay una tasa de cambio alta. Sin embargo, el uso de un enfoque sobre el otro depende de las necesidades de la carga de trabajo. A pesar de que nuestro sistema basado en Kubernetes tiene una pequeña pérdida de rendimiento, ~8 % en este caso, alivia a los usuarios y los administradores de tener que establecer bibliotecas, configuraciones, entornos y otras dependencias. Este enfoque permite que los científicos de datos sean más productivos y se centren en resolver los problemas principales del negocio, como la organización de datos y la creación de modelos.


 


 

 

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.