显卡算力、驱动版本、CUDA、pytorch之间的关系
1.查看显卡驱动版本
nvidia-smi
可以看到显卡驱动(Driver Version:460.91.03)和当前驱动支持的最高CUDA版本(CUDA Version:11.2)。通过这个命令我们就可以确定能下载的最高CUDA版本。
driver api 和 runtime api CUDA
我们查看CUDA版本的时候通常用两种命令
nvidia-smi
或
nvcc -V
但需要注意的是,这两者查到的版本可能是不同的。原因是 nvidia-smi 命令查到的是driver api对应的CUDA,而nvcc -V查到的是runtime api对应的CUDA 版本。通常driver api对应的CUDA版本更高,因为driver api的版本能向下兼容runtime api的版本。
关键是我们平常跑深度学习模型的时候用的是runtime api对应的CUDA版本,所以runtime api的版本不大于driver api的版本就行(更详细信息可以看这篇博文)
2.显卡算力与cuda
显卡的算力表如下:
当我们下载CUDA时需要根据自身显卡的算力选择合适的CUDA版本,两者的对应关系如下表所示:
如果我们的显卡算力为8.0但我们却安装了CUDA10.2,这样的话就会出错。根据上表我们应该安装11.0及以上的CUDA版本。
3.CUDA与pytorch
当我们通过前面确定了CUDA版本后就可以根据在pytorch官网上查看与之相对应的pytorch版本了。
如果我们需要下载指定版本的pytorch,也可以调整CUDA版本使其适配。
为方便查看,这里放上pytorch与CUDA版本的对应关系表:
更深入学习可以看这篇文章显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn区别?
4.在虚拟环境中安装CUDA
若无法通过conda 直接安装CUDA可以先在上面的地址中将相应版本CUDA下载下来(.conda后缀),然后通过下面的命令安装
# 然后安装本地包
conda install --use-local 本地cuda包所在的路径
查看安装是否成功
在虚拟环境中安装完cuda和cudnn想要测试是否安装成功,不能使用nvcc -V命令测试,需要在虚拟环境中安装pytorch包进行测试。
安装好pytorch后可以通过下面命令检查是否将CUDA安装
python
import torch #导入torch
print(torch.version.cuda) #查看CUDA版本
查看cudnn版本
print(torch.backends.cudnn.version())