NVIDIA Driverをアップデートして,nvidia-docker 2.0に以降する
古いGPUドライバーを使っていると,
時々わけわからん警告が発生します.
僕は以下のリンクのWarningに当たりました.
解決策として,「バージョン396以降にしろよ」っと言っています.
っということで,ドライバーをアップデートしたのでメモしておきます.
対応バージョンを確認
以下のサイトから,自分のGPUに対応したドライバーのバージョンを確認します.
既存ドライバー確認
すでにドライバーがインストールされているか確認します.
$ dpkg -l | grep nvidia
僕自身,詳しくないので,勉強しながら行きます.
dpkg
とはDebianのパッケージである.deb
ファイルを扱うコマンドです.
これが先日買収されたRedhat系だとrpm
コマンドになります.
-l
オプションは,パッケージを一覧表示します.
今回は後ろに何も指定していないので,インストールされているパッケージが一覧表示されます.
その後,パイプ(|
)でつないで,grep
コマンドで,「nvidia」を含むパッケージだけを取り出しています.
古いドライバーの削除
もし,既存ドライバーが存在していた場合は,そいつを削除します.
$ sudo apt-get purge nvidia-*
なぜか僕の環境だと,正規表現が使えなかったので,こんな感じで全部手打ちしました.
$ sudo apt-get purge -y nvidia-384 nvidia-390 nvidia-410 nvidia-docker nvidia-opencl-icd-384 nvidia-opencl-icd-390 nvidia-opencl-icd-410 nvidia-prime nvidia-setting
リポジトリの登録
Ubuntuのドライバーを提供しているリポジトリを登録します.
$ sudo add-apt-repository ppa:graphics-drivers/ppa $ sudo apt-get update
ドライバーのインストール
事前に調べたバージョンを指定してインストールします.
$ sudo apt-get install -y nvidia-<最新バージョン>
再起動
$ sudo reboot
確認
nvidia-smi
を使って,GPUが見えているか確認します.
$ nvidia-smi
nvidia-dockerのインストール
僕は機械学習用にGPUを利用しているので, CUDAはホスト環境には入れないで, すべて仮想環境で管理しています.
そのために,nvidia-dockerをインストール)します.
(dockerのインストールは,ここ)
nvidia-docker 1.0 を削除
前に,nvidia-docker 1.0を使っていたので,最初にそいつを削除します.
$ docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f $ sudo apt-get purge nvidia-docker
リポジトリの登録
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ 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
nvidia-docker 2.0 をインストール
$ sudo apt-get install -y nvidia-docker2 $ sudo pkill -SIGHUP dockerd
pkill
コマンドは,プロセス名を指定して,シグナルを送信するコマンドです.
詳しくは以下のリンクを参照くだいさい.