トレンドコラム

性能検証

NVIDIA DGX™ A100徹底検証! Vol.1

2020.10.05

NTTPC GPUエンジニア

NTTPC GPUエンジニア

NVIDIA DGX™ A100徹底検証! Vol.1

はじめに

このたび、NVIDIA社から新たにリリースされたGPUアプライアンス「NVIDIA DGX™ A100」を、Innovation LAB設備として国内最速で導入しました。

本マシンは、単に前世代のV100 GPUから性能が向上したことに加え、MIG(Multi Instance GPU)という新機能が追加になりました。MIGの詳しい機能はNVIDIA社のWebサイトをご覧ください。1枚の A100カードを最大7つのインスタンスとして分離し、それぞれにメモリを割り当て、独立した用途で活用できる画期的な機能です。

今回は、DGX A100の性能や機能について検証を行いました。本記事ではその検証結果を報告しますので、今後の導入を検討されている方の参考になれば幸いです。

なお、検証結果の概要については、NVIDIA社のオンラインイベント「GTC DIGITAL JAPAN 2020」でも発表しました。

検証環境

今回はNTTPCデータセンターにて検証を行います。DGX A100の最大消費電力は6,500Wなので、余裕をもって運用できるよう8kVAラックに搭載しています。

DGX A100にインストールしたソフトウェア類のバージョン情報は次の通りです。

OS Ubuntu18.04.5 LTS
Driver 450.51.06
NVIDIAContainerToolkit 1.0.6-1
Docker 19.03.8
Singularity 3.5.2

検証項目

本記事では、下記2点を検証した結果を公開します。
① ベンチマークソフト実行結果
② DGX A100をフルパワーで回した場合の消費電力

Vol.2記事では下記にトライしています。あわせてご覧ください。
③ MIG を利用したGPU分割の手順
④ MIGをDockerコンテナ上で利用してみる
⑤ MIGをSingularityコンテナ上で利用してみる
⑥ DGX A100のCUDAバージョン互換性確認

1. ベンチマークソフト実行結果

GPUのベンチマークソフトはいろいろありますが、今回はtf_cnn_benchmarksを使用して検証しました。RTX2080tiとNVIDIA V100 GPUと比較したいと思います。

ベンチマーク実行時のパラメーターは下記の通りです。

ResNet-50
ResNet-152
  batch_size=32,64
  FP16,FP32
  Optimizer sgd
  variable_update: parameter_server
  
InceptionV3
  batch_size=32,64
  FP16,FP32
  Optimizer sgd
  variable_update: parameter_server

VGG16
  batch_size=32,64
  FP16,FP32
  Optimizer sgd
  variable_update: replicated

AlexNet
  batch_size=32,64
  FP16,FP32
  Optimizer sgd
  variable_update: replicated

ベンチマーク取得時のソフトウェアバージョンは以下の通りです。他GPUと環境を合わせるため、CUDAは(検証実施時点での)1世代前のバージョンである10.1系を採用しています。

CUDA 10.1
TensorFlow 2.2.0
Python 3.6.9

結果は次のグラフのようになりました。(単位:total images/sec)


図1 CUDA10.1でのベンチマーク結果グラフ

ベンチマークソフトによってやや異なるものの、前世代のGPUと比べると1.5~2倍の性能を発揮できていることがわかります。

次に、CUDA10系と11系のベンチマーク結果も比較しました。いずれも、CUDA11のほうが高いパフォーマンスとなっています。利用するソフトウェアとの互換性の問題などがなければ、より新しいバージョンのCUDAを利用したほうが良いでしょう。


図2 cuda11ベンチマーク結果グラフ

2. DGX A100をフルパワーで回した場合の消費電力

次は、DGX A100を動作させた際の消費電力を計測しました。サーバーあたりの搭載GPU枚数や使用率によって変動しますが、一般にGPUはかなりの電力を必要とします。データセンターの電力設計のために、GPUサーバーの消費電力を把握しておくことは非常に重要となります。

メーカースペックは最大6,500Wとなっていますが、実際のところどのくらいの消費電力になるのでしょうか?また、電源ユニット(PSU)は計6つ搭載されていますが、万が一いくつか故障してしまっても電源供給は可能なのでしょうか?

今回は、DGX A100に搭載されているA100 GPU×8枚が、すべて使用率100%になるよう負荷をかけながら、PSUの数を一つずつ減らしていき、各パターンの消費電力をモニタリングしました。

結果は下記の通りです。

表1 消費電力の推移

単位[W]

PSU数 PSU0 PSU1 PSU2 PSU3 PSU4 PSU5 合計
PSU×6つ全て利用 481 585 377 403 195 390 2431
PSU×5つ利用 429 494 455 429 585 - 2392
PSU×4つ利用 585 598 598 572 - - 2353
PSU×3つ利用 - 663 741 715 - - 2119

図1 消費電力の推移

PSU×6~PSU×4までは、PSU一つあたり200-600W前後の消費電力がかかっており、合計値は2,400Wほどです。弊社検証環境での実測値ですが、カタログスペックである最大6,500Wには届きませんでした。
PSU×3の場合は、PSU一つあたり700W前後まで消費電力が上昇し、合計値は約2,100Wになりました。ただし、この場合はGPU3枚の使用率が0%となってしまいました。

よって、さすがにPSUが3枚故障するとMAXのパフォーマンスは発揮できないものの、PSUが1~2枚故障した場合でもGPUカードを動作させることができるということがわかりました。冗長性が求められるミッションクリティカルなシステムでも安心して利用できますね。

Vol.1はここまでとします。Vol.2では、マルチインスタンスGPU(MIG)を検証してみたいと思います。

Vol.2記事へつづく