3

配置要求:

系统:centos6.5
目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架


写在前面

本文是在CentOS6.5环境下配置caffe和caffe的pytho3.6接口的过程中整理所得,本文是完全基于NVIDIA官方的文档完成的CUDA8.0的配置。(不管任何软件的配置要是出现问题,我相信你只要能安安静静的啃完官方文档,那么一定能解决你配置过程中出现的问题)
NVIDIA官方的CUDA8.0安装文档地址:http://docs.nvidia.com/cuda/c...
默认已提前安装NVIDIA显卡驱动,若还没有安装NVIDIA显卡驱动,请先阅读本人文章CentOS6.5编译安装NVIDIA驱动
进行NVIDIA驱动的安装。

CUDA8.0对各个操作系统的最低配置要求

这里写图片描述

可以看到CentOS 6.x的最低配置要求是:
kernel≥2.6.32
GCC≥4.4.7
GLIBC≥2.12
……
因为CentOS6.5基本都能满足上述配置,所以只需要了解一下

安装前准备工作:

1.NVIDIA显卡版本检查:

lspci | grep -i nvidia
[root@localhost HY]# lspci | grep -i nvidia
02:00.0 VGA compatible controller: NVIDIA Corporation GK107 [NVS 510] (rev a1)
02:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)

2.检查Linux版本:

uname -m && cat /etc/*release
[root@localhost HY]# uname -m && cat /etc/*release
x86_64
CentOS release 6.5 (Final)
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
CentOS release 6.5 (Final)
CentOS release 6.5 (Final)

3.gcc版本检查:

gcc –-version

尽量安装4.8.1以上,关于gcc怎么升级到4.8.1以上版本(能支持C++11)参考本人另一篇博客:CentOS6.5编译安装gcc4.8.2

4.内核版本检查:

uname -r

同时安装后续步骤所需的两个依赖项:kernel-devel kernel-headers

yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

必须加上-$(uname -r)否则下载到的是高一个版本的。
此外为了能够顺利运行安装完成后的Samples,还需要装以下依赖项:
Freeglut(本人安装的是freeglut-3.0.0 版本)
libx11
libxmu
libxi
mesa*
build-essential
首先用yum info看看是否已安装再使用yum install去尝试安装,若是没有直接去网上找源码编译安装 .
其中特别指出build-essential这个依赖项,乌班图和centos叫法不一样,build-essential是乌班图的叫法,而centos则是Development Tools
作用是提供编译程序必须软件包的列表信息,也就是说编译程序有了这个软件包它才知道头文件在哪,才知道库函数在哪,还会下载依赖的软件包,最后才组成一个开发环境,在配置centos系统的时候会提醒你要不要安装,若是没有安装可以使用以下命令进行安装。

yum groupinstall "Development Tools"  

安装CUDA8.0

CUDA8.0有3中方式安装,一种是RPM格式,一种是.run文件,还有一种是在线安装。在这里我选择的是.run文件安装。

1.禁用Nouveau驱动

Nouveau驱动是Linux系统自带的驱动,这一步在安装NVIDIA显卡驱动一文的时候已经介绍过了,可以若有问题可以参考:CentOS6.5编译安装NVIDIA驱动

2.备份和重建系统镜像

备份系统镜像

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

创建新的系统镜像

dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

其中$(uname -r)指的是你
自己系统对应的内核版本,可在root下输入uname -r试试。

3.改变系统运行级别

文本模式下启动安装程序(.run)才能顺利安装。

vi /etc/inittab

把最后一行id:5改为id:3,这一行代表的是系统启动时默认的运行级别,5代表的是图形界面,3代表的是文本模式。保存退出

4.重启

reboot

5.安装

用root登陆系统
并在终端输入

lsmod | grep nouveau

如果没有输出,表示禁用成功了
提升文件权限并执行安装命令

chmod 777 cuda_8.0.61_375.26_linux.run
sh ./cuda_8.0.61_375.26_linux.run
安装过程主要是以下4个部分

EULA Acceptance:一直回车到底,然后accept
CUDA Driver installation:如果已经安装了NVIDIA显卡驱动,那么拒绝安装(n),他会问你需不需要安装openGL,参考如下:
If installing the driver, the installer will also ask if the openGL libraries should be installed. If the GPU used for display is not an NVIDIA GPU, the NVIDIA openGL libraries should not be installed. Otherwise, the openGL libraries used by the graphics driver of the non-NVIDIA GPU will be overwritten and the GUI will not work. If performing a silent installation, the --no-opengl-libs option should be used to prevent the openGL libraries from being installed. See the Advanced Optionssection for more details.
根据自己的需求选择安装(y)或者不安装(n)
CUDA Toolkit installation, location, and /usr/local/cuda symbolic link:安装Toolkit并执行软链接
CUDA Samples installation and location
以上两个建议直接按照默认路径安装,全部选y。

配置环境变量
echo 'export PATH=/usr/local/cuda-8.0/bin:$PATH'>>~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH'>>~/.bashrc
source ~/.bashrc
配置文件更新

新建cuda.conf

vi /etc/ld.so.conf.d/cuda.conf

加入cuda的lib64路径

/usr/local/cuda-8.0/lib64
ldconfig

然后把系统运行级别重新改为5,reboot

测试CUDA是否安装成功

cd /home/HY/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery

若看到下面的图中的pass,则说明安装成功
这里写图片描述

cudnn安装

解压

tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd cudnn-8.0-linux-x64-v5.1

复制所有lib文件到cuda路径下的lib64文件夹下

cp lib* /usr/local/cuda-8.0/lib64/

复制头文件到对应的include文件夹下

cp cudnn.h /usr/local/cuda-8.0/include/

设置软链接

cd /usr/local/cuda-8.0/lib64
rm -rf libcudnn.so libcudnn.so.5
ln -s libcudnn.so.5.1.10 libcudnn.so.5
ln -s libcudnn.so.5 libcudnn.so
ldconfig -v

至此CUDA8.0和cudnnv5.1都安装完毕。在安装过程中出现的问题主要是那几个依赖项没有编译安装或者环境变量没有及时更新的原因。


郑付强
55 声望8 粉丝