Ubuntu16.04+GTX1070+CUDA8.0+Caffe

来源:互联网 发布:vb两个窗体传递数值 编辑:程序博客网 时间:2024/04/29 11:12

本文主要介绍在Ubuntu16.04环境下,使用GTX1070显卡安装CUDA8.0和Caffe。GTX1070目前只支持CUDA8.0,现在发行的CUDA8.0可以用于Ubuntu16.04和14.04两个版本,所以在选择安装时,本文采用Ubuntu16.04+CUDA8.0的搭配。在安装CUDA8.0时,本文采用.run的方法,采用.deb的方法会出现很多问题,所以建议在安装CUDA时采用.run的方法。使用Ubuntu16.04会牵扯到gcc/g++版本的问题,在16.04下用低版本编译caffe会出现很多问题,所以在安装各个平台时,不对gcc/g++进行降级处理,注释掉各个平台相应报错部分。

本文在此次安装中用到的所有平台有:Ubuntu16.04、CUDA8.0、cudnn v5.0、Intel Parallel StudioXE Cluster 2017、OpenCV 3.0.0。本文没有使用matlab,因为牵扯到Ubuntu16.04的gcc/g++版本过高,matlab要求与之相配的gcc/g++版本,并且现在多使用python,所以没有安装matlab,如果读者想要安装matlab,可以对gcc/g++进行降级处理,再来安装。

机器配置:CPU:i53750 3.4GHz,内存8G,GPU GTX1070,硬盘500G

感谢欧新宇老师博客指导以及网上的各种教程

一、Ubuntu安装

Ubuntu16.04下载地址为:https://www.ubuntu.com/download/desktop。读者可以安装双系统,也可以单独安装Ubuntu16.04。双系统的安装方法请参考欧新宇老师博客http://blog.csdn.net/shiorioxy/article/details/52652831。本文在此次安装中单独使用Ubuntu16.04(硬盘太小)。

二、NVIDIA驱动安装

1)      驱动下载

NVIDIA-Linux-x86_64-367.44.run可以到http://www.geforce.com/drivers,搜索GTX1070驱动,下载保存。

2)      驱动安装

Ctrl+alt+F1进入字符界面,关闭图形界面输入用户名和密码

sudo servicelightdm stop    //这一步非常重要,不然后面无法安装

sudo chmod755 NVIDIA-Linux-x86_64-367.44.run  //获取权限

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

安装完成后输入

sudo servicelightdm strat   //恢复到图形界面

三、CUDA8.0的安装

1)     cuda_8.0.27_linux.run的下载

cuda_8.0.27_linux.run下载地址为:https://developer.nvidia.com/cuda-downloads,下载runfile文件,并保存。

2)     cuda_8.0.27_linux.run安装

cuda8.0不支持gcc/g++5.3以上版本,所以在安装时,对gcc/g++进行降级处理或者是采用下面方法。

sudo shcuda_8.0.27_linux.run --override    //使用override来安装

会出现一些协议之类的东西,按q退出或是按space一直到100%。然后accept

在安装的过程中或出现一些选项:

Install NVIDIA AcceleratedGraphics Driver for Linux-x86_64 361.62?

(y)es/(n)o/(q)uit: n           //这里一定选n,要不前面的驱动都白装了

 

Install the CUDA 8.0 Toolkit?

(y)es/(n)o/(q)uit: y

 

Enter Toolkit Location

[ default is /usr/local/cuda-8.0]:   //这里直接按enter,会出现下面的选项

 

Do you want to install a symboliclink at /usr/local/cuda?

(y)es/(n)o/(q)uit: y

 

Install the CUDA 8.0 Samples?

(y)es/(n)o/(q)uit: y

 

Enter CUDA Samples Location

[ default is /home/DL]: //这里也直接enter,DL是我存放CUDA的文件夹

 

Installingthe CUDA Toolkit in /usr/local/cuda-8.0 …

开始安装

四、安装cudnnv5.0

1)     cudnn-8.0-linux-x64-v5.0.tgz的下载

cudnn-8.0-linux-x64-v5.0.tgz,下载地址为https://developer.nvidia.com/cudnn。

2)     cudnn-8.0-linux-x64-v5.0.tgz的安装

cudnn-8.0-linux-x64-v5.0.tgz的安装非常简单,在cudnn-8.0-linux-x64-v5.0.tgz的文件下打开终端,输入:

tar zxvfcudnn-8.0-linux-x64-v5.0.tgz

cd cuda

cdcuda/include/

sudo cpcudnn.h /usr/local/cuda/include/ 复制头文件

cd ../lib64 打开lib64目录

sudo cp lib*/usr/local/cuda/lib64/ 复制库文件

sudo chmoda+r /usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn*给所有用户增加这些文件的读权限安装

建立软连接

cd /usr/local/cuda/lib64/

sudo rm -rflibcudnn.so libcudnn.so.5

sudo ln -slibcudnn.so.5.1.5 libcudnn.so.5

sudo ln -slibcudnn.so.5 libcudnn.so

3)      设置变量环境

终端输入:

PATH=/usr/local/cuda/bin:$PATH

export PATH

sudo gedit/etc/profile

按i插入,将上面export两句加到末尾,esc退出编辑,然后按:,wq保存

sudo vim/etc/ld.so.conf.d/cuda.conf

插入下面语句

/usr/local/cuda/lib64

退出

sudoldconfig      //环境变量立即生效

nvidia-smi       //查看驱动版本

nvcc –v

输出:

NVIDIA (R)Cuda compiler driver Copyright (c) 2005-2016

NVIDIACorporation Built on Sun_Oct__4_15:23:36_CDT_2016 Cuda

compilationtools, release 8.0, V8.0.26

4)      测试CUDA

cd/home/deeplearning/NVIDIA_CUDA-8.0_Samples //deeplearning是我的用户名

sudo make all-j4   //使用cpu4核编译

出现“unsupported GNU version! gccversions later than 5.3 are not supported!”的错误,这是由于GCC版本过高,在终端输入

cd /usr/local/cuda-8.0/include

sudo cphost_config.h host_config.h.bak

sudo gedithost_config.h

ctrl+f寻找有“5.3”的地方,只有一处,如下

# if __GNUC__> 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)

#error --unsupported GNU version! gcc versions later than 5.3 are not supported! 将两个5改成6,即

#if __GNUC__> 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)

也可以将其//注释掉

保存退出,继续在终端输入

cd/home/pawn/NVIDIA_CUDA-8.0_Samples (pawn是我的用户名)

sudo make all-j4 (4核)

完成后继续向终端输入

cdbin/x86_64/linux/release

./deviceQuery

最后出现PASS说明安装成功

五、Intel Parallel Studio XE Cluster2017

1)     IntelParallel Studio XE Cluster 2017的

这里本文采用mkl数学内核库,Intel Parallel Studio XE Cluster 2017的下载地址为https://software.intel.com/en-us/qualify-for-free-software/student,这里申请要使用edu邮箱申请学生版。

2)     IntelParallel Studio XE Cluster 2017

tar zxvfparallel_studio_xe_2016.tar.gz

chmod a+xparallel_studio_xe_2016 -R      //获得权限

shinstall_GUI.sh  //图形界面安装

建议使用root权限安装,中间一项

建立连接

sudo gedit/etc/ld.so.conf.d/intel_mkl.conf

添加

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

/lib

sudo ldconfig -v

六、OpenCV3.0.0安装

1)     OpenCV3.0.0的下载可以到官方网站http://opencv.org/下载,如果使用shell文件下载可能会比较慢,所以直接在win下下载好OpenCV3.0.0.zip文件。

2)     http://pan.baidu.com/s/1qX1uFHa,从欧新宇老师百度云中下载Install-opencv-master文件。

sudo shUbuntu/dependencies.sh   //下载必要的依赖

这里可能由于网速的原因有的无法下载,输入

sudo apt-get--fix-missing //获取无法下载连接

在此输入

sudo shUbuntu/dependencies.sh

直到所有的依赖下载完毕并安装好

打开opencv3_0_0.sh文件

按照里面的命令下载依赖(里面的网址就是下载opencv3.0.0的,所以不用执行),然后

按opencv3_0_0.sh里面的命令建立build文件,编译,在这里会遇到ippicv_linux_20141027.tgz文件下载的问题(还是看网速),如果无法下载成功,就到网上搜素该文件,下载然后将其拷贝到相应文件夹下,输入

Cp ippicv_linux_20141027.tgz/home/zhou/opencv3.0/OpenCV/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b

然后解决opencv与cuda8.0兼容问题

cd /home/zhou/opencv3.0/OpenCV/opencv-3.0.0/modules/cudalegacy/src

sudo vi graphcuts.cpp

打开文件后会看到

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

将其改为

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

然后在按照opencv3_0_0.sh文件命令编译安装

七、Caffe的安装

1)     首先安装必要的依赖

sudo apt-get update

sudo apt-get install -y build-essential cmake gitpkg-config

sudo apt-get install -y libprotobuf-devlibleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install -y libatlas-base-dev

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

sudo apt-get install -y libgflags-devlibgoogle-glog-dev liblmdb-dev

sudo apt-get install -y python-pip

sudo apt-get install -y python-dev

sudo apt-get install -y python-numpy python-scipy

同样确保所有依赖文件都安装完毕

2)     到caffe的github下载caffe文件https://github.com/BVLC/caffe。

3)     在caffe-master文件夹下打开终端输入

cp Makefile.config.example Makefile.config

配置Makefile.config文件

去掉#USE_CUDNN := 1的#

去掉# OPENCV_VERSION=3的#

BLAS := mkl      //我们用的是mkl数学库

PYTHON_LIB := /usr/local/lib      //这里只是用python。Matlab按照安装相应路径进行修改

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/includeLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

修改为:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include/usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib/usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial       //这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径

保存退出

cd /usr/local/cuda/include/host_config.h

sudo vi host_config.h

找到#error-- unsupportedGNU version! gcc versions later than 5.3 are not supported!注释掉,改为

//#error-- unsupported GNU version! gcc versionslater than 5.3 are not supported!

至此所有的安装结束,接下来进行caffe的编译

make all –j8

make test –j8

make runtest –j8

make pycaffe –j8 //多少核根据cpu来订

运行mnist进行测试

sh data/mnist/get_mnist.sh

sh examples/mnist/create_mnist.sh

sh examples/mnist/train_lenet.sh

参考文献:

http://www.2cto.com/os/201607/528798.html

http://blog.csdn.net/shiorioxy/article/details/52652831

http://blog.csdn.net/wopawn/article/details/52302164

http://blog.csdn.net/xuzhongxiong/article/details/52717285

http://blog.csdn.net/autocyz/article/details/52299889

http://blog.csdn.net/hjimce/article/details/51999566

0 0
原创粉丝点击