子育てしながらエンジニアしたい

現在 5 歳 女の子の子育て中エンジニアによる、技術系 + 日常系ブログ。

Ubuntu 18.04 に Docker で GPU Deep Learning 環境を構築する

前回の記事で、GPU マシンに Ubuntu 18.04 のインストール、および NVidia GPU Driver のインストールが完了しました。

edosha.hatenablog.jp

今回はそこに Docker を入れて、GPU powered Deep Learning 環境を構築したいと思います。

NVidia を Docker 上で使う方法

歴史的な経緯から、NVidia on Docker のやり方が今まで変遷してきたようです。
Docker 19.03 から、Docker がネイティブで GPU のサポートをしたことで、NVidia on Docker のやり方がシンプルになりました。
そのへんの経緯は以下のエントリーが非常に参考になります。

qiita.com

今回は歴史的なしがらみもなく新しくインストールしますので、Docker 19.03 以降のやり方で進めます。

  • 最新の NVIDIA ドライバーをインストール (前回の記事で済)
  • Docker の最新バージョン (19.03) をインストール
  • nvidia-container-toolkit パッケージをインストール

Docker の最新バージョン (19.03) をインストール

公式サイトの手順に沿って進めれば無事にインストールできました。

docs.docker.com

ここに写経しても良いのですが、Docker はどんどん更新されるようなので、上のページを見ていただくのが間違いないと思います。
記事を更新した時点 (2020/02/14) では、"Install using the repository" 内の SET UP THE REPOSITORY、INSTALL DOCKER ENGINE - COMMUNITY を行えば問題なくインストールされました。

nvidia-container-toolkit パッケージをインストール

Github の公式ページにやり方が書いてあります。

github.com

Ubuntu 18.04 のところに従って、以下のようにすれば完了です。

# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

動作確認

これも nvidia-container-toolkit の Github に書いてありますが、動作確認は以下のようにします。

$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

私の環境では以下のような表示になりました。

Fri Feb 14 01:55:03 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.59       Driver Version: 440.59       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 RTX 208...  Off  | 00000000:01:00.0  On |                  N/A |
| 17%   32C    P8    17W / 250W |    788MiB / 11016MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

あとがき

昔、Windows 上に GPU Deep Learning 環境を構築するときはえらい手こずった記憶があります...
それに比べるとこの手軽さはすごくなりました...
最初の Ubuntu インストールのほうがよっぽど手間取りましたね...

次回はこの環境で Tensorflow Docker を動作させたいと思います。