Ubuntu16.04+CUDA9.0+cuDNN7+python2.7+Tensorflow12+opencv3.4.0+Matlab2015b+Caffe(GPU)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36835368/article/details/85706888

所用安装包链接等审核通过了我贴上,收了一个金币,包含cuda9.0+cuDNN7.4.1+Matlab2015b+opencv3.4.0+caffe源码

1 禁用nouveau

重启系统,在选择系统的界面安键盘“e”,将倒数第二行的quiet splash --  改为 quiet splash acpi=off
进入Ubuntu系统后输入lsmod | grep nouveau ,没有任何输出就是禁用成功。

2 安装NVIDIA显卡驱动

卸载老版本

sudo apt-get remove --purge nvidia*

查看推荐版本

ubuntu-drivers devices

官网下载推荐的版本之一

#我是从官网下载的390的。
sudo dpkg -i NVIDIA-Linux-x86_64-390.87.run 

#将下载好的run文件拷贝至home目录下

在ubuntu下按ctrl+alt+f1进入命令行界面,登录帐号和密码后。然后在命令行界面下输入:

$ sudo service lightdm stop      //这个是关闭图形界面,不执行会出错


$ sudo chmod  a+x NVIDIA-Linux-x86_64-390.87.run  //赋予执行权限

$  sudo ./NVIDIA-Linux-x86_64-390.87.run -no-x-check  -no-opengl-files 
//只有禁用opengl这样安装才不会出现循环登陆的问题

//-no-x-check:安装驱动时关闭X服务

//-no-nouveau-check:安装驱动时禁用nouveau.我们前边已经禁用了这一步可以省略

//-no-opengl-files:只安装驱动文件,不安装OpenGL文件

查看驱动是否安装成功

#查看驱动是否安装成功.如果没有显示,重启后再输入查看
$ nvidia-smi

#重启指令
$ reboot

3 安装CUDA9.0及补丁

官网下载相应的cuda9.0版本及补丁

$ sudo sh cuda_9.0.176_384.81_linux.run
#注意:不要安装这里推荐的驱动。因为上边安装过了。然后根据提示填写cuda的路径和samples的路径。

#配置环境变量
sudo emacs  /etc/profile

#打开文件后在文件末尾添加路径,也就是安装目录,命令如下:

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

    export  LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH  

#保存,然后重启电脑

$ sudo reboot


#安装补丁,和上边的步骤一样.这里不用配置环境变量了
$ sudo sh cuda_9.0.176.1_linux.run
$ sudo sh cuda_9.0.176.2_linux.run
$ sudo sh cuda_9.0.176.3_linux.run
$ sudo sh cuda_9.0.176.4_linux.run

4 安装cuDNN

下载cuDNN, 进入cuDNN官网注册下载,我下载的是7.4.1 for cuda9.0的,等会贴连接。

cuDNN的官方安装方式网址, 网址里讲的很详细。不过也可以看我的:

首先解压安装包,然后将所需文件copy至CUDA,并改变文件访问权限:

   

 $ tar -xzvf cudnn-9.0-linux-x64-v7.4.1.5.tgz
     
 $ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
 $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
 $ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

到这里cuDNN就安装完成了。

  查看CUDA和CUDNN是否安装成功及相应的版本号:

   

cat  /usr/local/cuda/version.txt
     
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
     
     
nvcc -V

5 安装python2.7

Ubuntu16.04自带python2.7但是库较为简单,具体的安装了配置见我的博客 ,

那里有很详细完善的步骤。python2.7配置caffe的Makefile.config文件时更简单,更容易通过。

6 安装Tensorflow

  我的python2.7主要用来配置caffe使用。Tensorflow是在python3.6下运行的,所以通过pip3直接安装

#用于python3
pip3 install tensorflow-gpu

#用于python2.7
pip install tensorflow-gpu

7安装Opencv-3.4.0 和Matlab2015b

详细的过程见我的博客 。

8 安装Caffe

下载源码

git clone https://github.com/BVLC/caffe

安装

#安装依赖
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev 
$ libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev

$ sudo apt-get install protobuf-c-compiler protobuf-compiler
$ sudo apt-get install libgoogle-glog-dev

$ cd caffe
$ cp Makefile.config.example Makefile.config

 更改Makefile.config

#这是我的修改的地方
USE_CUDNN := 1


OPENCV_VERSION := 3

CUDA_DIR := /usr/local/cuda

CUDA_ARCH :=
#-gencode arch=compute_20,code=sm_20 \
#		-gencode arch=compute_20,code=sm_21 \
		-gencode arch=compute_30,code=sm_30 \
		-gencode arch=compute_35,code=sm_35 \
		-gencode arch=compute_50,code=sm_50 \
		-gencode arch=compute_52,code=sm_52 \
		-gencode arch=compute_60,code=sm_60 \
		-gencode arch=compute_61,code=sm_61 \
		-gencode arch=compute_61,code=compute_61

BLAS := atlas

MATLAB_DIR := /usr/local/MATLAB/R2015b

PYTHON_INCLUDE := /usr/include/python2.7 \
		/usr/lib/python2.7/dist-packages/numpy/core/include

PYTHON_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

更改Makefile

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

更改GCC版本权限

sudo eamcs /usr/local/cuda/include/crt/host_config.h

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

使用双斜杠注释掉,改为:

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

编译

#编译 测试
sudo make all -j16

sudo test -j16
sudo runtest -j16

如果再编译的过程中,遇到问题,建议查看这篇博客

猜你喜欢

转载自blog.csdn.net/weixin_36835368/article/details/85706888