PRELOADER

Dinghow的个人博客

Current post : 《多版本CUDA与cuDNN管理》

10/3/2019 —— 

最近在跑几个SLAM的框架, 因为有GUI所以就没用nvidia-docker,又回到了坑爹的环境工程时间,而且工作站其他需求也经常用到不同版本的CUDA, cuDNN,为了方便小伙伴们一起愉快地在工作站玩耍,记录一下如何便捷地切换不同版本的CUDA与cuDNN。

1. CUDA版本切换

首先下载不同版本的CUDA,显卡驱动那块我就省了,找到一个向下兼容的高版本驱动就可以,安装CUDA时就只需要安装CUDA Toolkit了,注意不要重复安装驱动

环境变量

在你对应终端的环境变量文件下加入一下内容,我的是传统的bash,~/.bashrc,如果你是zsh或者其他玩意儿请自行修改:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64

请注意目录是cuda,我们后面会用软连接的方式来切换版本,这里设置成连接目标就可以省的环境变量改来改去。

重启终端或直接执行source ~/.bashrc 更新环境变量

CUDA版本切换

不同版本的cuda安装后,在本地/uer/local目录下,如我装了8.0和9.0,就会有两个目录cuda-8.0, cuda-9.0 ,我们通过软连接到自己想用的版本到 cuda,就可以直接完成CUDA版本的修改,注意更改时先删除之前的软连接:

cd /usr/local/

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda #连接你自己要用的CUDA版本

2. cuDNN版本切换

去官网自己下不同版本的cuDNN,然后解压,为了方便替换工作我直接整合写了一个shell脚本,你可以和解压后的cudn文件夹放在同一级目录下,然后修改里面的cudnn动态库版本为你的具体版本,然后sudo bash install_cudnn.sh

#!/bin/bash
#!install_cudnn.sh
rm -rf /usr/local/cuda/include/cudnn.h
rm -rf /usr/local/cuda/lib64/libcudnn*

cd cuda

cp include/cudnn.h /usr/local/cuda/include/
cp lib64/lib* /usr/local/cuda/lib64/

cd /usr/local/cuda/lib64/

chmod +r libcudnn.so.5.1.10
ln -sf libcudnn.so.5.1.10 libcudnn.so.5
ln -sf libcudnn.so.5 libcudnn.so
ldconfig

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

即可完成替换

3. 附:Tensorflow, CUDA, cuDNN版本对应

https://www.tensorflow.org/install/source

img1

Pytorch基本上从CUDA7-CUDA9均有支持,最新版目前也支持CUDA10,可以自行去官网查看