背景
笔者事先在ubuntu上安装了cuda9.0,然而在编译opencv3.1时候,发生了版本不匹配的冲突。遂又安装了cuda8.0,但二者极其cudnn的安装,如出一辙,在这里记录下安装过程。
cuda下载及安装
NVIDIA官网下载cuda8.0的安装run文件
注意安装时候不要sudo
安装,同样的原因,若安装出错,可能难以卸载干净。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22./cuda_8.0.61_375.26_linux-run 注意不要更新显卡驱动,更改安装及链接库路径到个人指定目录下
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]: /home/tucodec/wuxj/cuda-9.0
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/tucodec ]: /home/tucodec/wuxj/cuda-8.0
安装完成后需要在系统内写入bin
及lib
搜索路径,以笔者的安装路径为例1
2
3vi ~/.bashrc
export PATH=$PATH:/home/<user name>/wuxj/cuda-8.0/bin:/home/<user name>/wuxj/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/<user name>/wuxj/cuda-8.0/lib64:/home/<user name>/wuxj/cuda-9.0/lib64
其中PATH为bin
可执行程序路径,一般添加安装软件的terminal快速启动,LD_LIBRARY_PATH
为依赖库的路径。
另外笔者同时安装了cuda8.0/cuda9.0,系统路径中哪个在前即可先被访问调用。而在cmake中会更加灵活,直接指定cuda安装目录便可以正确调用。
cudnn下载及安装
NVIDIA官网下载cudnn压缩文件(需先注册)。cudnn其实无需安装, 解压后即可看到里面是include
头文件夹,及NVIDIA事先编译好的lib
库。所以我们只需要将其复制到cuda对应目录即可。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15cd cudnn6
cp include/* ../../cuda-8.0/include/ # 复制到你cuda安装目录的对应文件夹
cp lib64/* ../../cuda-8.0/lib64/
cd ../../cuda-8.0/lib64/
sudo rm libcudnn.so
sudo rm libcudnn.so.6
sudo ln -sf libcudnn.so.6.0.21 libcudnn.so.6
sudo ln -sf libcudnn.so.6 libcudnn.so
兼容 cuda-8.0 和 cuda-9.0
1 | function activate_cuda_80() { |
安装成功
一些体会:Linux系统完美诠释了文件即一切,所有安装内容都暴露在外部,所有想删除的东西一键删除安装文件夹即可,强烈不推荐sudo安装。
pip可以用sudo安装,因为pip安装的软件很容易卸载
pip的安装目录:/usr/local/lib/python3.5/dist-packages/ /usr/local/lib/python3.5/dist-packages/
,pip安的软件可以到该目录查看是否被安装好