概要
dockerコンテナ内でGPUが使用できず、下記のようなエラーが出た。
docker-container-runtimeのエラーのよう。
コンテナでGPUが使用できるか下記コマンドで確認を行なった。
docker run --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 nvidia-smi
結果としては、下記のエラー
Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
解決法
docker-container-runtimeのエラーは下記三つで解決を図る
①/etc/docker/daemon.jsonへの記載
②デーモンの再起動(sudo systemctl restart docker
)
③docker-container-runtimeの再インストール
しかし、今回の場合は解決できない。
→dockerを再インストールすることで解決できた。
参考までに
機械学習では、dockerコンテナ内でjupyterを使ったり、スクリプトを使用したりする。
tensorflowとcudaには互換性があるので、tensorflowのバージョンによってcudaのバージョンを下げたい時等に便利だ。
docker内でGPUを使用する方法を簡単に記載する。
- dockeを公式を参考にインストール(Qiita等を利用しても良いが、公式のやり方と照らし合わせよう)
- nvidia-cuda-toolkitを公式からインストール(過去のも出てくる、nvidia-uninstallで削除)
- cudaのパスを通す(/usr/local/cuda-**.*←削除すれば消える)
※再インストールする時は再起動が必要 - cudnnファイルをダウンロード(登録必要)
- 解凍後、/usr/local/cuda以下に移動する(lib64はlib64以下、includeはinclude以下)
- nvidia-container-toolkitとnvidia-container-runtimeをインストール
- docker-composeをインストール(※version3指定はruntimeオプションが使えない)
- /etc/docker/daemon.jsonを編集
- dockerの立ち上げ
-
nvidia-smi
で確認(cudaはnvcc -V
)