まっさらな Ubuntu 16.04 で「ディープラーニングの勉強はじめるぞ〜」な環境を作りたかったので、nvidia-docker を入れました。これはそのときのメモです。
nvidia-docker を入れる前に以下を install しました。
- openssh-server, zsh (個人的な趣味なので、入れる必要は全くない)
- docker
- nvidia-driver
openssh & zsh を install
openssh
$ sudo apt-get install openssh-server
zsh
$ sudo apt-get install zsh
$ which zsh
$ chsh
docker を install
公式に従っていろいろインストール。
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
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 add-apt-repository \
"deb [arch=armhf] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
# sudo apt-get install docker-ce
# 確認
$ sudo docker run hello-world
公式に従って、docker コマンドを sudo なしで実行できるように、自動で docker コマンドが最初っから使えるようにするように。
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
exit & login
$ docker run hello-world
$ sudo systemctl enable docker
nvidia-driver を install
公式で自分の GPU にあった nvidia-driver のバージョンを検索する。わたしの GTX 960 の場合は "バージョン:375.39" だったので、それにあった nvidia driver を install。
$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ apt-cache search 'nvidia-[0-9]+$'
ここで出てきるリストの中から検索したバージョンを選ぶ。
$ sudo apt-get install nvidia-375
$ sudo reboot
$ nvidia-smi
nvidia-docker を install
公式に従ってやる。
(念のため、)nvidia-docker に事前に必要なものの確認方法
必要なバージョンが入ってなかったら入れたほうがいい。
(1) GNU/Linux x86_64 with kernel version > 3.10
$ cat /proc/version
(2) Docker >= 1.9 (official docker-engine only)
$ docker version
(3) NVIDIA GPU with Architecture > Fermi (2.1)
$ lspci | grep VGA
(4) NVIDIA drivers >= 340.29 with binary nvidia-modprobe
$ nvidia-smi
インストール
$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
$ sudo dpkg -i /tmp/nvidia-docker_1.0.1-1_amd64.deb
$ sudo apt-get install nvidia-modprobe
$ sudo docker volume create -d nvidia-docker --name nvidia_driver_375.39
$ sudo docker volume ls
DRIVER VOLUME NAME
nvidia-docker nvidia_driver_375.39
# ふつうの docker コマンドだと使えない nvidia-smi コマンドが nvidia-docker がちゃんと install されたら、 docker 内から使えるか?を確認。
$ nvidia-docker run nvidia/cuda nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.39 Driver Version: 375.39 |
|-------------------------------+----------------------+----------------------+
| 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 970 Off | 0000:01:00.0 On | N/A |
| 25% 30C P8 19W / 151W | 242MiB / 4036MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
※ nvidia-docker volume setup
する的なことがいろんな記事に書いてあるが、最近の nvidia-docker にはそんなコマンドがないような気がしてハマった