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
使用できるインスタンスは下図の通り。
機械学習にも使えそうなマシンがたくさん並んでいるが、最初はロックされていてすぐに使うことはできない。理由はよくわからないが、間違って高価なインスタンスをよくわからないまま借りてしまわないようにという中の人の配慮であろうか。
これらのマシンを使用するには、サポートにアンロックしてもらう必要がある。私は P6000
を使用したかったので、下図の画面から申請を行った。英語だが、伝われば良いので「 For Machine learning (tensorflow, keras, etc...)
」のような感じでsubmitしたら、24時間後くらいにアンロックされ、選択できるようになった。
インスタンスを作ると、ブラウザで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を使った学習は試行していないので、終わったら別記事として掲載したい。