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

1. 问题

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

在这里插入图片描述

 在这里插入图片描述

 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-smiDriver APIGPU 驱动版本号;CUDA Driver API号11.0
nvcc -VRuntime APICUDA Runtime API10.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

在这里插入图片描述
2) 这里有一些选项

read EULA? 选择accept

当出现这个报错时:

在这里插入图片描述

解决办法:

在这里插入图片描述

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

在这里插入图片描述

 然后我们配置环境

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)

然后终于成功了。

在这里插入图片描述

  • 50
    点赞
  • 161
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值