目次
- Nvidia Driver関連を安全に導入するための3つのコツ
- 導入前の準備
- Nvidia-Driverのインストール
- Cudaのインストール
- CuDNNのインストール
- 想定されるエラー集
この投稿は個人ブログとのクロス投稿になります。
1. Nvidia Driverを安全に導入するための3つのコツ
- Nvidia-Driverをインストール後に、必ず再起動をすること
- cudaをインストールする際には,cudaのバージョンを指定してインストールすること
sudo apt-get -y install cuda-**-*
- TensorflowまたはKerasを使用される方はTensorflow GPUの公式ドキュメントを参照し、cuDNNとcuda, Tensorflow-gpuのバージョンを合わせること
2. 導入前の準備
まず、はじめにnvidia, cuda関連のライブラリがインストールされているかを確認します。
$ dpkg -l | grep nvidia
$ dpkg -l | grep cuda
そして、それらをまず削除し、依存関係のないクリーンな状態にします。
$ sudo apt remove --purge "nvidia-*" -y && sudo apt autoremove
$ sudo apt remove --purge "cuda-*" -y && sudo apt autoremove
$ sudo apt remove --purge "libcudnn*" -y && sudo apt autoremove
$ sudo apt remove --purge "libnvidia-*" -y && sudo apt autoremove
3. Nvidia-Driverのインストール
現在お使いのUbuntu OSに最適なNvidia-Driverを以下のコマンドで見つけます。
$ sudo ubuntu-drivers devices
$ sudo apt install nvidia-driver-***
上記のコマンドで推奨されていたのは440(2020年9月15日時点)でしたが, 同時期に同じVersionのUbuntu OSでGoogle Colab で450が採用されていたため、450を採用しました。
(以下のrebootがコツの1つ目です。)
$ reboot
$ nvidia-smi
注意 : nvidia-smi
における Driver Version
と CUDA Version
は全く当てになりません。信用できるのは、nvidia-smiのバージョンのみです。
4. Cudaのインスール
- バージョンをチェックします
ここからcudaのバイナリファイルをインストールします。
注意1 : Linux, X86_64, Ubuntu, 18.04, deb(network)を選択
注意2 : 指示の最終行のsudo apt-get install cuda
は誤りです。
注意3 : 最新のTensorflowでさえcuda10.2はまだサポートしていないため、10.1をインストールすることを推薦します (参照元
間違い
sudo apt-get -y install cuda
正解
sudo apt-get -y install cuda-**-*
このコマンドsudo apt-get -y install cuda
は自動的に最新のcudaをダウンロードするように設定されているので要注意です。
5. CuDNNのインストール
ここからCuDNNをダウンロード可能です
ダウンロード前に必ずNvidia開発者アカウントへの登録が必須です。
注意 : これら3つのファイルが必要です。(licudnn7_7**.deb
, libcudnn7-dev_**.deb
, libcudnn7-doc_**.deb
)
$ sudo dpkg -i libcudnn7_**.deb
$ sudo dpkg -i libcudnn7-dev_**.deb
$ sudo dpkg -i libcudnn7-doc_**.deb
6. 想定されるエラー集
- $ nvidia-smi
のコマンドが存在しないと言われる
PCを再起動してください。(nvidia-driverをインストール後)
$ sudo reboot
- $ sudo apt install --fix-broken
の際にエラーのループが生じる
vidia-driver-440をインストール後に cuda10.2をインストールしようとしたところ、cuda10.2がnvidia-driver-450と依存関係があり、ループが生じた
$ sudo apt install --fix-broken
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
cuda-drivers : Depends: cuda-drivers-450 (= 450.36.06-1) but it is not going to be installed
libnvidia-decode-450 : Depends: libnvidia-compute-450 (= 450.36.06-0ubuntu1) but it is not going to be installed
nvidia-compute-utils-450 : Depends: libnvidia-compute-450 but it is not going to be installed
nvidia-driver-450 : Depends: libnvidia-compute-450 (= 450.36.06-0ubuntu1) but it is not going to be installed
Recommends: libnvidia-compute-450:i386 (= 450.36.06-0ubuntu1) but it is not installable
Recommends: libnvidia-decode-450:i386 (= 450.36.06-0ubuntu1) but it is not installable
Recommends: libnvidia-encode-450:i386 (= 450.36.06-0ubuntu1) but it is not installable
Recommends: libnvidia-ifr1-450:i386 (= 450.36.06-0ubuntu1) but it is not installable
Recommends: libnvidia-fbc1-450:i386 (= 450.36.06-0ubuntu1) but it is not installable
Recommends: libnvidia-gl-450:i386 (= 450.36.06-0ubuntu1) but it is not installable
nvidia-utils-450 : Depends: libnvidia-compute-450 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
[解答]
(https://askubuntu.com/questions/1044817/failed-installation-of-package-breaks-apt-get)
sudo apt-get -o Dpkg::Options::="--force-overwrite" install --fix-broken -y
nvidia-driverのバージョン
- 使用しているPC
> GeForce RTX 2080-Ti
> > OS : Ubuntu 18.04.4 LTS (Bionic Beaver)
> Nvidia-Driver : 450
> Cuda : 10.1
> CuDNN : 7.6.3.30-1+cuda10.1
> Python : 3.7.5
> PyTorch : 1.5.1+cu1
> Torchvision : 0.6.1+cu1
> Tensorflow : 2.2.0
- Google Colab
> Version of nvidia-driver in pre-installed Google-Colab is 450 on 2020/09/11
> >OS : Ubuntu 18.04.3 LTS (Bionic Beaver)
> Nvidia-Driver : 450
> Cuda : 10.1
> CuDNN : 7.65.32-1+cuda10.1
> Python : 3.6.9
> PyTorch : 1.5.1+cu101
> Torchvision : 0.6.1+cu101
> Tensorflow : 2.2.0
- 上記の確認方法
$ cat /etc/os-release ## Only works on Ubuntu OS
$ dpkg -l | grep nvidia
$ dpkg -l | grep cuda
$ dpkg -l | grep libcudnn
$ print(torch.__version__)
$ print(torchvision.__version__)
$ print(tensorflow.__version__)
$ ! python --version
まとめ
Nvidia-Driverのメモ書きを少し丁寧にまとめました。環境を再現することは研究を再実験する上でのスタートとなるので、
Google Colabでも推奨されているように、Tensorflow, Cuda, CuDNNのバージョンを必ずJupter NotebookやColab Notebookに記載することが後からコードを見た人が再現するために重要だと再認識させられました。
皆様もぜひ参考にしていただければと思います。