クラウド上に作ったコンテナで、GPUを使えるようにする設定です。
関連
- ◯
- 拡張可能なサーバ:クラウドサービス
- ◯
- コンテナを導入する:Docker
検証
- ・
- クラウド:Google Cloud Platform
- ・
- GPU:Tesla T4
- ・
- OS:Ubuntu 20.04
- ・
- コンテナ:Docker 20.10.10
- ・
- グラフィックス・ドライバ:cuda-drivers 515.65.07-1
- ・
- 並列計算ツールキット:cuda 11.8.0-1 - 11.0.3-1
- ・
- クラウド:Google Cloud Platform
- ・
- GPU:Tesla T4
- ・
- OS:Ubuntu 18.04
- ・
- コンテナ:Docker
- ・
- グラフィックス・ドライバ:nvidia-driver-495
- ・
- 並列計算ツールキット:cuda-toolkit-11-5
設定:Linux (Ubuntu 20.04)
- ◯
- 確認
次のサイトで、対象のシステムと希望のインストレーション・タイプを選択し、インストレーションに必要なコマンド群を確認します:
- ・
- https://developer.nvidia.com/cuda-downloads
> Operating System: Linux > Architecture: x86_64 > Distribution: Ubuntu > Version: 20.04 > Installer Type: deb (network)
次のサイトで、使用するGPUのタイプから、推奨されるドライバのバージョンを確認します:
- ・
- https://www.nvidia.co.jp/Download/index.aspx?lang=en
> Product Type: Data Center / Tesla > Product Series: T-Series > Product: Tesla T4 > Operating System: Linux 64-bit > CUDA Toolkit: Any > Language: English (US)
次のサイトで(対象のシステムのリポジトリのURLに合わせて)、並列計算ツールキット(cuda)の利用可能なバージョン群を確認します:
- ・
- https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/
... cuda-11-0_11.0.2-1_amd64.deb 4.0KB 2020-07-02 23:21 cuda-11-0_11.0.3-1_amd64.deb 4.0KB 2020-08-04 21:15 cuda-11-1_11.1.0-1_amd64.deb 4.0KB 2020-09-20 20:17 cuda-11-1_11.1.1-1_amd64.deb 4.0KB 2020-10-16 17:49 cuda-11-2_11.2.0-1_amd64.deb 4.0KB 2020-12-15 17:33 cuda-11-2_11.2.1-1_amd64.deb 4.0KB 2021-02-09 17:14 cuda-11-2_11.2.2-1_amd64.deb 4.0KB 2021-02-26 19:50 cuda-11-3_11.3.0-1_amd64.deb 4.0KB 2021-03-26 22:54 cuda-11-3_11.3.1-1_amd64.deb 4.0KB 2021-05-14 01:12 cuda-11-4_11.4.0-1_amd64.deb 4.0KB 2021-06-24 02:48 cuda-11-4_11.4.1-1_amd64.deb 4.0KB 2021-07-28 19:46 cuda-11-4_11.4.2-1_amd64.deb 4.0KB 2021-08-30 21:01 cuda-11-4_11.4.3-1_amd64.deb 4.0KB 2021-10-29 16:46 cuda-11-4_11.4.4-1_amd64.deb 4.0KB 2022-01-27 22:51 cuda-11-5_11.5.0-1_amd64.deb 4.0KB 2021-10-16 01:11 cuda-11-5_11.5.1-1_amd64.deb 4.0KB 2021-11-19 04:40 cuda-11-5_11.5.2-1_amd64.deb 4.0KB 2022-01-28 01:51 cuda-11-6_11.6.0-1_amd64.deb 4.0KB 2022-01-11 06:04 cuda-11-6_11.6.1-1_amd64.deb 4.0KB 2022-02-14 22:26 cuda-11-6_11.6.2-1_amd64.deb 4.0KB 2022-03-18 17:41 cuda-11-7_11.7.0-1_amd64.deb 4.0KB 2022-05-04 15:54 cuda-11-7_11.7.1-1_amd64.deb 4.0KB 2022-07-29 08:59 cuda-11-8_11.8.0-1_amd64.deb 4.0KB 2022-09-29 18:18 ...
- ◯
- 準備
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb $ dpkg -i cuda-keyring_1.0-1_all.deb $ apt update
- ◯
- グラフィックス・ドライバ(nvidia)
$ apt install cuda-drivers=515.65.07-1 $ reboot
- ◯
- 並列計算ツールキット(cuda)
$ apt-mark hold cuda-drivers $ apt install cuda=11.0.3-1 $ apt install cuda=11.1.1-1 $ apt install cuda=11.2.2-1 $ apt install cuda=11.3.1-1 $ apt install cuda=11.4.4-1 $ apt install cuda=11.5.2-1 $ apt install cuda=11.6.2-1 $ apt install cuda=11.7.1-1 $ apt install cuda=11.8.0-1
設定:Linux (Ubuntu 18.04)
- ◯
- 準備
$ cd /var/tmp $ uname -r $ apt install linux-headers-$(uname -r) $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g') $ echo ${distribution} $ wget https://developer.download.nvidia.com/compute/cuda/repos/${distribution}/x86_64/cuda-${distribution}.pin $ mv cuda-${distribution}.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${distribution}/x86_64/7fa2af80.pub $ echo "deb http://developer.download.nvidia.com/compute/cuda/repos/${distribution}/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
- ◯
- グラフィックス・ドライバ(nvidia)
$ apt install cuda-drivers $ apt list --installed | grep nvidia-driver
- ◯
- 並列計算ツールキット(cuda)
$ apt install cuda $ apt list --installed | grep cuda $ /usr/local/cuda/bin/nvcc --version $ nvidia-smi
- ◯
- グラフィックス・ドライバ(nvidia)、コンテナ(Docker)
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ echo ${distribution} $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ curl -s -L https://nvidia.github.io/nvidia-docker/${distribution}/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list $ apt update $ apt install nvidia-docker2 $ systemctl restart docker.service $ docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
検証と測定
コンテナ内で、並列計算ツールキット(CUDA)とDNN向けGPUライブラリ(cuDNN )を認識できているかどうかは、次のスクリプトで確認できます:
#!/usr/bin/python import torch print(torch.cuda.is_available()) print(torch.backends.cudnn.is_available())
サーバ側のパフォーマンス(プロセッサ/メモリ/GPUの使用率など)を知るには、次のようなコマンド群が使えます:
$ top $ mpstat -P ALL $ vmstat -t 1 $ nvidia-smi $ nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free,memory.used --format=csv -l 1