dogwood008の開発メモ!

最近のマイブームは機械学習, Ruby on Rails。中でも機械学習を使った金融商品の自動取引に興味があります。

クラウドでGPUを使った機械学習を安価で行う(Paperspace)

TL; DR

Paperspace (paperspace.com) を使うと、$1/時くらいで良い感じのスペックのGPUがついたマシンを借りることができる。

他のクラウドのサービスと比べ何が良いのか

Paperspace (paperspace.com)というサービスがあって、ここではAWSのEC2のように、ミリ秒単位でクラウドのマシンをレンタルできる。

便利なのは、予め「機械学習するならこれくらい要るやろ」的なライブラリがテンプレを使うとだいたいインストールされた状態で提供されるところだ。もちろん1から始めることもできる。詳しくはリンク先に書いてあるが、抜粋すると以下のものがテンプレに入っている(若干古いなぁという気持ちもある)。

  • Ubuntu 14.04
  • Atom 1.18.0-1~webupd8~0
  • CUDA 8.0.61-1
  • cuDNN 5.1.10-1+cuda8.0
  • TensorFlow 1.2.1 (Python 2 & 3)
  • Anaconda 4.4.0 (python 3.6, 2.7)
  • Nvidia-docker 1.0.1
  • Docker ce
  • PyTorch 0.2.0
  • OpenBLAS
  • Caffe
  • Theano 0.9.0 (Python 2 & 3)
  • Torch
    • python2 package torch (0.1.11.post5)
    • python3 package (no torch for python 3.4.3)
  • Keras 2.0.5 (Python 2 & 3)
  • Chrome 59.0.3071.115-1
  • NVidia 375.66-0ubuntu0.14.04.1
  • Torch commit 5961f52a65fe33efa675f71e5c19ad8de56e8dad
  • Caffe commit 4efdf7ee49cffefdd7ea099c00dc5ea327640f04
  • OpenBLAS commit 482015f8d6840da9617b422e758162cf7358c8b2

使用できるインスタンスは下図の通り。

f:id:dogwood008:20171125172906p:plain

機械学習にも使えそうなマシンがたくさん並んでいるが、最初はロックされていてすぐに使うことはできない。理由はよくわからないが、間違って高価なインスタンスをよくわからないまま借りてしまわないようにという中の人の配慮であろうか。

これらのマシンを使用するには、サポートにアンロックしてもらう必要がある。私は P6000 を使用したかったので、下図の画面から申請を行った。英語だが、伝われば良いので「 For Machine learning (tensorflow, keras, etc...) 」のような感じでsubmitしたら、24時間後くらいにアンロックされ、選択できるようになった。

f:id:dogwood008:20171125173010p:plain

インスタンスを作ると、ブラウザでWebコンソールやリモートアクセスができるようになる。必要ならば、Public IPを振ってもらう ($3/月)こともできる。

実際に使ってみた

$ nvidia-docker run --rm nvidia/cuda:8.0-cudnn5-runtime-ubuntu14.04 nvidia-smi

Sat Nov 25 07:20:03 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66                 Driver Version: 375.66                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro P6000        Off  | 0000:00:05.0      On |                  Off |
| 26%   24C    P8    14W / 250W |    513MiB / 24443MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

まだGPUを使った学習は試行していないので、終わったら別記事として掲載したい。