CUDA版本不同:nvidia-smi和nvcc -V

1. 问题

之前就发现,nvidia-smi 中的CUDA 版本与 nvcc不一致,nvidia-smi的结果显示CUDA版本是11.0,而从nvcc-V命令来看,却是CUDA 10.0。但是跑代码也没啥问题。

CUDA版本不同:nvidia-smi和nvcc -V_第1张图片

 CUDA版本不同:nvidia-smi和nvcc -V_第2张图片

 2. 分析

其实是因为CUDA 有两种API,分别是运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。

nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号,这里是 11.0。

而nvcc的结果是对应 CUDA Runtime API。

两种API对比
命令 CUDA API类型 显示 CUDA版本号例子 说明
nvidia-smi Driver API GPU 驱动版本号;CUDA Driver API号 11.0
nvcc -V Runtime API CUDA Runtime API 10.0 安装python包(例如torch)需要匹配runtime cuda版本


 

3. 总结

nvidia-smi版本大于nvcc -V的版本不会有什么问题,如果版本小了,可以去官网:https://www.nvidia.cn/geforce/drivers/ 下载高版本的。

3.1 如果我们想要安装新的cuda

1)去官网找到想要安装的cuda版本,指英伟达官网

https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal

CUDA版本不同:nvidia-smi和nvcc -V_第3张图片
2) 这里有一些选项

read EULA? 选择accept

当出现这个报错时:

CUDA版本不同:nvidia-smi和nvcc -V_第4张图片

解决办法:

在这里插入图片描述

 3)安装完毕后,在/usr/local里面会有对应设为cuda-10.0文件

CUDA版本不同:nvidia-smi和nvcc -V_第5张图片

 然后我们配置环境

sudo vim ~/.bashrc
 
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin$PATH

# 保存退出,然后执行
source ~/.bashrc

完成上述步骤后,执行nvcc --version就是更新的版本的cuda了,然而我的并没有!!!!!!!!!!出现的还是cuda 9.0!!!!!!

解决办法:
1) 卸载cuda 9.0指令

sudo apt-get autoremove nvidia-cuda-toolkit

卸载之后,使用 nvcc -V 提示没有这个文件,即卸载成功

2)为cuda10.0建立软链接:

sudo rm -rf cuda   # 删除之前创建的软链接
sudo ln -s /usr/local/cuda-10.0/  /usr/local/cuda  # 建立新的软链接(制定链接版本为10.0)

然后终于成功了。

在这里插入图片描述

你可能感兴趣的:(Linux服务器配置,深度学习,机器学习,pytorch)