Ubuntu14.04+CUDA8.0+GTX1080+caffe

转自:http://blog.csdn.net/Frank_zrh/article/details/52298909?locationNum=6&fps=1


一、需要预先下载的东西

1.        GTX1080的Linux驱动(run文件)

2.        Install-OpenCV-master(最好先下载好对应的OpenCV版本,修改相应的脚本省时间)

3.        Cuda8.0文件(run文件)

4.        Cudnn5.0文件(压缩包)

二、安装caffe之前的准备工作

Step1禁用nouveau驱动

按Ctrl+Alt+F1进入命令提示符,新建一个黑名单文件

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

输入

blacklist nouveau

options nouveau modset=0

保存退出(:wq)

然后执行

sudo update-initramfs -u

执行 lspci | grepnouveau查看是否有内容

lspci | grep nouveau

如果没有内容,说明禁用成功,如果有内容,就重启一下再查看

step2:安装显卡驱动(不从CUDA中一起装,因为CUDA8.0中的显卡驱动太旧)

Ctrl+alt+F1进入字符界面,关闭图形界面 

sudo service lightdm stop

安装driver

sudo chmod 755 NVIDIA-Linux-x86_64-367.27.run  //获取权限

sudo ./NVIDIA-Linux-x86_64-367.27.run  //安装驱动

安装完成之后

sudo service lightdm start

其实,在我的安装过程中输入上面这条命令之后,显示器会没有内容,我想应该是视频信号已经切换到独显中,而视频线仍然接在集显上

我的方案是,安装完成之后,reboot或者shutdown之后把视频线连接到独显上,避免强制关机

安装完成之后可用一面的命令查看

nvidia-smi



step3:安装CUDA8.0

进入到CUDA文件所在的目录

sudo sh cuda_8.0.27_linux.run

除了第二项“”是否安装显卡驱动“选择no之外,其他全部按照默认设定

安装过程显示如下信息

Doyou accept the previously read EULA? 
accept/decline/quit: accept

InstallNVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62? 
(y)es/(n)o/(q)uit: n

Installthe CUDA 8.0 Toolkit? 
(y)es/(n)o/(q)uit: y

EnterToolkit Location 
[ default is /usr/local/cuda-8.0 ]:

Doyou want to install a symbolic link at /usr/local/cuda? 
(y)es/(n)o/(q)uit: y

Installthe CUDA 8.0 Samples? 
(y)es/(n)o/(q)uit: y

EnterCUDA Samples Location 
[ default is /home/zhou ]:

Installingthe CUDA Toolkit in /usr/local/cuda-8.0 … 
Missing recommended library: libGLU.so 
Missing recommended library: libX11.so 
Missing recommended library: libXi.so 
Missing recommended library: libXmu.so

Installingthe CUDA Samples in /home/zhou … 
Copying samples to /home/zhou/NVIDIA_CUDA-8.0_Samples now
… 
Finished copying samples.

=========== 
= Summary = 
=========== 
Driver: Not Selected 
Toolkit: Installed in /usr/local/cuda-8.0 
Samples: Installed in /home/zhou, but missing recommended libraries

Pleasemake sure that 
- PATH includes /usr/local/cuda-8.0/bin 
- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add/usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

Touninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Pleasesee CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf fordetailed information on setting up CUDA.

***WARNING:Incomplete installation! This installation did not install the CUDA Driver. Adriver of version at least 361.00 is required for CUDA 8.0 functionality towork. 
To install the driver using this installer, run the following command,replacing with the name of this run file: 
sudo .run -silent -driver

Logfileis /tmp/cuda_install_2961.log 

设置环境变量

sudo vi /etc/profile

在文件的最后面加上下面两句

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

exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

使环境变量立即生效

sudo ldconfig



这里强势插入一个步骤:安装库,因为接下来安装Samples需要make,所以得先装好一些库和依赖

sudo apt-get install freeglut3-dev build-essentiallibx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx

在安装库的过程中也出现一些问题,例如有些安装不了(选择的软件源没有这个库),这种情况可以在ubuntu的网站搜索相应的

库的名字,可以到它给出的链接去下载deb包直接双击安装就可以了。校园网的用户建议连接中科大的源,速度很快。

安装CUDA自带的Samples

cd /usr/local/cuda/samples

sudo make all -j4

这里j后面的数,网上说是cpu的核心数目

编译完之后

cd ./bin/x86_64/linux/release

运行例程

./deviceQuery 

若出现显卡信息,则说明安装完成了



step3:安装CUDNN5.0

将cudnn解压后就是一个名为CUDA的文件夹,放在哪都可以,我们还要复制里面的文件到相应的地方,并创建软链接

cd cuda 

sudo cp lib64/lib* /usr/local/cuda/lib64/ 

sudo cp include/cudnn.h /usr/local/cuda/include/

cd /usr/local/cuda/lib64/

sudo chmod +r libcudnn.so.5.0.5

sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5

sudo ln -sf libcudnn.so.5 libcudnn.so

sudo ldconfig



-----------------------------------我把这里作为分界线,是因为多次实验以上的步骤都不会出错,容易出错的地方在分界线下面的部分--------------------------------

step4:安装opencv

这里推荐网友写的一个脚本(百度云下载http://pan.baidu.com/s/1qX1uFHa ,密码:wysa
在Isstall-OpenCV-master的根目录下

cd ./Ubuntu

sudo sh dependencies.sh

cd ./3.0

sudo sh opencv3_0_0.sh

第一次运行会发现编译到72%时出错,因为现在opencv3.0有个地方还未修改,遇到CUDA8.0会出错

github大神给出了解决方案(https://github.com/opencv/opencv/pull/6510/commits/10896129b39655e19e4e7c529153cb5c2191a1db

意思就是在下载好的OpenCV3.0的文件夹中

cd ./modules/cudalegacy/src

sudo vim graphcuts.cpp

在代码line45中找到

#if!defined (HAVE_CUDA) || defined (CUDA_DISABLER)

将他改为

#if!defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

这样再编译一下就好了,在这里有一点需要注意,如果又用

sudo sh opencv3_0_0.sh

则需要,先对opencv3_0_0.sh文件进行修改,将脚本中下载opencv文件和解压的两句注释掉就可以了

等待几分钟,就安装好了。

三、编译caffe

安装依赖项和各种库

sudo apt-get install libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilerlibatlas-base-dev libgflags-dev libgoogle-glog-dev

 liblmdb-dev

sudo apt-get install --no-install-recommendslibboost-all-dev

安装pycaffe所需要的依赖项

sudo apt-get install -ypython-numpy python-scipy python-matplotlib python-sklearn python-skimagepython-h5py

python-protobuf python-leveldb python-networkxpython-nose python-pandas python-gflags cython ipython


进入caffe的根目录

cpMakefile.config.example Makefile.config



根据自己的需要修改Makefile.config

我自己改了CUDNN项和OPENCV项(用了3.0就要修改这一项)

make all -j4

make test -j4

make runtest -j4



第一次make的时候出现了错误

.build_release/lib/libcaffe.so:undefined reference tocv::imread(cv::String const&,int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&,cv::_InputArray const&, std::vector >&, std::vector > const&)

参考https://github.com/BVLC/caffe/issues/2348的回答

我尝试了在caffe根目录下

rm build(如果有这个文件夹的话)

mkdir build

cd build

cmake ..

make all -j4

cd ..

make all -j4

这样下来就可以make成功了,如果还出现问题可以看看上面提供的链接

接下来我就

make test



但是再次出错了

libcudart.so.8.0:cannot open shared object file: No such file or directory

应该是库文件没有链接好

用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边

 ln -s/where/you/install/lib/*.so /usr/lib

sudo ldconfig

修改LD_LIBRARY_PATH(这个在之前已经做好了)

exportLD_LIBRARY_PATH=/where/you/install/lib:$LD_LIBRARY_PATH

修改/etc/ld.so.conf在文件中添加cuda8.0的lib路径

/usr/local/cuda-8.0/lib64

一共三步就解决了缺少动态链接库的问题

再接下来make test 和make runtest都没有出错了

 

虽然之前也配置过cuda7.5和gtx970但是,由于gtx1080比较新,安装驱动要单独从官网上先下载,配置过程中opencv与cuda8.0也有兼容问题。

有参考网上的教程,但是还是花了两天时间来配置。特意整理了这样一篇博客,流程是完全按照我成功配置下来的过程而写的,希望对大家有帮助。

也感谢在这过程中给我帮助的同学。第一次写博客,还请多多指教!

 

参考的博客:http://www.2cto.com/os/201607/528798.html

其他引用的材料在文中也有标注出来,若有侵权可与我联系,我马上修改

 


你可能感兴趣的:(Ubuntu14.04+CUDA8.0+GTX1080+caffe)