Amazon EC2のP3インスタンスを試してみた

こんにちは、データサイエンスチーム tmtkです。
この記事では、Amazon EC2に新しく登場した、P3インスタンスを試してみます。また、既存インスタンスのP2, G3との比較を行います。

導入

昨今話題のディープラーニングの学習には高性能GPUが欠かせません。ところが、ディープラーニングに適した高性能GPUを搭載しているサーバは非常に高価で、気軽に導入できるものではありません。しかし、AWSのようなクラウドコンピューティング環境を用いることで、初期投資なしでGPUを使ったディープラーニングを始めることができます。
GPUを搭載したEC2 InstanceにはこれまでG2, G3, P2インスタンスファミリーがありましたが、10/26に新しくP3インスタンスファミリーが追加されることが発表されました(Amazon EC2 P3 インスタンスの新しい AWS Deep Learning AMI をリリース)。また、P3インスタンスに対応した新しいAMIが10/27にリリースされました(Amazon EC2 P3 インスタンスの新しい AWS Deep Learning AMI をリリース)。
P3インスタンスの特徴はNVIDIA Tesla V100 GPUを搭載していることです。V100はTensorコアというものを搭載しており、これによってディープラーニングの学習が高速にできるようです。

性能

Tensorflowのチュートリアルにあるmnist_deep.pyを実行し、ベンチマークを行いました。
まず、P3インスタンスとP2, G3インスタンスの実行時間を比べてみました。結果は以下のとおりです。
実行速度
P3ファミリーは、P2と比べて約3倍、G3と比べても約2倍高速に学習ができています。
次に、コストパフォーマンス(実行速度÷使用料金)を比べました。
コストパフォーマンス
コストパフォーマンスでは、既存インスタンスに比べてやや劣っています。これは、P3インスタンスの利用料が、既存インスタンスの3倍以上と高額であるためです。

詳細な実験手順

今回の実験の手順は、以下のとおりです。
まず、EC2 Management Consoleからインスタンスを作成します。設定は以下のとおりです。

  • リージョンはap-northeast-1(東京)を選択
  • AMIはコミュニティイメージのDeep Learning AMI CUDA 9 Ubuntu Versionを選択
  • インスタンスタイプはP2, P3, G3からそれぞれ選択。インスタンスサイズは最小のものを選択
  • その他の設定はデフォルトで作成

その後、インスタンスの初期化が完了するまで待ちます。
次に、作成したEC2インスタンスにSSHでログインし、ディープラーニングを実行し、実行時間を計測します。

time python3 src/tensorflow_python3/tensorflow/examples/tutorials/mnist/mnist_deep.py

出力のrealの時間を、ディープラーニングの実行時間とします。ただし、1回目の実行時にはデータセットのダウンロードなどが入るので、同じコマンドを2回実行し、2回目の実行時間を結果として採用します。
コストパフォーマンスの値としては、「実行速度=3600秒/実行時間」の値を、「EC2 Instance利用料=1.542 USD/時, 5.243 USD/時, 1.58 USD/時」で割った値を採用しました。
なお、インスタンスのサイズを16xlargeなどに大きくするとGPUの個数が増えますが、Tensorflowなどはデフォルトでは1つのGPUしか使わないため、実行速度は上がらないことに注意します。

まとめ

  • 新しく登場したP3インスタンスの性能について、1GPUの場合に、既存インスタンスファミリーP2, G3との比較を行いました。
  • 料金の高さを考えなければ、P3インスタンスはP2の3倍、G3の2倍ほどの性能があり、とても優れています。
  • コストパフォーマンスで考えた場合、P3インスタンスに性能は劣りますが、G3インスタンスが一番優れています。

当社ではAWS請求代行・活用支援サービスを行っております。また、マネージドクラウド fow AWSとして、AWSの運用代行・監視なども行っております。
オトクなEC2割引サービス、無償サポートから導入・移行支援・運用自動化をはじめとした各種プロフェッショナルサービスを提供しておりますのでぜひご活用ください。

AWS利用料$100ドル無料

あなたにおすすめの記事