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 驅動程式包含一個名為 nvidia-smi
(NVIDIA System Management Interface)的工具,可以用來檢查 GPU 狀態。
執行指令
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
是否正確指向當前 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 版本。但有時候,可能會遇到不同 CUDA 版本混亂的情況。
在這種情況下,需要切換到適當的 CUDA 版本。
方法 1: 使用 update-alternatives
進行切換
Ubuntu 可以透過 update-alternatives
來管理 CUDA 版本的切換。
檢查當前設定
update-alternatives --query cuda
切換 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 mode
與manual mode
皆可選擇,若想手動切換版本,請選擇manual mode
。
方法 2: 手動設定符號連結(symlink)
可以透過手動調整符號連結來指定 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
,確認是否能正確顯示 CUDA 版本。
Q2: 為什麼 nvidia-smi
顯示的 CUDA 版本與實際不同?
nvidia-smi
顯示的 CUDA 版本,是驅動程式支援的最大 CUDA 版本,並不代表實際安裝的 CUDA 版本。
確認方式:
nvidia-smi
輸出範例:
CUDA Version: 12.1
若要確認實際安裝的 CUDA 版本,請使用 nvcc -V
或 version.txt
。
Q3: 如何確認 CUDA 與 cuDNN 的相容性?
CUDA 與 cuDNN 的相容性可以參考 NVIDIA 官方支援矩陣。
官方網站:
此外,可以透過以下指令確認已安裝的版本是否相容:
確認 CUDA 版本
nvcc -V
確認 cuDNN 版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
確保使用相容的 CUDA 和 cuDNN 版本,避免發生運行錯誤。
6. 總結
本篇文章詳細介紹了在 Ubuntu 環境中確認 CUDA 版本的方法,以下是重點整理:
CUDA 版本確認方法
方法 | 指令 | 特點 |
---|---|---|
nvidia-smi | nvidia-smi | 檢查驅動程式支援的 CUDA 版本 |
nvcc -V | nvcc -V | 確認實際安裝的 CUDA 工具包版本 |
version.txt | cat /usr/local/cuda/version.txt | 手動檢查 CUDA 版本 |
cuDNN 版本確認方法
方法 | 指令 | 特點 |
---|---|---|
cudnn_version.h | cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 | 透過標頭檔檢查版本 |
dpkg 指令 | dpkg -l | grep libcudnn | 檢查已安裝的 cuDNN 版本 |
CUDA 版本切換方法
方法 | 指令 | 特點 |
---|---|---|
update-alternatives | sudo update-alternatives --config cuda | 在多個 CUDA 版本間切換 |
符號連結 | sudo ln -s /usr/local/cuda-XX.X /usr/local/cuda | 手動更改 CUDA 版本 |
總結重點
- 確認 CUDA 版本對於開發與運行環境至關重要
- 確保 cuDNN 版本與 CUDA 版本相容
- 如果有多個 CUDA 版本,需正確管理切換方式
妥善管理 CUDA 環境,可以發揮最大效能。
希望這篇文章能幫助你順利確認並管理 CUDA 版本。