問題の説明:CUDAバージョン不一致エラーの背景
AI開発、特にPyTorchを使用した深層学習モデルの学習や推論をGPUで実行する際、最も頻繁に遭遇するエラーの一つが「CUDAバージョン不一致」です。具体的には、以下のようなエラーメッセージが表示されます。
RuntimeError: The detected CUDA version (12.0) mismatches the version that was used to compile PyTorch (11.8).
Please make sure to use the same CUDA versions for your PyTorch installation and your system.
このエラーは、システムにインストールされているCUDAツールキットのバージョンと、インストールしたPyTorchバイナリがコンパイルされたCUDAバージョンが異なるために発生します。CUDA 12.x(12.0, 12.1, 12.2, 12.4など)が急速に普及する中、PyTorchの公式バイナリが対応するバージョンとずれが生じやすくなっています。特にUbuntu 24.04など新しいOSではデフォルトのドライバが新しいCUDAバージョンをサポートするため、この問題に直面するユーザーが増えています。
結論:解決策の要約
この問題を解決するには、以下の3つのアプローチのいずれかを取ります。
- PyTorchをシステムのCUDAバージョンに合わせて再インストールする(最も一般的)
- システムのCUDA環境変数(CUDA_HOME, PATH, LD_LIBRARY_PATH)をPyTorchの期待するバージョンに合わせる(複数CUDA共存時)
- システムのCUDAツールキット自体をPyTorchが要求するバージョンにダウングレードする(最終手段)
本記事では、特にCUDA 12.x環境での解決に焦点を当て、具体的な手順を説明します。
具体的な手順:コマンド例と設定
ステップ1:現在の環境を正確に把握する
まず、以下のコマンドでシステムのCUDAバージョンとPyTorchが認識しているCUDAバージョンを確認します。
# システムのCUDAツールキットバージョン (nvcc)
nvcc --version
# または、NVIDIAドライバがサポートする最高CUDAバージョン
nvidia-smi
# Python/PyTorch環境で確認
python -c "import torch; print('PyTorch version:', torch.__version__); print('PyTorch compiled with CUDA:', torch.version.cuda)"
nvidia-smiで表示される「CUDA Version」はドライバがサポートする最高バージョンであり、実際にインストールされているツールキットのバージョン(nvcc --version)とは異なる場合がある点に注意が必要です。
ステップ2:互換性マトリクスに基づき正しいPyTorchをインストール
PyTorch公式のインストールコマンド生成ツールを使用するか、以下の対応表を参考に、システムのCUDAバージョンに合ったPyTorchをインストールします。
| システムのCUDAバージョン (nvcc) | 推奨PyTorchバージョン (例) | インストールコマンド例 (pip) |
|---|---|---|
| CUDA 12.4 | PyTorch 2.3.0以降 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 |
| CUDA 12.1 | PyTorch 2.0.0以降 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
| CUDA 12.0* | PyTorch 2.0.0 (限定的) | CUDA 12.1用バイナリで代用可能な場合あり |
*注: CUDA 12.0はマイナーリリースのため、公式バイナリが提供されていない場合があります。その場合はCUDA 12.1用のPyTorchを試すか、ソースからビルドする必要があります。
既存のPyTorchが間違ったバージョンの場合は、まずアンインストールします。
pip uninstall torch torchvision torchaudio -y
その後、上記の対応するコマンドで再インストールします。
ステップ3:環境変数による複数CUDAバージョンの管理(上級者向け)
複数のCUDAツールキットをシステムにインストールしている場合(例: /usr/local/cuda-11.8 と /usr/local/cuda-12.1)、環境変数で使用するバージョンを切り替えることができます。これは、特定のプロジェクトで異なるCUDAバージョンを要求される場合に有効です。
# 一時的にCUDA 12.1を使用する場合 (bash/zsh)
export CUDA_HOME=/usr/local/cuda-12.1
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
# 変更を確認
nvcc --version
python -c "import torch; print(torch.version.cuda)"
この設定を永続化するには、~/.bashrcや~/.zshrcに記述します。
よくあるトラブルと対処法
ケース1: nvidia-smiとnvccのバージョンが異なる
現象: nvidia-smiはCUDA 12.4を表示するが、nvcc --versionはCUDA 11.8や12.1を表示する。
原因: CUDAツールキット(nvcc)とNVIDIAドライバがサポートするCUDAランタイムバージョンは独立しています。ツールキットが古いままです。
解決: NVIDIA公式から、目的のCUDAバージョンのツールキットをインストールします。または、PyTorchインストール時に、ドライバがサポートする上位バージョン用のバイナリ(例: cu124)を選択できる場合があります。
ケース2: “CUDA 12.0″用のPyTorchバイナリが見つからない
現象: システムがCUDA 12.0だが、PyTorch公式サイトに12.0用のバイナリがない。
解決: CUDA 12.1用のPyTorchバイナリ(cu121)を試してください。CUDA 12.1は12.0に対して下位互換性を持つことが多く、多くの場合問題なく動作します。もしエラーが続く場合は、CUDAツールキットを12.1にアップグレードすることを検討してください。
ケース3: Conda環境でバージョンが固定されている
現象: CondaでインストールしたPyTorchのCUDAバージョンを変更できない。
解決: Condaチャンネル(pytorch, nvidia)から、正しいバージョンのパッケージを指定して再インストールします。
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
あるいは、その環境内でpipを使用してPyTorchをインストールし直す方法もあります(混在インストールに注意)。
クラウドGPUサービスでは、CUDAやドライバが事前に最適化された環境が提供されているため、今回のようなバージョン不一致エラーに悩まされるリスクを大幅に低減できます。
参考元
- How to install pytorch when cuda=12.0? – PyTorch Forums: https://discuss.pytorch.org/t/how-to-install-pytorch-when-cuda-12-0/221574
- Pytorch version for cuda 12.2 – Stack Overflow: https://stackoverflow.com/questions/76678846/pytorch-version-for-cuda-12-2
- The detected CUDA version (11.8) mismatches the version that was used to compile PyTorch (12.1) – Reddit: https://www.reddit.com/r/CUDA/comments/1aukj9a/the_detected_cuda_version_118_mismatches_the/
- Version compatibility issue – deployment – PyTorch Forums: https://discuss.pytorch.org/t/version-compatibility-issue/223562
- Cuda versioning and pytorch compatibility – PyTorch Forums: https://discuss.pytorch.org/t/cuda-versioning-and-pytorch-compatibility/189777
🔧 AI開発におすすめのGPU・パーツ
本記事の手順を快適に進めるための推奨スペック:
- GPU: NVIDIA RTX 4070 Ti Super(AI開発コスパ最強)
- メモリ: DDR5 64GB(LLM推論に必須)
- SSD: NVMe SSD 2TB(大規模モデル保存用)
⚡ GPU環境をすぐに使いたいなら
ハードウェアの購入・セットアップなしで、すぐにGPU環境を使えるクラウドサービスがおすすめです。
- RunPod — RTX 4090/A100/H100を即座に利用可能
- Vast.ai — 最安のGPUクラウド、オークション方式で低コスト
- RTX 5090をAmazonで見る — 自宅GPU環境を構築するなら