Amazon Web Services ブログ

AWS Deep Learning AMI に Horovod が追加され、Amazon EC2 P3 インスタンスで、より高速なマルチ GPU TensorFlow のトレーニングが可能に

この AWS Deep Learning AMI は、よく普及しているオープンソースの分散トレーニングフレームワークで、複数 GPU で TensorFlow トレーニングを拡張します。UbuntuAmazon Linux 用で、 Horovod といっしょにインストールおよび全設定が完了済みです。

これは、 TensorFlow 1.8 の最適化ビルドのアップデート版で、5 月初旬に開始されました。 このカスタムビルドの TensorFlow 1.8 は、高度に最適化されたソースから直接構築され、Amazon EC2 C5 および P3 インスタンスのストック TensorFlow 1.8 と比較して、トレーニングパフォーマンスが向上しています。 マシンラーニングの開発者は、AMI に Horovod を追加すれば、TensorFlow トレーニングを P3 などの Amazon EC2 GPU インスタンス上で、1 つの GPU から複数の GPU にすばやくスケールアップすることが可能となり、トレーニングパフォーマンスをさらに向上させることができます。 開発者は、パラメーターサーバーを使用する標準の TensorFlow 分散トレーニングモデルと比較して、コードの変更を少なくし、より高いマルチ GPU トレーニングパフォーマンスが可能となります。

Amazon EC2 P3 インスタンスでの、より高速なマルチ GPU TensorFlow トレーニング

Horovod は、Message Passing Interface (MPI) モデルに対応しています。 これは、高性能分散コンピューティング環境において、ノード間でメッセージを渡したり通信を管理するための標準です。 Horovod の MPI を実装することで、パラメータサーバベースの分散型トレーニングモデルと比較して、より単純化されたプログラミングモデルが可能となります。 このモデルにより、開発者はコード変更を最小限に抑えて、既存の単一 GPU トレーニングプログラムを簡単に拡張することができます。 さらに、Horovod は Deep Learning AMI にインストールされた NVIDIA Collective Communications Library (NCCL) を活用して、次のようなマルチ GPU 通信プリミティブの実装を最適化します。 All-Reduce といったものは、Amazon EC2 GPU インスタンスに電力を供給する NVIDIA GPU のパフォーマンスを高速化させることができます。

Horovod を使った実験では、TensorFlow 1.8 を使用するよりも 1.2 倍の速さでした。AWS Deep Learning AMI 上で最適化された TensorFlow 1.8 のビルドを使用して、ImageNet データセットを含む ResNet-50 モデルをトレーニングしました。 AMI は、NVIDIA CUDA 9.0、cuDNN 7.0.5、NCCL 2.1、および OpenMPI 1.10.7 を使用し、8 個の NVIDIA Volta V100 GPU でバッチサイズ 2048 の混在精度 (fp-16) モードのモデルを、単一の p3.16xlarge EC2 インスタンス上でトレーニングします。

標準的な TensorFlow 分散トレーニングモデルを使用して、p3.16xlarge インスタンスの 8 個の GPU をトレーニングし、7.67 時間 (27,621 秒) の総トレーニング時となり、秒当たり 4249 イメージのスループットを達成しました。 トレーニングプログラムは、90 エポックで 75.49 % の最高検証精度を達成しました。 Horovod を使用すると、スループットは 5058 画像 / 秒 ( 1.2 倍高速) に改善され、総トレーニング時間は 6.36 時間 ( 22,906 秒) に短縮され、最高検証精度は 75.59 %になりました。 詳しくは、この実験を設計・実行するためのステップバイステップガイドを開発者ガイド内に記載しておりますので、ご確認ください。

Horovod のパフォーマンスとユーザビリティのメリットを示すために、この実験は行われました。 この Horovod のサイト では、Horovod を利用した、より手早く簡単にできる分散 TensorFlow トレーニングについての詳細がありますので、ご覧ください。

Deep Learning AMI を使ってみよう。

AWS Deep Learning AMI のご利用を開始するには、スタートチュートリアル、および開発者ガイドを参考にしてください。他にもチュートリアル、リソース、リリースノートがあります。 最新の AMI が AWS Marketplace で利用可能になりました。 また、フォーラムをサブスクライブして、新しい
開始の通知を受け取ったり、質問を投稿したりすることもでき
ます。


今回のブログの投稿者について

Sumit Thakur は AWS 深層学習のシニアプロダクトマネージャーです。特に深層学習 AMI のエンジンを使いやすくすることに焦点を当て、ユーザーがクラウドでディープラーニングを開始しやすくする製品を担当しています。 自然に触れたり、SF の TV シリーズ鑑賞が趣味です。