「AI日常化挑戦する会社」

現在位置:

TensorFlow ベンチーマークテスト(2)GeFoce & Quadro 

Tensorflow 公式の GitHub にあるベンチマーク

 

前回は、TensorFlow ベンチマークのインストール・実行方法をご紹介しました。今回は、引き続き GeForce 2080 Ti に加えて、廉価版の GeForce 2080 Superと、長期供給・高耐久性に加え大容量メモリを搭載した Quadro RTX 5000/6000、さらに倍制度演算にも対応する Quadro GV100 のベンチーマークを行いました。

ベンチマークテストの前に、簡単に Quadro GPU の各モデルについて、簡単にご紹介します。Quadro RTX 5000/6000 は、NVIDIA TuringTM GPU アーキテクチャは、INT8 と新しいINT4、INT1(バイナリ))の精度モードに加えて、FP16/FP32 マトリックス演算を高速化する強化された Tensor Core が含まれています。独立した浮動小数点および整数データパスにより、計算とアドレッシングの計算を組み合わせて作業負荷をより効率的に実行できます。

また、2 枚の Quadro RTXTM 5000/6000を HB NVLink に接続して、RTX 5000 の場合は最大50GB/s(双方向帯域幅)、RTX 6000 の場合は、最大100GB/s(双方向帯域幅)の GPU から GPU へのデータ転送を有効にすることにより、有効なメモリフットプリントを倍増し、アプリケーションのパフォーマンスを向上させます。

NVIDIA® Quadro RTXTM 5000

NVIDIA® Quadro RTXTM 5000 は、NVIDIA TuringTM GPU アーキテクチャと 16GB の GDDR6 メモリを搭載したウルトラハイエンドグラフィックスボードです。CUDA コア 3072 基と 16GB の大容量メモリでレンダリング、ビジュアリゼーションにおいて大規模なデータセットの利用を実現します。

また、RT Coreを 48 基、Tensor Coreを 384 基、搭載し Deep Learning やリアルタイムレイトレーシングにおいて独立したコアを使用します。別売り NVLink ブリッジを利用して2 枚の NVIDIA® Quadro RTXTM 5000 を接続することで大規模なレンダリング、AI、仮想現実、ビジュアリゼーションの負荷に対応できます。

NVIDIA® Quadro RTXTM 6000

NVIDIA® Quadro RTXTM 6000 は、NVIDIA TuringTM GPU アーキテクチャと 24GB の GDDR6 メモリを搭載したウルトラハイエンドグラフィックスボードです。CUDA コア 4608 基と 24GB の大容量メモリでレンダリング、ビジュアリゼーションにおいて大規模なデータセットの利用を実現します。

また、RT Core を 72 基、Tensor Core を 576 基、搭載し Deep Learning やリアルタイムレイトレーシングにおいて独立したコアを使用します。別売り HB NVLink ブリッジを利用して 2 枚の NVIDIA® Quadro RTXTM 6000 を接続することで大規模なレンダリング、AI、仮想現実、ビジュアリゼーションの負荷に対応できます。

 

検証用ワークステーションのスペック

今回の検証には、弊社の科学技術計算向けワークステーション「CERVO Gasta ES2S」を使用します。

<ワークステーション仕様>

オペレーティング・システム:Ubuntu 18.04 LTS
フレームワーク:NVIDIA GPU Cloud(TensrFlow)
プロセッサー:[2基] Xeon Silver 4210
メモリー:32GB(8GB x4)Registered-ECC
1TB 高耐久HDD

CERVO Grasta Type-ES2S」は、科学技術計算向け(プロセッサー演算)に設計された HPC 専用ワークステーションです。コア数重視のデュアル・プロセッサーを採用しているため、本格的な並列計算に最適です。有償オプションのレールキットを利用して、サーバー・ラックへの収納も可能です。ディープラーニング用途にも活用でき、最大で 2 枚の GPU ボードを搭載可能です。

TensorFlow ベンチーマークテスト結果

ResNet50(FP32/FP64)、VGG16(FP32/FP64)、inception-v4(FP32/FP64)など、11のニューラルネットワークについて、検証してみました。ベンチマークの値(images/sec)の大きいものが、1 秒で何枚の画像を学習処理したかを表し、性能が高いことを示します。

ResNet50では、GPU の性能に比例して、ベンチマーク値が上がっています。また、NVLINKを使わずに、GPU を 2 枚搭載する場合は、約1.8倍~1.9倍の性能向上が見られました。その他の結果について、下記の表をご覧ください。

※ 前回、ベンチマークソフトのインストール手順をご紹介しましたが、下記に再度ご紹介しておきます。

TensorFlow の benchmark を Git を使いダウンロード

TensorFlow の GitHub にアップされている benchmark を使ってGPUの性能を検証していきます。まずは、TensorFlow の benchmark を Git を使いダウンロードしていきます。

検証にあたり、事前に Git のインストールが必要で、「sudo apt install git」を実行しておきましょう。続いて、Tensorflow 公式 の GitHub にあるベンチマークをダウンロードします。(git clone https://github.com/tensorflow/benchmarks.git)

それでは準備が整いましたので、実際にベンチマークを使っていきたいと思います。

まずは、前回・前々回等でご紹介した Docker や Singularity 等を利用して NGC(Nvidia GPU Cloud) から TensorFlow のイメージを取得し実行します。今回のイメージVersionは「20.03-tf2-py3」を使用します。

それでは TensorFlow を起動し、ベンチマークを実行します。ベンチマークの実行は、先程 Git で取得したディレクトリの中に入っています。(例:例:cd benchmarks/scripts/tf_cnn_benchmarks)

では実際に動かしてみます。

python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=32 --model=resnet50 --variable_update=parameter_server

ここで指定するオプションは次のとおりです。

--num_gpus=1

(複数枚搭載しており1枚のみの場合は「1」を2枚以上で実行する場合はその枚数の数字を入力します)

--batch_size=32

(2のn乗の値を指定することが多いようです。ここでは「32」もしくは「64」で指定します)

--model=resnet50

Deeplearningの使用モデルを指定します。モデルには以下の種類があります。

・resnet50
・resnet101
・resnet101_v2
・resnet152
・resnet152_v2
・inception3
・inception4
・vgg16
・vgg19
・alexnet

--variable_update=parameter_server

変数の管理方法の設定になり、以下の種類があります。

・parameter_server
・replicated
・distributed_replicated
・independent

ここでは「parameter_server」を指定しています。

実際に動かしてみると次の画像のように数字が現れ、学習しています。この数字が大きいほどGPUの性能が良い事になります。それぞれのモデルを実行した数字をまとめたものは右側の画像になります。(画像をクリックすると大きな画像で見れます。)

新製品!FPGA 開発ボード搭載のワークステーションをリリースしました。

ザイリンクスの Alveo™ U50 データセンター アクセラレータ カードは、金融コンピューティング、機械学習、計算用ストレージ、データ検索/分析などあらゆるワークロードに対応し、最適化されたアクセラレーション機能を提供します。ザイリンクスの UltraScale+™ アーキテクチャをベースに構築され、100Gbps ネットワーク I/O、PCIe Gen4、HBM を統合しています。

一般的なソフトウェアに対するアクセラレートはザイリンクスおよびパートナーがエコシステムとなり広範なアプリケーションをサポートしております。お客様独自のソフトウェアをアクセラレートする際には、アプリケーション開発者ツール(Vitis™)を利用することで、差別化したアプリケーションを市場へ送り出すことができます。