三浦ノート

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

nvidia/cudaのdockerイメージをrunする時にNVidiaドライバーのバージョンが古いため出るエラーメッセージ

動作環境

グラボ GeForce GTX1080Ti
NVidiaドライババージョン 384.66
Docker バージョン 18.09.7, build 2d0083d
nvidia-dockerバージョン 2.0.3

エラー発生

上述の環境でCUDA10.1が入ったdockerイメージを次のようにrunしようとしました.

$ docker run --rm --runtime=nvidia nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 nvidia-smi

すると以下のようなエラーメッセージが出てコマンドが通りませんでした.

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"process_linux.go:413: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=10.1 brand=tesla,driver>=384,driver<385 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411 --pid=136059 /var/lib/docker/overlay2/7932ebbc49f26e054fbd277bbd2851310948cff5a41f1bc335c12405dcccb8f2/merged]\\\\nnvidia-container-cli: requirement error: unsatisfied condition: brand = tesla\\\\n\\\"\"": unknown.

原因

以下のページのようにCUDAにはGPUアーキテクチャとNVidiaドライババージョンについての動作要件があるので注意しましょう.

CUDA · NVIDIA/nvidia-docker Wiki · GitHub

実際,docker run --rm --runtime=nvidia nvidia/cuda:9.0-base nvidia-smi は問題なく通ります・

それと、NVidiaドライバーのバージョンを上げるという手もあります.