在 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 驅動程式包含一個名為 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 modemanual 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 -Vversion.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 版本,需正確管理切換方式

妥善管理 CUDA 環境,可以發揮最大效能。
希望這篇文章能幫助你順利確認並管理 CUDA 版本。

相關文章

年収訴求