Ubuntu16.04下安装切换多版本cuda和cudnn

前言

实验室服务器基于Ubuntu16.04平台,多人共用,就难免出现大家对代码环境要求的不一致,为了解决这一冲突,往往在服务器上会安装多个版本的cuda。所以此篇博文主要记录下装配过程。

安装cuda

安装cuda之前,首先要确定电脑中是否已有显卡驱动,以及驱动的版本(版本会决定这台电脑最高支持cuda的版本),这里给一下历史版本的cuda链接
image.png
根据电脑平台以及版本的不同,选择不同的安装包进行下载(如下);
image.png
安装按照官方的指引即可;以runfile为例:

Installation Instructions:
Run `sudo sh cuda_10.1.105_418.39_linux.run
Follow the command-line prompts

过程中会出现一些选项,最主要的就是问你要不要安装显卡驱动,一定要选no(只要不是新电脑,大多数电脑中是已经有了对应的驱动)。安装好后会发现在/usr/local/下看到安装好的cuda-10.1文件夹。

安装cudnn

同样我们去nvidia官网下载cudnn。这一步需要注册nvidia的账号,选择对应的版本。
image.png
以我们选择的Download cuDNN v8.0.5 (November 9th, 2020), for CUDA 10.1为例,下载好文件格式是.solitairetheme8,想要解压的话需要先转成tgz格式再解压:

cp  cudnn-10.1-linux-x64-v5.1.solitairetheme8 cudnn-10.1-linux-x64-v8.0.5.tgz
tar -xvf cudnn-10.1-linux-x64-v8.0.5.tgz

命令行解压然后复制lib64和include文件夹到usr/local/cuda-10.1即可,命令如下:

sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64 
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*#### 多版本cuda的切换

多版本cuda的切换

命令行vim ~/.bashrc打开.bashrc,添加如下行

#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

到这一步我们已经设置好了链接库,最后我们只需要在终端输入

sudo rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda #创建新 cuda 的软链接此时系统的cuda版本就会由之前的版本切换为10.1了
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168