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.

裸机与 Kubernetes:使用 TensorFlow 的分布式训练

Summary: TensorFlow, Kubernetes, GPU, 分布式训练

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

本文由 HPC AI 创新实验室的 Rakshith Vasudev 和 John Lockman 于 2019 年 10 月撰写

Cause

Resolution

目录

  1. 简介
    1.裸机
    2. Kubernetes
  2. 软件版本
  3. 实际应用场景: CheXNet
  4. 硬件规格
  5. 性能
  6. 摘要
     

简介

在本文中,我们使用在现代数据中心中使用的两种方法,评估在 Dell EMC C4140 服务器中的 Nvidia V100 SXM2 GPU 上训练 ChexNet 时的扩展性能。采用由 Anaconda 构建的环境的传统 HPC“裸机”,以及在本地 Kubernetes 环境中运行 Nvidia GPU Cloud (NGC) 容器的容器化系统。

裸机
裸机系统是一种传统的 HPC 群集,软件堆栈直接安装在本地硬盘或共享网络装载上。软件环境的管理由系统管理员执行。用户只能在共享的 /home 文件系统中构建软件。用户代码由 Slurm 工作负载管理器批量计划。

Kubernetes
我们的 Kubernetes (K8s) 系统利用 Nvidia 的 NGC 容器提供所有必需的软件前提条件、环境配置等。系统管理员仅安装基本操作系统、驱动程序和 k8s。这些基于 docker 的容器可在运行期间从 NGC 下载,也可以存储在本地注册表中。K8s 处理工作负载管理、资源可用性、启动分布式作业和按需扩展。
 

软件版本

 

NGC 容器 nvcr.io/nvidia/tensorflow:19.06- py3

Conda 环境版本

框架

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 驱动程序

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

操作系统

Ubuntu 16.04.6

RHEL 7.4

GCC

5.4.0

7.2.0

表 1:
 


实际应用场景:CheXNet

如前文所介绍,CheXNet 是一种 AI 放射科助理模型,它可以使用 DenseNet 从一个给定的 X 光胸片中识别多达 14 种病症。探索了几种方法来横向扩展模型的训练,使其性能等于或好于原始的 CheXNet-121 和 ResNet-50,展示了可扩展性和更高的训练准确性(正例 AUROC)的希望。作者展示了在 CPU 系统上的可扩展性,但我们希望利用 GPU 的并行性来加快训练过程。Dell EMC PowerEdge C4140 通过 SXM2 配置中的四个 Nvidia V100 GPU 提供密度和性能。
 


硬件规格

 

裸机系统

Kubernetes 系统

平台

PowerEdge C4140

PowerEdge C4140

CPU

2 个英特尔®至强® Gold 6148 @2.4 GHz

2 个英特尔®至强® Gold 6148 @2.4 GHz

内存

384 GB DDR4 @ 2666 MHz

384 GB DDR4 @ 2666 MHz

存储器

Lustre

NFS

GPU

V100-SXM2 32 GB

V100-SXM2 32 GB

操作系统

RHEL 7.4 x86_64

CentOS 7.6

Linux 内核

3.10.0-693.x86_64

3.10.0-957.21.3.el7.x86_64

网络

Mellanox EDR InfiniBand

Mellanox EDR InfiniBand

(IP over IB)

表 2:
 

性能

在表 2 中所述的两个系统上,在 2 个 C4140 节点上使用 1、2、3、4 和 8 个 GPU 测量训练 CheXNet 时的图像吞吐量(以每秒图像数为单位测量)。这篇文章详细介绍了运行的规格,包括模型体系结构、输入数据等。图 1 显示了 Kubernetes 系统和裸机系统上的测量性能比较。

 SLN318899_en_US__1image(12054)
图 1:在 K8s 与裸机上运行 CheXNet 训练
 


摘要

随着我们横向扩展至 8 个 GPU,裸机系统的性能提高了 8%。但是,系统体系结构设计上的差异可能导致了这种细微的性能差异,而不仅仅是容器与裸机参数。裸机系统可以利用原始 InfiniBand 连接的完整带宽和延迟,而不必处理软件定义网络(例如 flannel)产生的开销。此外,K8s 系统使用 IP over InfiniBand,这可以减少可用带宽。
这些数字可能因运行的应用程序类型所定义的工作负载和通信模式而异。对于图像分类问题,GPU 之间的通信发生速率较高,因此交换率也较高。但是,是否使用一种方法而不是另一种方法取决于工作负载的需求。尽管我们基于 Kubernetes 的系统性能损失很小(在本例中约为 8%),但它使用户和管理员无需设置库、配置、环境和其他依赖关系。这种方法使数据科学家能够提高工作效率,并专注于解决核心业务问题,如数据整理和模型构建。


 


 

 

Article Properties


Affected Product

High Performance Computing Solution Resources, Poweredge C4140

Last Published Date

23 Sep 2021

Version

5

Article Type

Solution