nvidia-smiとnvccで表示されるCUDAバージョンが異なる件
CUDA 10.2のバージョンを指定してインストールしようとしたら、nvidia-smiとnvccコマンドで表示されたバージョンが異なり混乱したので情報整理。
環境
- Amazon EC2 g4dnインスタンス
- Ubuntu 18.04 LTS
インストール方法
Cuda10以降は下記ダウンロードページからCudaをダウンロードできる。
今回インストールタイプは、NVIDIAのパッケージリポジトリを登録してパッケージマネージャ経由でインストールをするdeb(network)を指定した。
表示されているコマンドのままだと最新版がインストールされてしまうため最後の行だけ変更。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
$ sudo apt-get update
$ sudo apt-get -y install cuda-10-2 ←デフォルトはcudaになってるので10.2をインストールするように書きかえる
バージョン確認方法をググるとnvidia-smiとnvcc -Vの2パターンがあった為どちらも確認すると、下記の通りnvidia-smiは最新のバージョンが表示されていた。
- nvidia-smiのCudaバージョン:11.2
- nvccのCudaバージョン:10.2
2つのコマンドの違い
nvidia-smi(The NVIDIA System Management Interface)
NVIDIA GPUデバイスの管理や監視を行うためのコマンドラインユーティリティで、NVIDIAドライバーによってインストールされ、NVIDIAドライバーの情報も表示される。
nvidia-smiで表示されるCUDAバージョンはドライバーが対応している最大のCUDAバージョンが表示されているが、ドライバーは下位互換があるため、指定バージョンのCUDAを使用し続ける場合でも後続のドライバーリリースも引き続き利用できる。
CUDAバージョンとドライバーバージョンの対応は下記で確認できる。
nvcc
CUDAToolKitとともにインストールされるコンパイラドライバー。
-V オプションでCUDAToolKitのバージョンが表示される、つまりこちらがCUDAのバージョン。
結論
CUDAのバージョンを確認する場合はnvccコマンドを使用する。
nvidia-smiはNVIDIAドライバーに対応している最大のCUDAバージョンが表示される。
補足
もしドライバーのバージョンも固定したい場合は先にcuda-driversをインストールする。
$ sudo apt install cuda-drivers-440
この後cuda-[version]でインストールすると最新のドライバーバージョンにアップデートされるためtoolkitを個別でインストールする。
$ sudo apt install cuda-toolkit-10-2
Discussion