所用安装包链接等审核通过了我贴上,收了一个金币,包含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
如果再编译的过程中,遇到问题,建议查看这篇博客