跑代码的时候因为cuda不匹配,之前学的降级cuda方法也全部失败了,一下子把cuda卸载了。。。。
结果产生了一系列反应!!追悔莫及!!
(卸载cuda可以参考如何在linux中卸载CUDA_笔记大全_设计学院 或者如何在linux中卸载CUDA_笔记大全_设计学院
但是!!不建议各位卸载,据说很多时候不匹配多试几个pytorch和torch官网Previous PyTorch Versions | PyTorch那个匹配就行了,不然就会跟我一样了。。。。)
下面再开始重装
1. nvidia-smi命令用不了了,报错:
NVIDIA-SMI has failed because it could't communite with the NVIDIA driver.
卸载太干净了。。。。
先装ubuntu驱动
命令终于能用了,但是cuda version: 1
2.安装cuda
想装10.0来着,结果nvidia是20.04的,
查看ubuntu版本的命令
lsb_release -a
此时nvcc -V还用不了,因为没装cuda toolkit
去官网CUDA Toolkit Archive | NVIDIA Developer对应的没有20.04,所以安装了11.0
(好像也得看自己显卡驱动的版本对应的cuda版本)
安装cuda可以参考帖子第二节ubuntu 20.04 安装 高版本cuda 11.7 和 cudnn最新版_ubuntu20.04安装cuda_ytusdc的博客-CSDN博客
(后来找到一篇“Ubuntu20.04安装cuda10.1”的帖子Ubuntu20.04安装cuda10.1_cuda 10.1.168 ubuntu20-CSDN博客 或者 Ubuntu20.04 安装cuda和cudnn,
他其实是在原有cuda版本高的基础上切换cuda版本的,这个没试过。 关于切换cuda版本的经验贴本人也有分享torch版本对应关系+转换cuda版本合集_烂笔头-_-的博客-CSDN博客
其中,“将解压出的
cuda/include/cudnn.h文件复制到/usr/local/cuda/include文件夹
cuda/lib64/下所有文件复制到/usr/local/cuda/lib64文件夹”
在文件目录里没找到解压后的文件,但是解压命令里看到了所说的,所以采用linux命令实现。)
sudo cp ./cuda/lib64/* /usr/local/cuda/lib64
sudo cp ./cuda/include/cudnn.h /usr/local/cuda/include
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* #为上述文件添加读取和执行权限:
安装完毕,输入命令检验:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
回到安装11.0的事:
用别的帖子安装总是报错,查阅都是说缺少gcc,但是尝试那些方法gcc也都装不上,不清楚为啥,照着这个帖子走的挺顺的,也没额外安装gcc。
装完之后用nvcc -V查看
但是,再次使用nvidia -smi查看,CUDA Version还是1.。。。。
则继续安装cudnn。
3.cudnn安装
因为cuda装的11.0所以下载的这个
参考ubuntu 20.04 安装 高版本cuda 11.7 和 cudnn最新版_ubuntu20.04安装cuda_ytusdc的博客-CSDN博客的第三节
但是当时作者写这步的时候我没看明白,也没管继续往下进行,
往下进行前先看到作者的这行字:
这个具体的数修改其实就是那个3压缩包里面带的数字,如8.5.0.96和11.7
但是呢,因为前面没管那三个包,所以也没找到数字(把cuda按照自己装的11.0写上了),结果报错为
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.
好,回去研究,还看不明白,找了个帖子http://t.csdn.cn/F69ih
结果发现右键点击链接进去,就能找到了。。。(数字也找到了,8.9.5.29和11.8)
按照教的dpkg的方法解压的,解压顺序有点乱,但是好像不影响。
然后再按照帖子http://t.csdn.cn/2CJCx进行3.3步往下走。
测试安装成功的这步,这个作者后面说的问题我也遇到了!哈哈哈哈哈!!然后继续跟着他说的改
添加库
sudo apt-get install libfreeimage3 libfreeimage-dev
再测试,成功!
最后再查看一次nvidia
nvidia-smi
或者
nvcc -v
不同的驱动对应支持的cuda最高版本不一样!!!
比如此时Driver Version: 470.199.02对应11.4;
前面那个Driver Version:535.54.03对应12.2。
具体对应cuda版本可以查看前面显卡驱动与cuda版本对应截图
完活!
喜极而泣!!!
【nvcc -V与nvidia-smi显示的cuda为啥不一样?】
【看到有的帖子说:nvcc -V 对应 CUDA Runtime API,而 nvidia-smi 对应 CUDA Driver API。一般来说,如果 CUDA Driver API 版本高于 CUDA Runtime API 版本,使用时不会有问题。】
本人理解:
【nvidia-smi 代表的是此驱动下能支持的cuda最高版本,nvcc -V 代表你此时在用的版本】
补充:
Linux系统下如何查看Nvidia显卡芯片型号的两种方法
参考Linux系统下如何查看Nvidia显卡芯片型号的两种方法_linux查看nvidia显卡型号_纬领网络的博客-CSDN博客
本人用的方法一: