StatsBeginner: 初学者の統計学習ノート

統計学およびR、Pythonでのプログラミングの勉強の過程をメモっていくノート。たまにMacの話題。

AWSのディープラーニング用インスタンスを検討する

Google Colabの環境は気に入ってるのですが、操作しないと90分でランタイムが切断されるルールや、Pro+に入っても24時間以上は回せないルール、さらには実行中にGoogle Driveに書き込めなくなったりする不具合などもあって、長時間の学習ではストレスが溜まります。


その点、AWS(EC2)だともう少し安心して回しっぱなしにできるはずなので、移行を考えることにしました。


使えるGPUの種類が分かりにくかったんですが、下記のページによると、
推奨 GPU インスタンス - Deep Learning AMI


P3:NVIDIA Tesla V100 GPU が最大 8 個搭載されます。
P4:NVIDIA Tesla A100 GPU が最大 8 個搭載されます。
G3:NVIDIA Tesla M60 GPU が最大 4 個搭載されます。
G4:NVIDIA T4 GPU が最大 4 個搭載されます。
G5:NVIDIA A10G GPU が最大 8 個搭載されます。


ということらしい。
GPUのスペックはこのへんの比較サイトにモデル名を入れると比較できるが、たぶんA100>V100>A10G>T4>M60という感じか。
CPUとGPUの仕様性能比較 | TopCPU.net
ビデオカードを比較する


気になるのが、バッチサイズに直接影響するGPUメモリの容量で、とくにTransformerはとてもメモリを食う。Colabで小型Transformerに英日翻訳を学習させたとき、メモリ40GBのA100*1を使ってたのだが、これでも少ないと感じてしまった。
ところで、Colabでメモリ40GBのA100が使えることを考えると、いくら長時間稼働に関してAWSが有利だとはいっても、あまりスペックを落として使うぐらいならColabで高速に済ませてしまったほうがいいような気はしてくる。ただAWSではGPUが複数登載されたものがあり、並列化することでさらに速くできるので、安いやつを並列で使うと総合的にみてColabよりお得だったりするかもしれない。


A100が使えるP4インスタンスは現状「p4d.24xlarge」しか選択肢がなく(リージョンによるらしいが)、これはA100が8個もついてて、1時間45ドルもする。これは気軽には使えないが、もう少しスペックの低いインスタンスで複数GPUの並列処理のコードを試してから、本気の処理をするときだけこのインスタンスに乗せてもいいのかもしれない。
V100が使えるP3インスタンスは、1個、4個、8個のものがあり、8個つきの「p3dn.24xlarge」は1時間43ドルもするが、1個だけの「p3.2xlarge」だと4ドル、4個つきの「p3.8xlarge」だと17ドルとなる。
A10Gが使えるG5インスタンスは、8個つきの「g5.48xlarge」が1時間24ドルで、4個つきの「g5.24xlarge」が12ドル、1個つきの「g5.16xlarge」だと6ドルに成る。
T4が使えるG4インスタンスは、1個つきのうち一番安い「g4ad.xlarge」が1時間0.5ドルで、4個つきの「g4ad.16xlarge」や「g4dn.12xlarge」が5ドル、8個つきの「g4dn.metal」が11ドルになっている。


これらを総合的に考えて、とりあえず、T4を4個つけた「g4dn.12xlarge」で複数GPUを並列で回すのを試してみて、うまく回りそうだったら最強スペックの「p4d.24xlarge」に移植してみようかなと思った。まだ考え中ですが。

*1:A100には80GBの製品もあり、AWSではこれが使えるのかもしれない。あとで確認する。