【只谈干货】ubuntu18.04多版本CUDA安装指南(10.1 + 8.0)

原来的系统及相关配置:
ubuntu18.04 + CUDA10.1 + cuDNN7.6.4
安装教程如下:
https://blog.csdn.net/ys578676728/article/details/102669085

由于需要测试的source code使用的是tensorflow1.2版本,需要CUDA8.0支持,故尝试在已有的10.1版本的情况下安装CUDA8.0。过程中踩过一些坑,特此记录下来。

0. 下载安装CUDA8.0

https://developer.nvidia.com/cuda-80-ga2-download-archive
按照如下选择,忽略 Version: 16.04
【只谈干货】ubuntu18.04多版本CUDA安装指南(10.1 + 8.0)_第1张图片
两个都下载,按提示运行sudo sh cuda_8.0.61_375.26_linux.run
【只谈干货】ubuntu18.04多版本CUDA安装指南(10.1 + 8.0)_第2张图片
按照下图选择,注意不用安装驱动,其余都默认yes
【只谈干货】ubuntu18.04多版本CUDA安装指南(10.1 + 8.0)_第3张图片

1. Toolkit: Installation Failed. Using unsupported Compiler.

第一个坑:使用不支持的编译器。因为系统中的编译器是gcc-7,而CUDA8.0安装时只支持gcc-5以下的版本,因此我们安装个gcc-4.8和g++-4.8

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

查看此时系统默认gcc版本

gcc -v

发现还是gcc-7。因此我们还需要修改系统默认的gcc版本,这里使用update-alternatives,这个命令是个专门维护系统命令链接符的工具,具体在此不赘述,使用方法如下:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10 --slave /usr/bin/g++ g++ /usr/bin/g++-7

上面两个命令分别创建了gcc-4.8, gcc-7和系统gcc的关联,20和10表示其优先级,数字越大优先级越高。同时g++作为slave从属前面的关联。可通过如下命令查看创建结果:

sudo update-alternatives --config gcc

【只谈干货】ubuntu18.04多版本CUDA安装指南(10.1 + 8.0)_第4张图片
此时再查看系统gcc版本时发现已经变成了gcc-4.8。当我们需要切换版本时,只需选择对应版本前面的序号0/1/2即可。

2. Toolkit: Installation Failed.

虽然上面一步解决了编译器版本的问题,重新安装时发现还是报错。此时我们查看一下日志/tmp/cuda_install_*.log,可以看到如下提示:

Can't locate InstallUtils.pm in @INC

表明无法找到InstallUtils.pm这个文件。同时注意到log中@INC contains后面还跟着很多路径,首先需要确认下这些路径是不是在系统中存在,找到一个即可。我的系统中有/usr/share/perl5,因此下一步就是将InstallUtils.pm复制到此路径:

mkdir cuda-8
sudo sh cuda_8.0.61_375.26_linux.run --noexec --target cuda-8
sudo cp cuda-8/InstallUtils.pm /usr/share/perl5

完成上述步骤后,重新安装:

sudo sh cuda_8.0.61_375.26_linux.run

安装成功!!!

3. CUDA不同版本切换

经过上述步骤,/usr/local里同时有cuda-10.1和cuda-8.0两个文件夹。此时同样使用update-alternatives来实现版本管理:

sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-8.0 20
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-10.1 10

同时需要注意的是,如果之前的环境变量设置的是/usr/local/cuda-10.1需要改成/usr/local/cuda。如下图情况就需要修改。
【只谈干货】ubuntu18.04多版本CUDA安装指南(10.1 + 8.0)_第5张图片
最后执行下面命令:

sudo ldconfig /usr/local/cuda/lib64

在需要版本切换时,执行如下语句,然后选择需要版本所对应的序号即可。

sudo update-alternatives --config gcc

4. 安装对应的cuDNN

和CUDA8.0对应的cuDNN版本为5,下载cuDNN v5 Library for Linux
https://developer.nvidia.com/rdp/cudnn-download
下载完成后,将文件解压,然后:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

你可能感兴趣的:(环境配置)