多Cuda/Cudnn版本切换

1. 软链接方式

1.1 下载并安装cuda-9

cd ~/Downloads
sudo sh cuda_9.0.176_384.81_linux.run
  • 注意安装过程中提示是否安装驱动的时候选择n,是否创建软连接选择n,其他都选择是

1.2 安装对应版本CUDNN

cd ~/Downloads
tar -xvf cudnn-9.0-linux-x64-v7.tgz

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
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*

1.3 使用说明

之前安装CUDA8.0的时候已经添加过环境变量,这里我们需要对系统变量稍作修改,以后切换CUDA版本的时候只需要修改CUDA目录软连接到想使用的CUDA版本目录就可以了(或者直接修改环境变量,变更CUDA版本的目录也可以)。接下来分别说明环境变量修改内容和切换步骤:

  • 环境变量修改:
gedit ~/.bashrc

将:
# added by cuda8.0
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

修改为:
# added by cuda8.0
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • CUDA版本切换

删除之前软链接,并创建指定版本

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

2. Anaconda自动切换不同版本的cuda

指定该环境使⽤用的cuda版本

tensorflow运⾏行行时,实际是从动态链接库的地址找需要的cuda动态链接库,所以我们只需要指定 LD_LIBRARY_PATH . 即保证该环境启动时,把cuda 10的地址加⼊入 LD_LIBRARY_PATH ,关闭该环境时再移除.

创建环境启动时的脚本:

mkdir -p ~/anaconda3/envs/tf113_cuda10/etc/conda/activate.d
touch ~/anaconda3/envs/tf113_cuda10/etc/conda/activate.d/activate.sh
vim ~/anaconda3/envs/tf113_cuda10/etc/conda/activate.d/activate.sh
chmod +x ~/anaconda3/envs/tf113_cuda10/etc/conda/activate.d/activate.sh

在脚本中填⼊:
#!/bin/sh
ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64:/lib/nccl/cuda-9:$LD_LIBRARY_PATH
创建环境关闭时的脚本:
mkdir -p ~/anaconda3/envs/tf113_cuda10/etc/conda/deactivate.d
touch ~/anaconda3/envs/tf113_cuda10/etc/conda/deactivate.d/deactivate.sh
vim ~/anaconda3/envs/tf113_cuda10/etc/conda/deactivate.d/deactivate.sh
chmod +x
~/anaconda3/envs/tf113_cuda10/etc/conda/deactivate.d/deactivate.sh

在脚本中填⼊:
#!/bin/sh
export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH
unset ORIGINAL_LD_LIBRARY_PATH

使⽤,检查

echo $LD_LIBRARY_PATH

应该看到输出:

/usr/local/cuda-10.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64:/lib/nccl/cuda-9:

 

你可能感兴趣的:(hao's,DeepLearning,blog)