UbuntuでCUDAのバージョンを確認する方法【簡単コマンド解説】

目次

1. はじめに

CUDA(Compute Unified Device Architecture)は、NVIDIAが開発したGPUを利用した並列計算プラットフォームです。機械学習やディープラーニング、3Dレンダリングなど、多くの計算処理で利用されています。

Ubuntu環境でCUDAを利用する際、以下の理由からCUDAのバージョンを確認することが重要です。

ドライバとの互換性

CUDAは特定のNVIDIAドライババージョンと対応しており、互換性がないと正しく動作しない場合があります。

ライブラリの対応状況

TensorFlowやPyTorchなどのライブラリは、特定のCUDAバージョンとcuDNNのバージョンを要求するため、適切なバージョンをインストールしているか確認が必要です。

環境の混乱を防ぐ

システムに複数のCUDAバージョンがインストールされている場合、どのバージョンが有効になっているかを把握し、必要に応じて切り替えを行う必要があります。

本記事では、UbuntuでCUDAのバージョンを確認する方法をわかりやすく解説します。

2. UbuntuでCUDAのバージョンを確認する方法

Ubuntu環境では、以下の方法でCUDAのバージョンを確認できます。

方法1: nvidia-smi コマンドで確認(最も簡単な方法)

NVIDIAのドライバには、GPUの状態を確認するツール nvidia-smi(NVIDIA System Management Interface)が含まれています。

実行コマンド

nvidia-smi

出力例

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 530.41.03    Driver Version: 530.41.03    CUDA Version: 12.1     |
+-----------------------------------------------------------------------------+

ポイント

  • CUDA Version: 12.1 の部分が NVIDIAドライバがサポートする最大のCUDAバージョン です。
  • 実際にインストールされているCUDAツールキットのバージョンとは異なる 可能性があるため、次の方法も確認しましょう。

方法2: nvcc -V コマンドで確認(開発者向け)

CUDAが正しくインストールされている場合、nvcc(CUDAコンパイラ)のバージョンを確認できます。

実行コマンド

nvcc -V

出力例

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Sun_Jul_30_19:09:40_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105

ポイント

  • release 12.1, V12.1.105実際にインストールされているCUDAツールキットのバージョン
  • nvidia-smi で表示されるバージョンと一致しないことがあるため注意が必要です。

方法3: version.txt を確認(手動での確認)

CUDAが /usr/local/cuda にインストールされている場合、version.txt にバージョン情報が記載されています。

実行コマンド

cat /usr/local/cuda/version.txt

出力例

CUDA Version 12.1.105

ポイント

  • nvcc -V が使えない環境でも確認可能。
  • /usr/local/cuda正しくシンボリックリンクされているか 確認が必要。
侍エンジニア塾

3. cuDNNのバージョン確認方法

cuDNN(CUDA Deep Neural Network)は、ディープラーニング向けのライブラリで、CUDAと組み合わせて使用されます。
CUDAのバージョン確認と合わせて、cuDNNのバージョンも確認することが重要です。

方法1: cudnn_version.h を確認

cuDNNのバージョンは、ヘッダーファイル cudnn_version.h に記載されています。

実行コマンド

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

出力例

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 1

ポイント

  • cuDNN 8.9.1 がインストールされていることが分かる。
  • grep コマンドを使用することで、cuDNNのバージョン情報を簡単に取得可能。
  • cuDNNのバージョンとCUDAのバージョンには互換性があるため、適切な組み合わせを確認することが重要。

方法2: dpkg コマンドで確認(Debian系Linuxのみ)

UbuntuのようなDebian系Linuxでは、dpkg コマンドを使用してインストールされているcuDNNのバージョンを確認できます。

実行コマンド

dpkg -l | grep libcudnn

出力例

ii  libcudnn8    8.9.1-1+cuda12.1    amd64    NVIDIA cuDNN Library

ポイント

  • libcudnn8 8.9.1-1+cuda12.1 の部分で、cuDNNのバージョン(8.9.1) を確認。
  • cuda12.1 の部分で、対応するCUDAバージョン(12.1) を確認。

これらの方法を活用して、CUDA環境が適切に設定されているか確認しましょう。

4. 複数のCUDAバージョンがインストールされている場合の対処法

Ubuntu環境では、複数のCUDAバージョンをインストールすることが可能ですが、環境によってはどのバージョンがアクティブなのか混乱することがあります。
このような場合、適切なバージョンを使用するために切り替えを行う必要があります。

方法1: update-alternatives で切り替え

Ubuntuでは、update-alternatives を利用してCUDAのバージョンを切り替えることができます。

現在の設定を確認

update-alternatives --query cuda

バージョンを切り替える

sudo update-alternatives --config cuda

出力例

There are 3 choices for the alternative cuda (providing /usr/local/cuda).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/local/cuda-11.8  100       auto mode
  1            /usr/local/cuda-10.2  50        manual mode
  2            /usr/local/cuda-11.8  100       manual mode
  3            /usr/local/cuda-12.1  110       manual mode

Press <enter> to keep the current choice[*], or type selection number:

ポイント

  • update-alternatives --config cuda を実行すると、利用可能なCUDAバージョンのリストが表示されます。
  • 数字を入力することで、利用するCUDAバージョンを選択できます。
  • auto modemanual mode があり、手動で切り替える場合は manual mode を選択します。

方法2: シンボリックリンクを手動で設定する

シンボリックリンクを使用して、指定したバージョンのCUDAを有効にすることも可能です。

既存のシンボリックリンクを確認

ls -l /usr/local/cuda

出力例

lrwxrwxrwx 1 root root 20 Feb  1 12:34 /usr/local/cuda -> /usr/local/cuda-11.8

CUDAのバージョンを変更する

sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-12.1 /usr/local/cuda

確認

ls -l /usr/local/cuda

ポイント

  • /usr/local/cuda は、CUDAのデフォルトのパスとして利用されるため、ここを変更することでCUDAのバージョンを切り替えられます。
  • ln -s コマンドで、新しいバージョンのCUDAにリンクを作成することで、簡単に切り替えが可能。

これらの方法を利用すれば、複数のCUDAバージョンがインストールされている場合でも、適切なバージョンを選択し使用することができます。

5. よくある質問(FAQ)

CUDAのバージョン確認に関して、よくある質問をまとめました。トラブルが発生した際の参考にしてください。

Q1: nvcc -V が見つからない!

nvcc コマンドが見つからない場合は、CUDAのパスが設定されていない可能性があります。

解決策1: CUDAがインストールされているか確認

ls /usr/local/cuda/

解決策2: nvcc のパスを追加

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

これで nvcc -V を実行し、正しくバージョンが表示されるか確認してください。

Q2: nvidia-smi で表示されるCUDAバージョンが実際と違うのはなぜ?

nvidia-smi で表示されるCUDAのバージョンは、NVIDIAドライバがサポートする最大のCUDAバージョン です。

確認方法:

nvidia-smi

出力例:

CUDA Version: 12.1

しかし、実際にインストールされているCUDAのバージョンを確認するには、nvcc -V または version.txt を確認する必要があります。

Q3: CUDAとcuDNNの互換性を確認するには?

CUDAとcuDNNの互換性は、NVIDIA公式のサポートマトリックスを参照するのが最も確実です。

公式サイト:

NVIDIA cuDNN Support Matrix

また、以下のコマンドでインストールされているバージョンを確認し、適切な組み合わせになっているかチェックしてください。

CUDAのバージョン確認

nvcc -V

cuDNNのバージョン確認

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

このように、環境を適切に管理することで、CUDAとcuDNNの問題を回避できます。

6. まとめ

本記事では、Ubuntu環境でCUDAのバージョンを確認する方法について詳しく解説しました。
重要なポイントを振り返りましょう。

CUDAバージョンの確認方法

方法コマンド特徴
nvidia-sminvidia-smiドライバがサポートするCUDAバージョンを確認
nvcc -Vnvcc -V実際にインストールされているCUDAツールキットのバージョンを確認
version.txtcat /usr/local/cuda/version.txt手動でCUDAのバージョンを確認

cuDNNの確認方法

方法コマンド特徴
cudnn_version.hcat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2ヘッダーファイルからバージョンを確認
dpkg コマンドdpkg -l | grep libcudnnインストール済みのcuDNNバージョンを確認

CUDAバージョンの切り替え方法

方法コマンド特徴
update-alternativessudo update-alternatives --config cuda複数のCUDAバージョンを切り替え
シンボリックリンクsudo ln -s /usr/local/cuda-XX.X /usr/local/cuda手動でCUDAのバージョンを変更

まとめのポイント

  • CUDAのバージョンを正しく把握することが重要
  • cuDNNとの互換性をチェックし、適切な組み合わせを使用する
  • 複数のCUDAバージョンを使う場合は、バージョンの切り替え方法を理解しておく

適切に環境を管理することで、CUDAの機能を最大限に活用できます。
本記事が、あなたのUbuntu環境でのCUDAのバージョン確認に役立てば幸いです。

関連記事

関連記事

1. はじめに CUDA(Compute Unified Device Architecture)は、NVIDIAが提供する並列コンピューティングプラットフォームおよびAPIであり、GPUを活用した高速な計算処理を可能にします。 機械学[…]

関連記事

UbuntuでNvidiaドライバをインストールする方法 1. 導入:UbuntuでNvidiaドライバを使う理由 Ubuntuは、オープンソースのNouveauドライバをデフォルトで提供していますが、Nvidiaの公式ドライ[…]

関連記事

1. はじめに UbuntuでGPUを活用する際には、その状態を正確に確認することが重要です。特に、ディープラーニングやグラフィックレンダリングの作業では、GPUの使用状況やドライバのバージョンを把握することが必須です。この記事では、NV[…]

侍エンジニア塾