いつも AWS だったので、 GCP でもやってみる。
$300分お試し無料らしい
GCP の環境構築手順
- インスタンスを作成する(スペックとか適当)
- ssh鍵の登録。VM落としている状態で、インスタンスを表示して編集、[ssh鍵がn個あります]のところの[表示して編集する]。テキストボックスにssh公開鍵をコピペ。買って認識される
- 最後に[保存]
- インスタンスを再度起動すると登録したssh鍵のユーザ名でアカウントができていてsloginできる
- UDPが開いていないのでmoshでloginできない。そこでダッシュボードメニューの下の方に[VPCネットワーク]というのが隠れていて、そこの[ファイアウォール ルール]
- [ファイアウォールルールを作成]で適当な名前で[トラフィックの方向]上り、[ターゲット]は全てのインスタンス(どうせ他でも使う)、[source IP]を0.0.0.0/0、[指定したport]でudpに60000-65535とか入れて[作成]
- mosh loginすると
The locale requested by LC_CTYPE=ja_JP.UTF-8 isn't available here.
とか怒られてsudo locale-gen ja_JP.UTF-8
する
LTSなので対してすることないが、apt-get update/upgrade/dist-upgradeするとか、普段使いのdot files転送するとか(.screenrc, .zsh{env,rc}, .zlog{in,out})、chshしようとするとパスワードがわからないのでsudo env EDITOR=vi vipw
してlogin shellを/bin/zshに変える。
GCP での GPU 利用環境構築手順
インスタンス作成でGPUありのインスタンスを作ればいい。
ただし、リージョンによってGPUの種類・有無がいろいろある。
身近な(?)主だったところだとこんな感じ
region | 利用できるGPU |
---|---|
us-east1 | Tesla P100 |
asia-east1 | Tesla K80, P100 |
asia-northeast1 | なし |
そのほかasia | なし |
us-west1 | Tesla K80, P100 |
tokyoであるところのasia-northeast1だとそもそもGPU使えない。
しかしasia-east1(台湾)なら使えるんでここでいいじゃん。
特にP100じゃないとダメな使い方をするわけではない。
以下手順
- GCPダッシュボードから、[Comute Engine]の[VMインスタンス]
- [インスタンスを作成]
- [リージョン]で[asia-east1]を選んで
- [マシンタイプ]を[カスタマイズ]
- [GPUの数]で1を選んで
- [ブートディスク]を[変更]
- CUDAを手で入れようと思うが、CUDAのサポートしているのがubuntuだと16.04か17.10(そろそろ18.10じゃないのか?)。一方GCP側で用意されているのは16.04LTSか18.04LTSなので[ubuntu 16.04LTS]を選んで
- 念のため、ブートディスクの[サイズ(GB)]を[30]にして[選択]
- [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー]を選んで、[セキュリティー]タブを選んでテキストボックスに[ssh 公開鍵をコピペ]
- [作成]を押すとインスタンスの作成と起動が始まる(はず)
起動したらssh loginして、cudaの通常のインストール
↓これ
sudo dpkg -i cuda-repo-ubuntu1604_9.2.148-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
インストールできた nvcc で、昔の自分のcudaコードコンパイルして見たが、
アカウントのアップグレードとか、クォータの申請とかやらずに特に何事もなく動いている
gloud sdkとやらはまだ一度も使っていない