CUDAバージョンの確認は"nvcc --version"を使おう。って話
以前から自作PCのUbuntu環境で、任意のDocker環境で機械学習の勉強を行うための環境構築を投稿していましたが、CUDAバージョンの確認方法が間違えていました。
以前の投稿では、CUDA12.2が入ったホスト環境で、CUDA12.3の環境をDockerで構築しバージョン確認を行いました。
その際に環境の確認としてnvidia-smi
コマンドで確認を行っていましたが、このコマンドが表示するCUDAバージョンはホストのドライバーバージョンに基づくものらしく、別のCUDAバージョンを入れた際は混乱の元になると思うのでここで訂正したいと思います。
結論、CUDAバージョンの確認は"nvcc --version"を使おう
ことの発端
試したいAIモデルの推奨環境に合わせるため、cuda:11.1.1のイメージをpullしてきてコンテナに入り、CUDAバージョン確認のためnvidia-smi
コマンドを打ったところCUDA 12.2と出力されました。
docker pull nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04
docker run --gpus all -it nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04 sh
このようなことが起きた原因は、nvidia-smi
コマンドが表示するCUDAバージョンはホストのドライバーバージョンに基づくものらしく、その環境でのCUDAバージョンが正しく出力されなかったようです。
CUDAバージョン確認にはnvcc --version
で確認するのが良いらしい。
画像でも、nvcc --version
で11.1が正しく表示されています。