クラウドで利用できるGPUを比較してみた


大柳です。

先日、GCP(Google Cloud Platform)でGPUインスタンスが利用可能になったと発表されました。GCPの対応によりAWS、Azure、GCPの主要なクラウドでGPUインスタンスが出揃った形になります。
GPUインスタンスは機械学習や科学計算などHPC(high-performance computing)に利用されます。最近、話題になった線画自動着色の「PaintsChainer」のような機械学習には高い計算能力が必要で、GPUは必須のツールです。
PaintsChainer -線画自動着色サービス-

クラウドであれば、GPUインスタンスも時間課金で利用可能でコストを抑えることができます。
今回の記事では主要3クラウドで提供されるGPUインスタンスの比較をしてみます。

AWS

AWSでGPUを搭載しているインスタンスはG2、P2の2種類があります。
AWSはGPUを搭載したインスタンスを他のクラウド事業者に先駆けて提供を始めています。G2インスタンス(g2.2xlarge)は2013年11月に提供を開始、P2インスタンスは2016年9月に提供を開始しています。

G2で使用されているGPUは、NVIDIA GRID K520で、3Dレンダリング、動画エンコーディングなどグラフィック処理向けです。
P2で使用されているGPUは、NVIDIA Tesla K80で、用途は機械学習や金融工学、分子モデルシミュレーションなどHPCです。

課金は1時間単位です。2017年3月現在、東京リージョンではG2のみ利用可能です。

Azure

AzureでGPUを搭載しているインスタンスはNシリーズのみです。
Nシリーズは2016年12月に提供が開始されました。

NVインスタンスで使用されているGPUは、NVIDIA Tesla M60 GPUで、GPUを仮想化して共有し、グラフィックアプリケーションなどをクラウド上の仮想デスクトップ環境で利用することができます。
NCインスタンスで使用されているGPUは、NVIDIA Tesla K80で、AWSのP2と同じです。

課金は1分単位です。2017年3月現在、国内では東日本、西日本リージョンともNシリーズは提供されていません。

GCP

GCPでは一部のインスタンスタイプを除いて、GPUを任意のインタンスに追加することができます。
GPUは2017年3月に一般向けに提供が開始されました。
利用可能なGPUは、NVIDIA Tesla K80で、AWSのP2と同じです。

課金は最低10分から、以降は1分単位です。2017年3月現在、東京リージョンでは提供されていません。

各クラウドの比較

各クラウドで利用可能なインスタンス種類、GPUのモデル名、CPU、メモリは以下の比較表のようになります。
vCPU数、メモリサイズも大きく、ハイスペックなインスタンスが多いです。

クラウドインスタンスタイプGPUGPU数vCPUメモリ(GB)利用可能なリージョン・備考
AWSp2.xlargeNVIDIA Tesla K801461バージニア北部、オレゴン、アイルランド、GovCloud
p2.8xlarge832488
p2.16xlarge1664732
g2.2xlargeNVIDIA GRID K5201815東京、米国西部(北カリフォルニア)、フランクフルト、シンガポール、シドニー、バージニア北部、オレゴン、アイルランド
g2.8xlarge43260
AzureNC6NVIDIA Tesla K801656米国中南部、米国東部
NC12212112
NC24424224
NC24r424224InfiniBandも併用
NV6NVIDIA Tesla M60 GPU1656東南アジア、米国中南部、米国中北部、米国東部、西ヨーロッパ
NV12212112
NV24424224
GCPNVIDIA Tesla K8011-81-52サウスカロライナ、ベルギー、台湾
21-161-104
41-321-208
81-321-208

まとめ

最後に、コストの話をすると、GPUインスタンスの利用料金はAWSのp2.xlargeの利用料金は1時間当たり$0.9(オレゴン)ですので、1日だと$21.6(約2,500円)、1カ月だと$669.6(約77,000円)です。
高く感じるかもしれませんが、K80を搭載したオンプレのサーバを調達すると200万円くらいからになるので、クラウドなら初期投資なしで、手軽に使い始めることができます。

2017年3月現在、国内リージョンでGPUが利用できるのはAWSのみですが、HPCであれば海外とのネットワークレイテンシはあまり問題にはならないかと思います。

各クラウドで様々な種類のGPUインスタンスが利用できることがお分かりいただけたかと思います。
今後はOpenCVや今流行りのディープラーニングなどをGPUインスタンスで使ってみて検証をしてみたいです。

最後までお読みいただきありがとうございました。