CentOS6.8 + cuda + caffe安装记录 (之五 cuda安装)

首先说一下,读官方文档真的特别重要。

我的系统版本是centos6.8,在centos上装GPU的文档很少,而且可能他们写的也不全面,会导致出现更多不好解决的问题。官方安装文档是最细致最权威的指导。

Linux上安装cuda的官方指导http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/#axzz4I2qb0WZZ

别人写的不错的安装介绍: http://www.jianshu.com/p/b88bbfa0f435
http://askubuntu.com/questions/672047/anyone-has-successfully-installed-cuda-7-5-on-ubuntu-14-04-3-lts-x86-64

安装cuda的时候它会自动找NVIDIA显卡的,不需要提前把NVIDIA显卡设置为默认显卡。

这里简单说一下我的安装经过:

1. 首先查看Cuda安装之前的配置需求

我的操作系统是centos6所以是这样的:
2.6.32以上版本的Linux内核,4.4.7以上版本的gcc。

这里写图片描述

2. 进行安装之前必要的查询

a) 查看是否安装NVIDIA显卡

lspci | grep -i nvidia

b) 查看当前操作系统至少要哪个版本才能支持cuda

uname -m && cat /etc/*release

这一步会得到两个结果,第二个要大于第一个的结果才能符合要求

c) 查看gcc版本

gcc -v

d) 查看glibc版本

ll /lib64/libc.so.*

e) 确保系统中有正确的Kernel Headers and Development Packages
查看系统正在运行的kernel版本

uname -r

安装

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

f) 下载文件
Linux上cuda官方下载链接https://developer.nvidia.com/cuda-downloads

g) 如果机器上有其他版本的cuda,先卸载掉

/usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
/usr/bin/nvidia-uninstall

3. 安装

这是使用本地的run文件安装的方法。后边还会讲到在线安装的方法。别人的普遍反映是在线安装更好,但是我是使用本地run文件装好的。

在安装之前需要先把Nouveau(一个开源的显卡驱动)关掉。

先查看机器上Nouveau有没有运行

lsmod | grep nouveau

如果该命令有结果就是打开了,我的系统是没有输出的,所以我也就没有往下执行。如果需要关闭的话可以到安装文档上查看自己系统对应的关闭命令。
开始安装

chmod 777 cuda_7.5.18_linux.run
./ cuda_7.5.18_linux.run

安装时我的选择为
这里写图片描述

成功后得到的输出结果为
这里写图片描述

然后重启系统
然后确认设备节点已经正确创建。确认方式如下

ls /dev/nvidia*

如果有返回结果,就说明已经正确创建,如果没有,则自己写一个脚本进行创建,脚本内容如下
这里写图片描述

4. 安装完成后设置环境变量

vim /etc/profile
#在文件中加入如下内容
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
#关闭文件后执行
source /etc/profile

更改配置文件

vim /etc/ld.so.conf
/usr/local/cuda-7.5/lib64  #加到文件中
ldconfig

5. 跑个例子看看有没有正确安装

把例子拷到当前文件夹

cuda-install-samples-7.5.sh ./

进入例子的文件夹,并make

若顺利编译完成,则接下来便是进入到1_Utilities/deviceQuery目录中。执行设备请求的脚本。如果能够正确地得到设备的各项信息,则cuda安装完成。

我在安装过程中遇到的报错及解决方法记录:

  • 1

make simple的时候报错 /usr/bin/ld: cannot find –lglut
解决方法:
到/usr/lib和/usr/local/lib中寻找libglut.so,没有找到,说明没有安装,现在安装一个。
参考http://navyaijm.blog.51cto.com/4647068/809424

安装命令如下:

yum install mesa*
yum install freeglut*

参考http://blog.csdn.net/wolf8sheep/article/details/20312723

  • 2

找不到nvcc
原因:路径没有添加对。
nvcc在/usr/local/cuda-7.5/bin/nvcc
查看PATH的命令bash -c ‘echo $PATH’
返回值如果没有/usr/local/cuda-7.5/bin/需要添加一下

export PATH=/usr/local/cuda-7.5/bin:$PATH 

这里写图片描述
参考http://askubuntu.com/questions/428234/nvcc-not-found-but-only-when-using-sudo

  • 3

后来在编译完sample后,发现例子都不能跑通。

./DeviceQuery

结果为找不到设备。如下图:
这里写图片描述

我一直找不到原因,后来发现是因为没有插电源。心塞塞/(ㄒoㄒ)/~~

6. 使用在线安装的方式进行

写在前面:以下这些只是替换前面写的安装过程的第3部分。

发现官方文档中有写,NVIDIA-driver有些外部依赖,必须通过第三方进行安装。
需要DKMS libvdpau等等,但所有的库文件都在epel第三方文件库里面
http://dl.fedoraproject.org/pub/epel/6/x86_64/找到epel进行下载
安装命令

rpm -Uvh epel-release*rpm       #我下载的是epel-release-6-8.noarch.rpm

安装libvdpau有些教程给的是

 yum install libvdpau

但是我用该命令的时候一直说找不到可用包,后来换了一种方法。如下:【参考https://pkgs.org/centos-6/linuxtech-testing/libvdpau-0.7-3.el6.x86_64.rpm.html】下载了libva-vdpau-driver-0.7.4-3.el6.1.x86_64.rpm
Create the repository config file /etc/yum.repos.d/linuxtech-testing.repo:

[linuxtech-testing]
name=LinuxTECH Testing
baseurl=http://pkgrepo.linuxtech.net/el6/testing/
enabled=0
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET

Install libvdpau rpm package:

# yum --enablerepo=linuxtech-testing install libvdpau

然后是关于xorg.conf文件的问题

如果在/etc/X11/下没有这个文件,那就不用管了。如果有的话,那需要手动处理一下。等安装好cuda之后,进入该目录下,一定删除xorg.conf,要不然无法显示(centos6环境下)。而ubuntu环境下不用处理,顺其自然。

然后安装cuda-repo--..rpm文件
http://developer.download.nvidia.com/compute/cuda/repos/ 该地址下载合适自己的版本。我们的服务器是centos6.8的系统,所以我下载的是cuda-repo-rhel6-7.5-18.x86_64.rpm(后来我发现该文件在cuda的在线安装下载页面就有,不用这么麻烦得跑那么远)。

然后安装

rpm --install cuda-repo-rhel6-7.5-18.x86_64.rpm

然后清除Yum repository cache,命令是

yum clean expire-cache

此时安装cuda可以用

yum install cuda

如果找不到可用地址,可以在NVIDIA官网下载cuda_7.5.18_linux.run
这里边包含了NVIDIA-driver,所有可以不提前安装NVIDIA-driver。
安装完成以后,到/etc/X11目录下删除xorg.conf文件。


caffe在gpu下的安装与使用

安装过程就是编译和测试能否使用的过程,依然是

make all
make test
make runtest
make pycaffe

遇到问题:

.build_release/tools/caffe.o: In function `time()':
caffe.cpp:(.text+0x214e): undefined reference to `caffe::Net<float>::Net(std::string const&, caffe::Phase, caffe::Net<float> const*)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/caffe.bin] Error 1

原因:机器上还编译了另一个caffe
解决方法:进入另一个caffe的文件夹,make clean。
如果还是不行的话,就到/usr/lib,把libcaffe.so删掉(之前安装caffe遗留下来的)

rm /usr/lib/libcaffe.so*

参考http://blog.csdn.net/kc171154/article/details/49422463

之后caffe的测试和使用与前面讲述一样。可以参考
CentOS6.8 + cuda + caffe安装记录 (之二 caffe测试) http://blog.csdn.net/u011636440/article/details/52441023
CentOS6.8 + cuda + caffe安装记录 (之三 caffe使用)
http://blog.csdn.net/u011636440/article/details/52441519

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值