CUDAのバージョンを上げたときの手順を記録しておきます。 バージョンアップの方法を検索するとさまざまな方法が出てきますが、結局公式の方法が最もストレートでした。
環境: Ubuntu v18.04
上記のリンクから環境に合わせて選択。私の場合は
- Operating System: Linux
- Architecture: x86_64
- Distribution: Ubuntu
- Version: 18.04
- Installer Type: deb (network)
を選択。表示されるコマンドを打ち込むだけ。
これが失敗する場合、例えば私は
The following packages have unmet dependencies: cuda : Depends: cuda-11-7 (>= 11.7.1) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
こんなエラーが出ましたが
sudo apt-get clean
sudo apt-get update
sudo apt-get purge nvidia-*
sudo apt-get autoremove
sudo apt-get install -y cuda
でインストールが動きました*1。3行目のapt-get purgeは、パッケージとそのパッケージの環境設定をすべて削除するコマンドです。
あとはnvidia-smiを実行してCUDAのバージョンを確認するだけ。 これが失敗する場合、例えば
Failed to initialize NVML: Driver/library version mismatch
と表示される場合は、まず再起動(sudo reboot)を試し、それでもダメなら
lsmod | grep nvidia
で表示されるnvidia_*をrmmodします(カーネルモジュール(モジュール)をアンロードするコマンド)*2
私の場合は
nvidia_uvm 798720 0 nvidia_drm 45056 0 nvidia_modeset 1093632 1 nvidia_drm nvidia 17895424 17 nvidia_uvm,nvidia_modeset drm_kms_helper 172032 2 ast,nvidia_drm ipmi_msghandler 53248 4 ipmi_devintf,ipmi_si,nvidia,ipmi_ssif drm 401408 5 drm_kms_helper,ast,nvidia_drm,ttm
と表示されたので
sudo rmmod nvidia_uvm sudo rmmod nvidia_drm sudo rmmod nvidia_modeset sudo rmmod nvidia
を実行して、再起動したらnvidia-smiが動く、という感じになりました。