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.

베어 메탈 vs 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

이 문서는 2019년 10월 HPC AI Innovation Lab에서 Rakshith Vasudev와 John Lockman이 작성했습니다.

Cause

-

Resolution

목차

  1. 소개
    1. 베어 메탈
    2. Kubernetes
  2. 소프트웨어 버전
  3. 실제 사용 사례: CheXNet
  4. 하드웨어 사양
  5. 성능
  6. 요약
     

소개

이 문서에서는 최신 데이터 센터에서 사용되는 두 가지 접근 방식을 사용하여 Dell EMC C4140 서버의 Nvidia V100 SXM2 GPU에서 CheXNet을 학습할 때 확장 성능을 평가합니다. Anaconda에서 구축한 환경을 갖춘 기존 HPC "베어 메탈"과 온프레미스 Kubernetes 환경에서 실행되는 NGC(Nvidia GPU Cloud) 컨테이너를 사용한 컨테이너형 시스템

베어 메탈
베어 메탈 시스템은 소프트웨어 스택이 로컬 하드 디스크 또는 공유 네트워크 마운트에 직접 설치되는 기존 HPC 클러스터입니다. 소프트웨어 환경 관리는 시스템 관리자가 수행합니다. 사용자는 공유/홈 파일 시스템에 소프트웨어를 구축하는 것으로 제한됩니다. 사용자 코드는 Slurm 워크로드 관리자에 의해 일괄 예약됩니다.

Kubernetes
Kubernetes(k8s) 시스템은 Nvidia의 NGC 컨테이너를 활용하여 필요한 모든 소프트웨어 전제 조건, 환경 구성 등을 제공합니다. 시스템 관리자는 기본 운영 체제, 드라이버 및 k8s만 설치합니다. 이러한 Docker 기반 컨테이너는 실행 중에 NGC에서 다운로드하거나 로컬 레지스트리에 저장할 수 있습니다. k8s는 워크로드 관리, 리소스 가용성, 분산된 작업 시작 및 온디맨드 확장을 처리합니다.
 

소프트웨어 버전

 

NGC 컨테이너 nvcr.io/nvidia/tensorflow:19.06-py3

Conda env 버전

프레임워크

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은 DenseNet을 사용하여 제공된 흉부 X선 이미지에서 최대 14개의 병변을 식별하는 AI 방사선 기사 보조 모델입니다. 확장성과 교육 정확도(긍정적인 AUROC) 향상이라는 두 가지 가능성을 보여주는 ResNet-50을 사용하여 원래의 CheXNet-121과 성능이 비슷하거나 더 우수한 모델의 교육을 확장하기 위해 여러 가지 접근 방식이 연구되었습니다. 작성자는 CPU 시스템의 확장성을 입증했지만, GPU의 병렬화를 활용하여 학습 프로세스를 가속화하고자 합니다. Dell EMC PowerEdge C4140은 SXM2 구성의 Nvidia V100 GPU 4개를 통해 밀도와 성능을 모두 제공합니다.
 


하드웨어 사양

 

베어 메탈 시스템

Kubernetes 시스템

플랫폼

PowerEdge C4140

PowerEdge C4140

CPU

인텔® 제온® 골드 6148 @2.4Ghz, 2개

인텔® 제온® 골드 6148 @2.4Ghz, 2개

Memory

384GB DDR4 @ 2666MHz

384GB DDR4 @ 2666MHz

스토리지

Lustre

NFS

GPU

V100-SXM2 32GB

V100-SXM2 32GB

운영 체제

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)

.
 

성능

CheXNet을 학습시킬 때 초당 이미지 수로 측정한 이미지 처리량은 표 2에 설명된 두 시스템의 C4140 노드 2개에 대해 1, 2, 3, 4 및 8개의 GPU를 사용하여 측정했습니다. 모델 아키텍처, 입력 데이터 등을 포함한 실행 사양은 이 문서에 자세히 설명되어 있습니다. 그림 1은 Kubernetes 시스템과 베어 메탈 시스템에서 측정된 성능 비교를 보여줍니다.

 SLN318899_en_US__1image(12054)
그림 1: k8s와 베어 메탈에서 CheXNet 학습 실행
 


요약

베어 메탈 시스템은 8개의 GPU로 확장됨에 따라 성능이 8% 향상되었음을 보여줍니다. 그러나, 시스템 아키텍처 설계의 차이로 인해 컨테이너 대 베어 메탈 논쟁 외에도 성능 차이가 발생할 수 있습니다. 베어 메탈 시스템은 원시 InfiniBand 연결의 전체 대역폭과 레이턴시를 활용할 수 있으며 Flannel 같은 SDN(Software Defined Network)으로 인해 발생하는 오버헤드를 처리할 필요가 없습니다. 또한 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