Ubuntu 18.04 に Docker で GPU Deep Learning 環境を構築する
前回の記事で、GPU マシンに Ubuntu 18.04 のインストール、および NVidia GPU Driver のインストールが完了しました。
今回はそこに Docker を入れて、GPU powered Deep Learning 環境を構築したいと思います。
NVidia を Docker 上で使う方法
歴史的な経緯から、NVidia on Docker のやり方が今まで変遷してきたようです。
Docker 19.03 から、Docker がネイティブで GPU のサポートをしたことで、NVidia on Docker のやり方がシンプルになりました。
そのへんの経緯は以下のエントリーが非常に参考になります。
今回は歴史的なしがらみもなく新しくインストールしますので、Docker 19.03 以降のやり方で進めます。
Docker の最新バージョン (19.03) をインストール
公式サイトの手順に沿って進めれば無事にインストールできました。
ここに写経しても良いのですが、Docker はどんどん更新されるようなので、上のページを見ていただくのが間違いないと思います。
記事を更新した時点 (2020/02/14) では、"Install using the repository" 内の SET UP THE REPOSITORY、INSTALL DOCKER ENGINE - COMMUNITY を行えば問題なくインストールされました。
nvidia-container-toolkit パッケージをインストール
Github の公式ページにやり方が書いてあります。
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 を動作させたいと思います。