之前安装了CUDA10.0,Cudnn7.3.1,因为要跑keras-yolo3,没办法运行,需要使用CUDA9.0+cudnn7.0.5(要求是7.0.4,但是官网没办法进行下载,因此尝试了7.0.5,结果可以正常使用),因此安装了两个版本的CUDA和cudnn,并进行来回切换,排坑排了一下午,特此写出来,希望对大家有用。
1.下载CUDA9.0,链接(https://developer.nvidia.com/cuda-90-download-archive),cuda9.0没有Ubuntu18.04的下载链接,但
是17.04的版本是可以使用的。下载安装包及所有的补丁。默认下载到了Downloads文件夹下。
进入下载好的文件路径下
cd ~/Downloads
2.安装CUDA
#先执行下面的命令安装相关依赖,
#否则会出现`Missing recommended library`错误
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
#开始安装
sudo ./cuda_9.0.176_384.81_linux.run --override
安装过程中首先是协议说明,按q退出说明,输入accept,注意下面两个选择n,其他的选择y。
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n #因为先安装了CUda10,此处选择n。
3.修改cuda相关环境变量
vi ~/.bashrc #修改配置文件
#因为之前安装了CUDA10,将原先的配置文件:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
修改为:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
4.下载cuDNN7.0.5(链接:https://developer.nvidia.com/rdp/cudnn-archive)需要注册,
下载的是Linux版本!!!,默认也是下载到了Downloads文件夹下,并解压到当前文件夹下。
解压后是这样子的:
cd ~/Downloads
将解压后的文件拷贝到CUDA9.0
目录下 :
sudo cp /home/lyx/Downloads/cudnn-9.0-linux-x64-v7/cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp /home/lyx/Downloads/cudnn-9.0-linux-x64-v7/cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*
5.CUDA版本 切换
删除原来的软连接:
sudo rm -rf /usr/local/cuda
建立新的CUDA版本的软连接:
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
查看当前链接的CUDA版本:
cd /usr/local #运行到local文件夹下
stat cuda #查看链接的版本
有人可能使用的是nvcc --version指令查看cuda版本,感觉用这个指令查看的并不准确。
因为我的电脑显示的是9.1,而我的电脑没有安装过9.1。