我原来的环境配置是cuda9.0+cudnn7.0后来安装Tensorrt的时候我把cudnn升级成7.5
但是有很多工程的cuda 都升级到10,不想更换的情况下,就想着让多个cuda共存,切换着用。
之前装cuda时加过的环境变量
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
这个环境变量没有指定特定的cuda,方便以后能够切换。我是在bashrc中添加的,还有在etc/profile中配置的,还要根据自己服务器的情况来。
1、安装cuda10.2
协议说明:
Do you accept the above EULA? (accept/decline/quit):
│ accept #输入accept
│─────────────────────────────────────────────────────
#安装选项,由于我已经安装有Driver: 418.56,所以没有选择。
│ CUDA Installer
│ - [ ] Driver
│ [ ] 418.39
│ + [X] CUDA Toolkit 10.2
│ [ ] CUDA Samples 10.2
│ [ ] CUDA Demo Suite 10.2
│ [ ] CUDA Documentation 10.2
│ Options
│ Install #[ ]不选择,带X的是需要安装的部分,之后选择 Install
————————————————
──────────────────────────────────────────────────────────────────────────────┐
│ A symlink already exists at /usr/local/cuda. Update to this installation? │
│ Yes #选择Yes进行安装 │
│ No
等待安装完成
查看:
$ nvcc -V
2、cudnn安装
按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive
解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/
$ sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
$ sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*
查看cudnn版本
$ cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
3、切换版本
$ cd /usr/local
$ ll
这里的cuda是个软连接,连接的是cuda-10.2,我还有cuda-9.0和cuda-10.0
切换命令:
$ sudo rm -rf cuda
$ sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
$ nvcc -V
ok到次为止确实是切换成功了,但是坑也来了,cuda10.2下并不能运行项目比如yolov4,是的我的显卡驱动太低了。更新驱动
查了一下
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
440的既可,查找自己的显卡可更新版本
https://www.nvidia.cn/Download/index.aspx?lang=cn
先卸载之前的版本:
打开终端 Terminal,首先卸载系统之前安装的 NVIDIA 显卡驱动,尤其以前安装失败的情况下。(没有安装的可以忽略这一步)
$ sudo apt-get --purge remove nvidia-*
禁用ubantu自带驱动nouveau及其他显示驱动,非常重要打开 blacklist:
$ sudo chmod 666 /etc/modprobe.d/.d/blacklist.conf
$ sudo gedit /etc/modprobe.d/.d/blacklist.conf
在最后添加几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
更新系统,禁用nouveau
$ sudo update-initramfs -u
重启电脑
$ sudo reboot
重启成功后,在终端输入如下命令检查是否禁用nouveau成功,无输出,表示禁用成功
lsmod | grep nouveau
按ctrl+alt+f1进入命令行界面
在命令行界面下输入如下命令,关闭图形界面(不执行后面会出错):
$ sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run
$ sudo ./NVIDIA-Linux-x86_64-396.18.run -no-opengl-files
安装过程中的选项:
见博客:https://blog.csdn.net/wangyjfrecky/article/details/84029668
检查驱动是否安装成功:
$ nvidia-smi
重启
$ sudo reboot
ppa源的方法参考:https://blog.csdn.net/wangyjfrecky/article/details/84029668,由于我更新的时候,没有发现440,最高430,故没采用这种方法而手动安装了。
参考博客:
https://blog.csdn.net/lihe4151021/article/details/90237681
https://blog.csdn.net/aijava1/article/details/103109787
https://blog.csdn.net/ksws0292756/article/details/80120561
https://blog.csdn.net/wangyjfrecky/article/details/84029668
https://zhuanlan.zhihu.com/p/94334567