LoginSignup
4
4

More than 5 years have passed since last update.

Deep Learning 用 Workstation 構築記録 その4(nVidia Docker のインストール)

Last updated at Posted at 2017-06-05

IMG_2959.JPG

その3で Fedora25 と CUDA のインストールが終わりました。
いよいよ Deep Learning を始めたい!となるのも分かりますが、その前に Docker と nvidia-docker をインストールしましょう。

作業を Docker コンテナ上で行うべき3つの理由

  • ホストの環境が汚れない
  • 前の環境を残したまま新しい環境を構築できる
  • Docker ならオーバーヘッドがほとんど存在しない

Deep Learning はまだ新しい技術で、(定番はありますが)枯れた方法というものがありません。
今後も色々な手法が出て来るでしょうし、正解という方法もまだ無いのが現状です。
何か環境を変えたいとなった時に、 Docker コンテナで新たに構築することで「以前の環境が残っていたために安定しない」という事がなくなります。
また、「新しい環境を試してみたけどやっぱり前の方が良かった」となった時も切り戻しが比較的簡単にできます。

それなら ESXi や VirtualBox でも良いの?

ESXi や VirtualBox でも GPU をパススルーできれば問題なく使えると思います。
ですがオーバーヘッドが Docker と比べて高い事や、「一度に1つの仮想マシンしか GPU を使えないこと」がデメリットになります。

ホスト直接の方がオーバーヘッドは少ない!

  • Docker だと学習コストが増える
  • CUDA の学習に全力投球したい

どうぞ、ホスト上で直接ご利用ください。
その方が一番性能を発揮できるのは間違いありませんし、先ずはやってみるというのは何より重要です。
KickStart を使えば、そこまで再構築の手間もないと思います。
それでも Docker も面白そうだなと思われるなら、この記事が何かの助けになれば幸いです。

Docker インストール

Docker CE インストール

公式サイトの通り実行するだけです。
なお、特に断りがない限り全て root で実行します。

既存 Docker のアンインストール
dnf remove docker docker-common container-selinux docker-selinux docker-engine
リポジトリインストール
dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
dnf config-manager --set-enabled docker-ce-edge
Docker CE (Comunity Edition) のインストール
dnf install docker-ce

Docker Compose インストール

アップデートに容易に対応する為、 pip を使ってインストールします。

pip3 のアップデート
pip3 install -U pip
docker-compose のインストール
pip3 install docker-compose

一般ユーザの Docker 利用登録

Docker はプロセスが全て root で実行されます。
この為、通常は一般ユーザでは実行できません。
一般ユーザに Docker の実行権限を与えたい場合は、以下を実行します。

usermod -aG docker <ユーザー名>

nVidia Docker インストール

ここのCentOS用手順でインストールします。

wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker-1.0.1-1.x86_64.rpm
rpm -i /tmp/nvidia-docker*.rpm && rm /tmp/nvidia-docker*.rpm

systemd 修正

systemctl edit nvidia-docker

以下を追記します。

[Service]
ExecStart=
ExecStart=/usr/bin/nvidia-docker-plugin -s $SOCK_DIR -d /usr/local/nvidia

ドライバー配置ディレクトリの作成

mkdir -p /usr/local/nvidia
chown -R nvidia-docker. /use/local/nvidia

実行テスト

Docker を実行したいユーザーで、以下を実行します。

nvidia-docker run --rm nvidia/cuda nvidia-smi

下のような表示が出れば完了です。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 381.22                 Driver Version: 381.22                    |
|-------------------------------+----------------------+----------------------+
| 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 108...  Off  | 0000:05:00.0      On |                  N/A |
| 23%   27C    P8    10W / 250W |    223MiB / 11169MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 0000:06:00.0     Off |                  N/A |
| 23%   30C    P8     8W / 250W |    138MiB / 11172MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 0000:09:00.0     Off |                  N/A |
| 23%   27C    P8     9W / 250W |    138MiB / 11172MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 108...  Off  | 0000:0A:00.0     Off |                  N/A |
| 23%   31C    P8     8W / 250W |    138MiB / 11172MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4