2018/04/01:インストール手順のcuda toolkitのver.を9.1から9.0に変更
GCPでGPUの割当を行ったのでtensorflowを使うために、GPU環境をnvidia-dockerを使って作りました。 これを使うとcudnnのインストール等を行わなくていいので楽らしいです。
前半の今回はnvidia dockerを入れるところまで行います。
- 0. NVIDIAドライバのインストール
- 1. CUDA Toolkit 9.0 のインストール
- 2. Dockerのインストール
- 3. Nvidia Dockerをインストールする
- 4. sudoなしでdockerを実行できるように変更
0. NVIDIAドライバのインストール
NVIDIAドライバダウンロードから自分の使用するGPUにあったドライバをインストールしましょう。 私の場合、Tesla K80を使うので以下のようにしました。
wget http://jp.download.nvidia.com/tesla/384.125/nvidia-diag-driver-local-repo-ubuntu1604-384.125_1.0-1_amd64.deb dpkg -i nvidia-diag-driver-local-repo-ubuntu1604-384.125_1.0-1_amd64.deb rm nvidia-diag-driver-local-repo-ubuntu1604-384.125_1.0-1_amd64.deb
1. CUDA Toolkit 9.0 のインストール
CUDA Toolkit 10.1 Update 1 Download | NVIDIA DeveloperからCUDA Toolkit 9.0 のインストールをします。 別のバージョンが良い方は上記のサイトから目的のリンクを入手してください。 以下はnetwork versionでインストールしています。
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-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 rm cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
2. Dockerのインストール
以下のDockerの公式を参考にDockerを入れる
# 念のため古いバーションのリムーヴ sudo apt-get remove docker docker-engine docker.io sudo apt-get update # 依存パッケージのインストール sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common # Docker公式のGPG keyを追加 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # stable repositoryを登録 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update # 現在のnvidia dockerと互換の中で最新のversionのdockerを入れる sudo apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial
3. Nvidia Dockerをインストールする
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f sudo apt-get purge -y nvidia-docker # Add the package repositories curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update # Install nvidia-docker2 and reload the Docker daemon configuration sudo apt-get install -y nvidia-docker2 sudo pkill -SIGHUP dockerd # Test nvidia-smi with the latest official CUDA image docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
以下の様にnvidia-smiの結果が表示されたら成功
Status: Downloaded newer image for nvidia/cuda:latest Thu Mar 29 12:59:36 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.46 Driver Version: 390.46 | |-------------------------------+----------------------+----------------------+ | 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 K80 Off | 00000000:00:04.0 Off | 0 | | N/A 36C P8 32W / 149W | 15MiB / 11441MiB | 2% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| +-----------------------------------------------------------------------------+
4. sudoなしでdockerを実行できるように変更
sudo groupadd docker sudo usermod -aG docker $USER # 再起動 # ログアウトでいいらしいがこっちのほうが早かったので sudo shutdown -r now # sudoなしで実行できるか確認 docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
次回はtensorflowの入ったdockerのコンテナを立てます。