#前口上
最強パワーの GPU インスタンスをディープな感じのデータ分析に使うべく、常に強力なマシンパワーを追い求め、尚且つコストパフォーマンス高めのボールを狙い打ちしようとしてる、屈強のデータサイエンティストが打席に立っているとします。
打ちやすいボールを投げるために、まず我々がどんなボールを持っているのか Azure の GPU インスタンスについて調べてみましたので記録しておきます。
(2019/4/29 時点)
#比較してみる
###1. Azure VM Series 毎に整理
GPU 搭載の VM について調べてみました。大きく分けて以下の 3 種類から選べます。用途ごとにシリーズが分かれているんですね。
#####NC Series 機械学習用
- NC : Tesla K80
- NCv2 : Tesla P100
- NCv3 : Tesla V100
#####ND Series ディープラーニング用
- ND : Tesla P40
- NDv2(Preview) : Tesla V100 NVLink
#####NV Series グラフィックス用
- NV : Tesla M60
- NVv2(Preview) : Tesla M60, Premium サポート
###2. GPU アーキテクチャ毎に整理
いずれの VM もNVIDIA のTESLA GPU を搭載しています。Azure VM N Series の "N" は "NVIDIA" の "N" なんですね。GPU アーキテクチャの違いを整理してみます。カッコの中は発売年を書いています。
#####Kepler (2012年)
- NC : Tesla K80
- 単精度(高)、倍精度(低)信号処理、画像処理向けの GPU
#####Maxwell (2014年)
- NV : Tesla M60
- Keplerの発展形
- グラフィックス用途に最適化(単精度演算重視)
- 倍精度演算必須の HPC 用途には向かない
#####Pascal (2016年)
- NCv2 : Tesla P100, ND : Tesla P40
- メモリ帯域、レジスタファイル、L2 キャッシュ大幅増
- HPC用途 も グラフィックス用途もいける
- NVLink 対応
- P40 は ディープラーニング用途向け INT8 演算に最適化
#####Volta (2017年)
- NCv3 : Tesla V100, NDv2(Preview) : Tesla V100 NVLink
- 強化版 Pascal
- Tensorコア サポート
- インターGPU、GPU-CPU 分散処理強化
ざっと眺めてみると同じ NVIDIA Tesla GPU を搭載していてもチップのアーキテクチャ毎に向き・不向きがありそうです。やはり利用用途向けに NC, ND, NV を使い分けるのが良いですね。
あとは価格の違いが気になります。
###3. スペックと価格を整理
インスタンス毎の価格を比較するために、最小インスタンス GPU 1X での時間単位の価格で比較してみます。NDv2 のみ最小インスタンスが GPU 8X となっている点は注意が必要です。
概算ですが、
Kepler と Maxwell がGPU 1X で時間あたり $1
Pascal が少し高くなって $2
Volta はさすがの最新 GPU なので $3 となっています。
#####NC Series
INSTANCE | GPU | CORE | Cost/hour |
---|---|---|---|
NC6 | K80 | 6 | $0.9 |
NC6v2 | P100 | 6 | $2.07 |
NC6v3 | V100 | 6 | $3.06 |
#####ND Series
INSTANCE | GPU | CORE | Cost/hour |
---|---|---|---|
ND6 | P40 | 6 | $2.07 |
ND40v2 | V100 NVLink | 40 | $12.24 |
#####NV Series
INSTANCE | GPU | CORE | Cost/hour |
---|---|---|---|
NV6 | M60 | 6 | $1.14 |
NV6v2 | M60 | 6 | $0.77 |
###4. Azure vs AWS vs GCP で比較
最後に各クラウドベンダーでの最大パワーとコストパフォーマンスを比較してみます。
#####Azure
| Series |GPU |GPU Mem|NWBW|Cost/hour |
|:--------|:---|:---|---------:|---------:||---------:|
| ND24 |4X P40 |96GB|N/A| $8.28|
| NC24 v3 |4X V100 |64GB|N/A|$12.24|
| ND40 v2 (Preview) |8X V100 NVLink |96GB|24Gbps|$12.24|
Azure Linux Virtual Machines Pricing
#####AWS
| Series |GPU |GPU Mem|NWBW|Cost/hour |
|:--------|:---|:---|---------:|---------:||---------:|
| P3 8x |4X V100 NVLink | 64GB|10Gbps|$12.24|
| P3 24x |8X V100 NVLink | 256GB|100Gbps|$31.22|
Amazon EC2 P3 Instance Product Details
#####GCP
Series | GPU | GPU Mem | Cost/hour |
---|---|---|---|
V100 | 8X V100 | 128GB HBM2 | $19.84 |
Google Compute Engine Pricing |
#まとめ
最もパワフルなノードは AWS の P3 24X ですね。
V100 NVLink を8個搭載しているのは Azure ND40 v2 や GCPと同じですが、GPU Memory が256GB と Network Bandwidth が 100Gbps と Azure や GCP より高速です。
一方コストパフォーマンスでは Azure に軍配が上がります。
ND40 v2 の時間当たりの価格が $12.24 と同等の GPU を積んだ AWS の P3 $31.22 や GCP と比較して圧倒的に安いのですが、これは Azure がプレビュー価格であることも考慮に入れる必要がありそうです。
GCP は比較すると選択肢が限られるのですが、GPU Memory は Azure の ND40 v2 より多め、一方で価格も高めとなっています。NVLink 対応しているようですが、価格表からは読み取れませんでした。
調べてみたところ、Azure であれば用途に応じて NC と ND シリーズを使い分け、さらにベンダー間では思ったより差がありませんでしたので、好きな環境を選んで大丈夫そうです。