とりあえず GPU の申請ができたのでDeep Learning VM Image | Google Cloudを使う。
推定費用: $295.20/月
だが全力では使わないので・・・。
ソースからのビルド | TensorFlowより、tensorflow-2.1.0 は CUDA 10.1 でテスト済み。Start Locally | PyTorchより、PyTorch 1.4 も CUDA 10.1 とのこと。
- Deployment name
- 適当
- Zone
- us-west1-b
- Machine type
- vCPU: x 2, メモリ: 13 GB
- GPUs
- Framework
- TensorFlow Enterprise 2.1 (CUDA 10.1)
- GPU
- Access to the Jupyter Lab
- Boot Disk
- Boot disk type: Standard Persistent Disk
- Boot disk size in GB: 100
- Networking
- 事前に VPC で作成しておいたネットワーク
に相当する情報で VM インスタンスを作成したい。・・・が、UI 上から「プリエンプティブル」に指定できないように見えるので gcloud
で作成する。面倒臭いので VM インスタンスの作成と起動 | Compute Engine ドキュメント | Google Cloud などを参考に Cloud Shell
から実行する。(イメージの選択 | Deep Learning VM | Google Cloudも参考にする)
gcloud compute --project=プロジェクトID instances create ml-dev --zone=us-west1-b --image-family=tf2-latest-gpu --image-project=deeplearning-platform-release --subnet=VPCで作成したサブネット名 --network-tier=PREMIUM --no-restart-on-failure --maintenance-policy=TERMINATE --preemptible --machine-type=n1-highmem-2 --accelerator="type=nvidia-tesla-t4,count=1" --metadata="install-nvidia-driver=True" --boot-disk-size=100GB --boot-disk-device-name=ml-dev --labels=env=ml-dev
みたいなので良いのではないかと・・・(東京なら --zone=asia-northeast1-c
とかかな)。ただ、これだと
WARNING: You have selected a disk size of under [200GB]. This may result in poor I/O performance. For more information, see: https://developers.google.com/c ompute/docs/disks#performance.
というログが出る・・・。SSH で接続したいので、「VM インスタンスの詳細」にて「SSH 認証鍵」の登録も行う。セットアップ後に
$ nvidia-smi Tue Apr 14 13:58:49 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 418.87.01 Driver Version: 418.87.01 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 | | N/A 51C P0 26W / 70W | 0MiB / 15079MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
$ lspci | grep -i nvidia 00:04.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243
$ ls -l /usr/local/cuda/lib64/libcudnn* -rwxr-xr-x 1 root staff 428711256 Mar 31 00:26 /usr/local/cuda/lib64/libcudnn.so -rwxr-xr-x 1 root staff 428711256 Mar 31 00:26 /usr/local/cuda/lib64/libcudnn.so.7 -rwxr-xr-x 1 root staff 428711256 Mar 31 00:26 /usr/local/cuda/lib64/libcudnn.so.7.6.5 -rw-r--r-- 1 root staff 403829728 Mar 31 00:26 /usr/local/cuda/lib64/libcudnn_static.a
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #define CUDNN_MAJOR 7 #define CUDNN_MINOR 6 #define CUDNN_PATCHLEVEL 5 -- #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL) #include "driver_types.h"
みたいなので GPU 関連の情報を取得できる。
VM インスタンス起動時には、「IAM と管理」の「割り当て」からは GPUs (all regions)
と Preemptible NVIDIA T4 GPUs
がそれぞれ「現在の使用量」が 1 として見えている。
プリエンプティブルな VM にしていることもあって、1 日に 3 時間、週 5 日程度遊んだ場合の費用見積もりは 8.79 + 4.00 で
Total Estimated Cost: USD 12.79 per 1 month
とのこと。これが普通の VM だと 30.52 + 4.00 で
Total Estimated Cost: USD 34.52 per 1 month
となるのでお得感はかなり違う。これは n1-highmem-2
の費用だが、メモリ量も微妙ということで、n1-highmem-4
にすると、それぞれ USD 14.42, USD 42.23 で、n1-highmem-8
にするとそれぞれ USD 17.66, USD 57.66 となる。
通信量などの諸々も込みで 4 月分は以下のような費用だった。
日 | 設定 | 時間 | 費用 | 総和 |
---|---|---|---|---|
1 | n1-highmem-2 |
2.1 | 30 円 | 30 円 |
2 | 3.4 | 50 円 | 80 円 | |
3 | n1-highmem-4 |
1.6 | 24 円 | 104 円 |
4 | 1.8 | 32 円 | 136 円 | |
5 | 2.8 | 48 円 | 184 円 |
詳細はGCP費用 - らんだむな記憶で飽きるとこまで。
*****
GCPとDockerでKaggle用計算環境構築 - Qiitaにも書いてあるが、CPU数, GPU数, メモリについてはコンソール上からマシンタイプや GPU 設定を変更することで変更できそうに見える。後日メモリ不足のため n1-highmem-2
を n1-highmem-4
に変更した。VM インスタンスを停止させて設定を変えて起動したら反映されていた。
参考程度に us-west1 での 1 時間あたりの VM インスタンスの費用は以下であり、
total hours | 1 per month | 1 per month | 1 per month | 1 per month |
---|---|---|---|---|
VM class | preemptible | regular | preemptible | regular |
Instance type | n1-highmem-4 | n1-highmem-4 | n1-highmem-4 | n1-highmem-4 |
Region | Oregon | Oregon | Oregon | Oregon |
GPU dies | 1 NVIDIA TESLA T4 | 1 NVIDIA TESLA T4 | 2 NVIDIA TESLA T4 | 2 NVIDIA TESLA T4 |
GPU's Cost | USD 0.11 | USD 0.35 | USD 0.22 | USD 0.70 |
GCE Instance Cost | USD 0.05 | USD 0.24 | USD 0.05 | USD 0.24 |
Estimated Component Cost | USD 0.16 per 1 month | USD 0.59 per 1 month | USD 0.27 per 1 month | USD 0.94 per 1 month |
標準永続ディスク
100 GB と共に運用すると、1 日に 3 時間、週 5 日程度(1 月あたり 21.7 日程度)遊んだ場合で 1 月あたり以下となる。
Total Estimated Cost | USD 14.42 per 1 month | USD 42.23 per 1 month | USD 21.59 per 1 month | USD 65.05 per 1 month |
ついでに V100 だと、
total hours | 1 per month | 1 per month | 1 per month | 1 per month |
---|---|---|---|---|
VM class | preemptible | regular | preemptible | regular |
Instance type | n1-highmem-4 | n1-highmem-4 | n1-highmem-4 | n1-highmem-4 |
Region | Oregon | Oregon | Oregon | Oregon |
GPU dies | 1 NVIDIA TESLA V100 | 1 NVIDIA TESLA V100 | 2 NVIDIA TESLA V100 | 2 NVIDIA TESLA V100 |
GPU's Cost | USD 0.74 | USD 2.48 | USD 1.48 | USD 4.96 |
GCE Instance Cost | USD 0.05 | USD 0.24 | USD 0.05 | USD 0.24 |
Estimated Component Cost | USD 0.79 per 1 month | USD 2.72 per 1 month | USD 1.53 per 1 month | USD 5.20 per 1 month |
Total Estimated Cost | USD 51.48 per 1 month | USD 177.06 per 1 month | USD 103.71 per 1 month | USD 342.71 per 1 month |
us-northeast1 での 1 時間あたりの VM インスタンスの費用は以下であり、
total hours | 1 per month |
---|---|
VM class | preemptible |
Instance type | n1-highmem-4 |
Region | Tokyo |
GPU dies | 1 NVIDIA TESLA T4 |
GPU's Cost | USD 0.11 |
GCE Instance Cost | USD 0.07 |
Estimated Component Cost | USD 0.18 per 1 month |
で、永続ディスク 100 GB は USD 5.20 とのこと。