DockerでGPUを使用する
DockerコンテナでGPUを使用するための備忘録
1. PCがGPUを認識しているか確認する
lspci -vv|grep -i nvidia ##################################################################################################### 01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1) (prog-if 00 [VGA controller]) Kernel modules: nvidiafb, nouveau 01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
2. 既存のグラフィックドライバ(nouveau)の無効化
nouveauが有効か確認 (何も出なければ無効)
lsmod | grep -i nouveau ################################################## 1892352 3 mxm_wmi 16384 1 nouveau ttm 102400 1 nouveau drm_kms_helper 180224 1 nouveau drm 491520 6 drm_kms_helper,ttm,nouveau i2c_algo_bit 16384 1 nouveau wmi 32768 3 wmi_bmof,mxm_wmi,nouveau video 49152 1 nouveau
nouveauを無効化
# /etc/modprobe.d/blacklist-nouveau.confを作成 sudo gedit /etc/modprobe.d/blacklist-nouveau.conf # 以下を入力 ################################################# blacklist nouveau options nouveau modeset=0 # initramfsの更新 $ sudo update-initramfs -u # 再起動 $ sudo reboot # 再起動後、画面の解像度が低くなれば無効化OK
3. cuda-driversのインストール
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" sudo apt-get update sudo apt-get -y install cuda-drivers # 再起動 sudo reboot
driverが有効化を確認
nvidia-smi ############################################################################### Fri Mar 13 21:57:50 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.64.00 Driver Version: 440.64.00 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 105... On | 00000000:01:00.0 On | N/A | | 41% 36C P8 N/A / 75W | 223MiB / 4038MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1400 G /usr/lib/xorg/Xorg 18MiB | | 0 1444 G /usr/bin/gnome-shell 46MiB | | 0 1765 G /usr/lib/xorg/Xorg 86MiB | | 0 1893 G /usr/bin/gnome-shell 67MiB | +-----------------------------------------------------------------------------+
4. Dockerをインストール
sudo apt update sudo apt install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io # version確認(dockerがインストールできているか確認) sudo docker --version ######################################## Docker version 19.03.8, build afacb8b7f0
5. Dockerをsudoなしで起動できるようにする
sudo usermod -aG docker kinacon
6. DockerでGPUを起動できるようにする
nvidia-container-runtimeのインストール
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \ sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list sudo apt update sudo apt install nvidia-container-runtime # 再起動 sudo reboot
7. コンテナでGPUの状態を確認
コンテナでGPUを認識できるか確認
docker run --gpus all --rm nvidia/cuda nvidia-smi ############################################################################### Fri Mar 13 13:49:53 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.64.00 Driver Version: 440.64.00 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 105... On | 00000000:01:00.0 On | N/A | | 41% 34C P8 N/A / 75W | 223MiB / 4038MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| +-----------------------------------------------------------------------------+
以上。