使いたいGPU計算ソフトがCUDAの特定のバージョンでしか動かないことがあると思います。
CUDAのバージョンの切り替え方を書いておきます。
切り替え先のバージョンがインストールしてある必要があります。
1. update-alternatives を使う方法
- Ubuntuには、update-alternativesという機能があり、バージョンの切り替えが比較的容易にできます。
- 今、CUDA 10.2, 11.0, 11.5 がインストールされているとします。
- まず、update-alternatives の選択肢に入るように、update-alternatives –install をします。優先順位はそこまで重要ではないのですが、10.2を優先したいので、この中では一番小さくしました。
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.5 100
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.0 90
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-10.2 80
- 次に、update-alternatives –config で選びます。
sudo update-alternatives --config cuda
$ sudo update-alternatives --config cuda
alternative cuda (/usr/local/cuda を提供) には 3 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/local/cuda-11.5 100 自動モード
1 /usr/local/cuda-10.2 80 手動モード
2 /usr/local/cuda-11.0 90 手動モード
3 /usr/local/cuda-11.5 100 手動モード
現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:
- 今の場合、cuda-10.2 を使いたいので 1 を押してEnterをします。
すると、以下のような表示になります。
update-alternatives: /usr/local/cuda (cuda) を提供するためにマニュアルモードで /usr/local/cuda-10.2/ を使います
パスの設定
- NVIDIAの公式サイトの Post-installation action に、パス設定が記載されています。
-
私は、できるだけ .bashrc をいじらないでというのを最近、モットーにしています。Ubuntuでは .bashrc の中で読み込まれる .bash_aliases があるのでそちらに追記します。.bash_aliases はその名の通り、本来はエイリアスの設定を書くものと思いますが、様々なパスをここに書いておくと、.bashrc を直接いじらなくていいので安全かと思います。
-
update-alternatives を併用すると、以下のような記載で大丈夫になります。LD_LIBRARY_PATHは、自分が使い分けをしたいCUDAの lib64 のパスをひたすら書いていきます。
# CUDA
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-10.2/lib64:/usr/local/cuda-11.0/lib64:/usr/local/cuda-11.5/lib64${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}}
- ターミナルを一度閉じて、再度ターミナルを起動します。
CUDA の確認
- nvcc –version で NVCC のドライバが確認できます。
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
- CUDA 10.2 が選ばれています。
- 他を選びたかったら、sudo update-alternatives –config cuda を実行すれば大丈夫です。
2. シンボリックリンクを使う方法
nvcc -V
- /usr/local/cuda へのリンクを切り替え先のバージョンのインストール場所に変更します。
-
例:CUDA5.0に切り替える場合
sudo unlink /usr/local/cuda
sudo ln -s /usr/local/cuda-5.0 /usr/local/cuda
nvcc -V
- なおrebootは不要です。