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

ベア メタルとKubernetesの比較:TensorFlowを使用した分散トレーニング

Summary: TensorFlow, Kubernetes, GPU, Distributed training, TensorFlow, Kubernetes, GPU, 分散トレーニング

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

この記事は、2019年10月にHPC AI Innovation LabのRakshith Vasudev氏とJohn Lockman氏によって作成されました。

Cause

-

Resolution

目次

  1. はじめに
    1.ベア メタル
    2.Kubernetes
  2. ソフトウェアのバージョン
  3. 実環境での使用事例:CheXNet
  4. ハードウェア仕様
  5. パフォーマンス
  6. 概要
     

概要

この記事では、モダン データ センターで使用される2つのアプローチを使用して、Dell EMC C4140サーバーのNVIDIA V100 SXM2 GPUでCheXNetをトレーニングする際のパフォーマンス スケーリングについて評価します。1つ目のアプローチは、Anacondaで構築された環境を使用した従来のHPC「ベア メタル」で、もう1つは、オンプレミスのKubernetes環境で実行されるNVIDIA GPU Cloud (NGC)コンテナを搭載したコンテナ化されたシステムです。

ベア メタル
ベア メタル システムは、ソフトウェア スタックがローカル ハード ディスクまたは共有ネットワーク マウントに直接インストールされている従来のHPCクラスターです。ソフトウェア環境の管理は、システム管理者により実行されます。ユーザーの動作は、共有/ホーム ファイル システムでのソフトウェアの構築に限定されます。ユーザー コードは、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は、DenseNetを活用して、指定された胸のレントゲン写真から最大14の病状を特定できるAI放射線技師アシスタント モデルです。拡張性とトレーニング精度の向上(陽性AURORAC)の両方を実証しながら、ResNet-50を使用した従来のCheXNet-121と同等以上のパフォーマンスを発揮できる可能性のあるモデルのトレーニングをスケールアウトするため、いくつかのアプローチが検討されました。作者によって、CPUシステムでの拡張性については実証されましたが、GPUの並列化を活用してトレーニング プロセスを高速化することについて関心が寄せられました。Dell EMC PowerEdge C4140は、SXM2構成の4台のNVIDIA V100 GPUで密度とパフォーマンスの両方を提供します。
 


ハードウェア仕様

 

ベア メタル システム

Kubernetesシステム

プラットフォーム

PowerEdge C4140

PowerEdge C4140

CPU

2 x インテル® Xeon® Gold 6148 @2.4GHz

2 x インテル® Xeon® Gold 6148 @2.4GHz

メモリー

384 GB DDR4 @ 2666MHz

384 GB 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)

表 2
 

パフォーマンス

この画像スループットは、1秒あたりの画像で測定されます。このトレーニングでは、表2に記載されている両方のシステム上の2つのC4140ノードで1、2、3、4、8台のGPUを使用してCheXNetを測定しました。モデル アーキテクチャ、入力データなどを含む実行の仕様については、この記事 で詳しく説明しています。図1は、Kubernetesシステムとベア メタル システムで測定されたパフォーマンスの比較を示しています。

 SLN318899_en_US__1image(12054)
図1: k8sとベア メタルでCheXNetトレーニングを実行
 


概要

ベア メタル システムでは、8GPUにスケールアウトするとパフォーマンスが8%向上しました。ただし、システム アーキテクチャの設計の違いにより、コンテナとベア メタルの違いだけでなく、このわずかなパフォーマンスの違いが発生する可能性があります。ベア メタル システムは、InfiniBand接続(Raw)の全帯域幅とレイテンシーを活用でき、ソフトウェア デファインド ネットワーク(flannelなど)で作成されたオーバーヘッドに対処する必要はありません。また、k8sシステムがInfiniBand経由でIPを使用しており、使用可能な帯域幅を削減できる可能性もあります。
これらの数値は、ワークロードと、実行されるアプリケーションの種類により定義された通信パターンによって異なる場合があります。画像の分類に関する問題の場合、GPU間で通信が発生するレートが高いため、交換レートが高くなります。ただし、どちらのアプローチを使用するかは、ワークロードのニーズによって異なります。Kubernetesベースのシステムはパフォーマンスの低下が少なくなります(この場合は8%以下)。それにより、ユーザーと管理者がライブラリー、構成、環境、その他の依存関係を設定する必要がなくなります。このアプローチにより、データ サイエンティストは生産性を向上させ、データ ラングリングやモデル構築などのコア ビジネス上の問題の解決に専念できるようになります。


 


 

 

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.