檢視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 CUDA
的 API
,而 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
- https://www.jb51.net/article/278075.htm