Linux多CUDA版本共存并切换使用

一、安装多个版本的CUDA

由于需要在linux服务器上配置多个实验环境,每个环境要求的cuda、pytorch等工具包是不同的版本。笔者是在安装了cuda10.1之后,在追加安装的cuda9.0。安装多个cuda工具包与安装一个的过程类似,详细步骤见这篇文章
这里就说一下安装多个cuda需要注意的点:(以追加安装cuda9.0为例)
1、首先,因为所用的Linux服务器为Ubuntu18.04,在Nvidia官网选择cuda版本时显示cuda9.0只支持17.04和16.04的Ubuntu,这里18.04版本的系统也是能够兼容16.04版本,所以选择16.04的安装文件下载即可。
2、在安装过程中驱动部分和是否创建软链接均先选择no
3、这里因为Ubuntu18.04版本使用了高版本的gcc和g++(7.4),要先将版本降下来才能安装cuda9.0版本(这里是降至6.5)
执行以下命令

sudo apt-get install gcc-6
sudo apt-get install g++-6

进入到/usr/bin目录下,通过

ls -l gcc*

可以看到gcc还是指向的gcc-7的。接下来需要修改软链接

# 备份
sudo mv gcc gcc.bak
sudo ln -s gcc-6 gcc
sudo mv g++ g++.bak
sudo ln -s g++-6 g++

再次查看版本指向6.5。这时开始cuda9.0的安装。
Linux多CUDA版本共存并切换使用_第1张图片
建议将cudnn加速库拷贝到相应的cuda目录中,这样在切换cuda使用时,不需要额外调整cudnn。比如配置cuda10.1的cudnn内容,下载cudnn包之后进行解压。执行以下命令将cudnn内容拷贝到对应版本的cuda目录中存放。cudnn安装细节见此篇

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.1/include/
sudo cp cuda/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*

由于之前在~/.bashrc中设置的环境变量为

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

二、切换CUDA版本

在安装了多个cuda后,可以在/usr/local/目录下查看自己安装的cuda版本。
在这里插入图片描述
使用stat命令查看当前cuda软链接指向哪个cuda版本。这里指向的是9.0
Linux多CUDA版本共存并切换使用_第2张图片
当我们要使用其他版本的cuda,如cuda10.1,只需要重新建立软链接即可。(保持链接名称为cuda,与bashrc配置文件中保持一致)

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda

如下图所示。
Linux多CUDA版本共存并切换使用_第3张图片
要切换到其他版本同理,只需改动软链接cuda指向的路径即可。

参考资料

Ubuntu18.04配置安装CUDA9.0
多CUDA版本并存

你可能感兴趣的:(深度学习环境搭建,linux,ubuntu,cuda)