Nvidia docker 2.0をGPU対応になったDocker 19.03に更新する

2019年7月31日

2019年7月25日にDocker 19.03がリリースされ、ネイティブでNvidia GPUがサポートされるようになりました。今後、Nvidia Docker 2.0は廃止予定だそうです。

ついこの間、Nvidia docker 2を入れたばかりだったのですが、さっそくDocker 19.03へ更新します。

環境
Ubuntu 18.04 LTS

手順

公式の手順(Upgrading with nvidia-docker2)に従ってアップデートします。

$ sudo apt-get update
$ sudo apt-get --only-upgrade install docker-ce nvidia-docker2
$ sudo systemctl restart docker
# 動作確認
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

なんかエラーが出ました。

unknown flag: –gpus
See 'docker run –help’.

# 一応全部アップデートしてみる
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

containerd.io はすでに最新バージョン (1.2.6-3) です。
docker-ce はすでに最新バージョン (5:19.03.1~3-0~ubuntu-bionic) です。
以下のパッケージはアップグレードされます:  docker-ce-cli
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 73 個。
42.5 MB のアーカイブを取得する必要があります。
この操作後に追加で 114 MB のディスク容量が消費されます。
続行しますか? [Y/n]

docker-ce-cli の未updateが原因だったんでしょうか?

# もう一度動作確認
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
+-----------------------------------------------------------------------------+
 | NVIDIA-SMI 430.26       Driver Version: 430.26       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 GTX 1080    Off  | 00000000:01:00.0  On |                  N/A |
 | 62%   29C    P8    14W / 215W |    336MiB /  8116MiB |      0%      Default |
 +-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
 | Processes:                                                       GPU Memory |
 |  GPU       PID   Type   Process name                             Usage      |
 |=============================================================================|
 +-----------------------------------------------------------------------------+

一応うまくいきました。