查看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