参考:https://blog.youkuaiyun.com/weixin_47479625/article/details/109020204
https://www.cnblogs.com/shuimuqingyang/p/14323455.html
https://blog.youkuaiyun.com/tunhuzhuang1836/article/details/79545625
由于我以前进行实验以及配置环境时采用的是cuda9.0
现在准备使用mmdetection工具箱,指导教程中显示需要安装cuda9.2版本以上。
所以,打算安装多个版本的cuda版本,并在不同的使用环境中进行切换。
安装cuda
首先安装cuda 需要去nvidia官网注册一个账号登录下载。这里给一下历史版本的cuda链接(现在官网好像进去默认下载最新版本)。这里我们举例下载cuda10.1:(当你电脑上只有一个cuda时候下载哪种类型无所谓,如果已存在一个或以上时候需要选择runfile安装)
选择10.1版本进行下载,我选择的是10.1的原始版本
下载后为
在当前文件中执行安装命令:
sudo chmod +x cuda_10.1.105_418.39_linux.run
sudo ./cuda_10.1.105_418.39_linux.run
1、选择accept
2、按回车选择不安装驱动,然后选择Install进行安装
3、选择默认安装路径
等一会儿,即为
# 设置当前用户的环境变量
sudo gedit ~/.bashrc
# 在.bashrc文件后面添加如下内容,注意这里不指定具体的cuda版本,就是为了方便切换
export PATH=$PATH:/usr/local/cuda-10.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.1/lib64
# 终端运行,使之生效
source ~/.bashrc
安装cuda的补充库
官方网站:https://developer.nvidia.com/rdp/cudnn-archive
选择与cuda10.1对应的版本下载
注意:我这里选择cuda10.1下cuDNN v7.6.5 中的cuDNN Library for Linux。下载后
解压
解压后的文件名字为cuda,为了防止混淆,我重命名成上图框中的名字。
安装cuda10.1对应的cudnn,如果目前的cuda软连接指向的是10.1,直接复制过去即可,复制lib64和include文件夹到usr/local/cuda-10.1,命令如下:
tar -zcvf cudnn-10.1-linux-x64-v7.6.5.32.tgz #解压命令
sudo cp cudnn-10.1-linux-x64-v7.6.5.32/include/cudnn.h /usr/local/cuda-10.1/include/
sudo cp cudnn-10.1-linux-x64-v7.6.5.32/lib64/libcudnn* /usr/local/cuda-10.1/lib64/
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*
#查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cuda版本的自由切换
至此,cuda10.1已经安装完成了。假设该机子上已经安装了cuda10.0的版本,如何切换回去呢?
也非常简单。我们安装了cuda10.1,cuda9.0,而cuda是一个软链接,它指向我们指定的cuda版本。
方法一:
# 删除目前的软链接
sudo rm -rf /usr/local/cuda
# 生成新的软链接
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
# 查看当前cuda的版本,或者用nvcc --version
cat /usr/local/cuda/version.txt
方法二:
命令行sudo gedit ~/.bashrc打开.bashrc,已经装过cuda9.0,则.bashrc下应该有如下行:
# 设置当前用户的环境变量
sudo gedit ~/.bashrc
# 在.bashrc文件后面添加如下内容,注意这里不指定具体的cuda版本,就是为了方便切换
export PATH=$PATH:/usr/local/cuda-10.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.1/lib64
# 终端运行,使之生效
source ~/.bashrc
# cuda9.0
# cuda9.0
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/cuda-9.0/include:$C_INCLUDE_PATH
#export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CPLUS_INCLUDE_PATH=/usr/local/cuda-9.0/include:$CPLUS_INCLUDE_PATH
#export PYTHONPATH=/home/zhai/caffe/python:$PYTHONPATH
export PYTHONPATH=/home/zhai/experiment/caffe-ssd-master/caffe/python:$PYTHONPATH
我们将所有的cuda-9.0更改为cuda-10.1文件夹
到这一步我们已经设置好了链接库,最后我们只需要在终端敲入:
# 删除目前的软链接
sudo rm -rf /usr/local/cuda
# 生成新的软链接
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
# 查看当前cuda的版本,或者用nvcc --version
cat /usr/local/cuda/version.txt