Deep Learning ブームの中皆様いかがお過ごしでしょうか。以前 機械学習で為替予測 Deep Learning 編 に書いたように私は Deep Learning で為替予測をやってるんですが、計算リソースとして AWS を使っています。何故 AWS を選んだのかというと、コストパフォーマンスが良いからです。

概算

まずベースラインとなるマシンを設定します。そうですね、ここでは NVIDIA GeForce GTX 1080 Ti と 32 GB メモリを積んだ自作マシンを想定しましょう。自作とかパーツ関連には疎いので、どっかで 20 万ぐらいで組めたみたいなのを見たので 20 万としましょう。

AWS EC2 での GPU インスタンスは p2 と g2 ですが、ここでは p2 を想定します。g2 は CUDA のドライバが面倒なことになったので p2 のほうがいいです。
値段は $0.9/時間 なので、ベースラインの 20 万を超えるには $1 = ¥110 として

200000 / 110 / 0.9 / 24 = 84.17508417508418

なので、約 84 日でベースラインを超えることになります。それ以上の期間使うなら 20 万で自作マシンを組んだほうが安いということになりますね。

しかし AWS EC2 にはスポットインスタンスというとても安くインスタンスが使える方法があります。これを使った場合、価格の履歴から見ると大体 $0.20 から $0.25/時間 ぐらいで使えます。これだと

200000 / 110 / 0.25 / 24 = 303.03030303030306

となり約 303 日でベースラインを超えます。1 日 $6 で、月に約 ¥20,000 といったところでしょうか。また、これは 1 日 24 時間動かしっぱなしにしたときの料金なので、例えば途中で他のことをするために止めたりしていた場合はその分だけ安くなります。

自作マシンの問題点

さて、自作マシンには AWS EC2 にはない問題が 2 つあります。1 つは電気代で、これを加味した場合さらにベースラインが引き上がります。もう 1 つは騒音です。CPU や GPU にはファンが付いているのでこの音がうるさいです。それが AWS EC2 を使えばあら不思議、騒音は消え去り静かな夜が迎えられます。やりましたね。

Google Cloud Platform はどうなの?

Google Cloud Platform の Compute Engine を使わない理由ですが、単純に GPU を使うのであれば p2 のほうが安いというのに加えてプリエンプティブインスタンスには GPU が使えず、1 日で強制的にシャットダウンされます。AWS EC2 のスポットインスタンスは入札価格を上回らない限りはシャットダウンされません。

Microsoft Azure はどうなの?

そもそもスポットインスタンスやプリエンプティブインスタンスみたいな仕組みが見つからなかった。というかコンソール使いづら過ぎて多分もう 2 度と使わない。

さくらはどうなの?

貧乏人には無理。