nvidia driverのインストール方法とアドホックな対応方法
- インストールやアンインストールに失敗することがあり、どうやるか
cudaの動作確認
pytorchによる動作確認
import torch
torch.cuda.is_available()
>> True # Trueが得られればOK
keras, tensorflowによる動作確認
import tensorflow as tf
tf.test.is_gpu_available()
>> True # Trueが得られればOK, Falseの場合は原因が表示される
インストールの方法
- 種類
- ubuntuのデフォルトのパッケージマネージャの機能でインストールする
- インストーラーからインストールする
ubuntuのデフォルトのパッケージマネージャの機能でインストールする
- cudaを期待しない場合には便利なインストール方法
- cudaのバージョンとドライバーのバージョンがわかれがちになり、tensorflowが動作しないことがあり、tensorflowを使い場合はインストーラーからインストールしたほうが安全
ドライバーの自動インストール機能を用いる
$ sudo ubuntu-drivers autoinstall
再起動後にドライバーが有効化される
$ sudo reboot
nvccをインストールする
$ sudo apt install nvidia-cuda-toolkit
インストーラーからインストールする
- 手動インストールは大変でだいたい正常に動作が確認できるまで2時間程度を見ておくと良い
手順
- インストーラーを公式サイトからダウンロードする
- nouveauというグラフィックドライバを使用している際は無効化する
- インストーラを実行する
大変ポイント1
- cudaをダウンロードしてインストールする
大変ポイント2
- cudnnをダウンロードしてインストールする
libcudnn<X>
が要求されるときはcudnnが無いために出るエラーである- cudnnはプロプライエタリソフトウェアのため、nvidiaへユーザ登録やアンケートへの解答が必須となる
大変ポイント3
- cudaのライブラリがインストールされたパスを
LD_LIBRARY_PATH
に追加する- e.g.
export LD_LIBRARY_PATH=/usr/local/cuda-<version>/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- e.g.
トラブルシューティング
nvidia driverがkernel-devel, kernel-sourceを要求する時
- ubuntuのkernel開発のサイトを参考にして、必要な依存を満たすとインストールできる
$ sudo apt-get build-dep linux linux-image-$(uname -r)
$ sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
$ sudo apt-get install git
nvidia driverがnvidia-drm
に登録されていてインストールできない
- エラーメッセージ
An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel...
ctrl+alt+F2
で新たにXがないターミナルを立ち上げてから、以下のコマンドを通す
$ sudo systemctl stop multi-user.target
$ sudo systemctl disable multi-user.target
$ sudo systemctl isolate multi-user.target
$ sudo modprobe -r nvidia-drm
VIDIA driverをインストールすることができる
$ sudo ~/NVIDIA-Linux-x86_64-450.80.02.run
ダウンロードしたドライバーファイルの展開
$ NVIDIA-Linux-x86_64-450.66.run -x
展開したファイルの実行オプション
$ nvidia-installer -A