CUDA 版本檢視

liuliu55發表於2024-06-19

檢視cuda版本的指令:

nvidia-smi
ncvv -V
python -c "import torch; print(torch.version.cuda)"

nvidia-smi

(base) liuliu@liuliu-Legion-Y9000P-IAH7H:~/EchoFusion$ nvidia-smi
Mon Jan 15 11:14:41 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.223.02   Driver Version: 470.223.02   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| N/A   51C    P0    26W /  N/A |   2898MiB /  5921MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

nvcc -V

(base) liuliu@liuliu-Legion-Y9000P-IAH7H:~/EchoFusion$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Mar_21_19:15:46_PDT_2021
Cuda compilation tools, release 11.3, V11.3.58
Build cuda_11.3.r11.3/compiler.29745058_0

pytorch

(echofusion) liuliu@liuliu-Legion-Y9000P-IAH7H:~/EchoFusion$ python
Python 3.7.13 (default, Oct 20 2022, 14:56:53) 
[GCC 11.2.0] :: Intel Corporation on linux
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import torch
>>> torch.version.cuda
'11.1'

可以發現,三種指令有三種結果

1 Driver CUDA

當電腦安裝完顯示卡驅動(nvidia-driver)後,nvidia-smi命令就可以使用了,驅動程式提供的是最底層的程式介面,直接與硬體打交道。因此nvidia-smi列印的其實是顯示卡的硬體資訊。系統同一時間只能安裝一個版本的驅動程式,如果安裝多套版本可能會導致未定義的錯誤
所以,nvidia-smi所顯示的CUDA Version Driver CUDA的版本。另外 NVIDIA 有一個規則,Runtime CUDA 的版本號必須小於等於Driver CUDA 的版本號,所以 nvidia-smi 輸出的 CUDA 版本可以理解為該系統所能安裝的最高 CUDA 版本號是多少。即驅動程式版本Driver Version: 470.223.02下安裝Runtime CUDA的最高版本。

2 Runtime CUDA

Runtime CUDA 是 NVIDIA 封裝的上層介面,幾乎所有的應用程式,都是直接呼叫 Runtime CUDAAPI,而 Runtime CUDA 內部呼叫 Driver 的介面。所以通常所說的 CUDA 都是指的 Runtime CUDA(除非是驅動開發的人員)。

2.1 nvcc

因此nvcc --version 輸出的是當前安裝的 CUDA 的版本,而系統同一時間還可以安裝多套 CUDA,並且安裝的方式還多種多樣,一般來說有以下幾種安裝方式:

2.1.1 PyTorch 本身自帶 CUDA

# 會自動安裝CUDA
pip install torch

# 會自動安裝CUDA 11.3
pip install torch --extra-index-url http://download.pytorch.org/whl/cu113

透過pytorch安裝的CUDA沒有nvcc的命令,或是nvcc -V顯示的CUDA版本與pytorch安裝的CUDA版本不匹配。因為一個系統可以有多套CUDA。另外,PyTorch自帶的CUDA只包含庫檔案,沒有nvcc編譯器,所以沒有nvcc這個命令。

2.1.2 透過 Ubuntu 的官方源安裝

sudo apt-get install nvidia-cuda-toolkit

2.1.3 透過 conda 安裝

conda search -c conda-forge cudatoolkit #列出所有可以安裝的版本
conda install -c conda-forge cudatoolkit=xx/x/x

透過官方安裝包訪問下面的連結,可以下載到不同版本的安裝包:toolkits

3 Ref

  1. https://www.jb51.net/article/278075.htm

相關文章