参考地址:Ubuntu16.04+CUDA8.0+caffe配置
一 安装Nvidia驱动
1.安装依赖项
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 libopenblas-dev liblapack-dev libatlas-base-dev sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2.安装过程(略,在设置里安装驱动,版本390)
3.安装完成之后输入以下指令进行验证:
sudo nvidia-smi
若列出了GPU的信息列表则表示驱动安装成功。
二 安装Cuda
CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。
(1)下载CUDA
首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:
(2)安装
同样,简化命名为cuda.run
sudo sh cuda.run
注意不要安装图形驱动,其他一路绿灯
(3)环境变量配置
打开~/.bashrc文件:
sudo gedit ~/.bashrc
将以下内容写入到~/.bashrc尾部:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
(4)测试CUDA的sammples
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery #由自己电脑目录决定 sudo make sudo ./deviceQuery
如果显示一些关于GPU的信息,则说明安装成功。
三 安装cudnn
cuDNN是GPU加速计算深层神经网络的库。
首先去官网(https://developer.nvidia.com/rdp/cudnn-download)下载cuDNN,可能需要注册一个账号才能下载。
下载CuDNN v7.X library for Linux
下载cuDNN之后进行解压,cd进入cuDNN解压之后的include目录,在命令行进行如下操作:
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件1
再将cd进入lib64目录下的动态文件进行复制和链接:
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库 cd /usr/local/cuda/lib64/ sudo rm -rf libcudnn.so libcudnn.so.7 #删除原有动态文件 sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本) sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
四 安装opencv
从官网(https://opencv.org/releases.html)下载Opencv(Sources版),并将其解压到你要安装的位置,假设解压到了/home/opencv。
安装前准备,创建编译文件夹:
cd ~/opencv
mkdir build
cd build
配置:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
编译:
make -j8 #-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make。
以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:
sudo make install
五 安装 caffe
(1)将终端cd到要安装caffe的位置。
(2)从github上获取caffe:
git clone https://github.com/BVLC/caffe.git
注意:若没有安装Git,需要先安装Git:
sudo apt-get install git
(3)因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config:
sudo cp Makefile.config.example Makefile.config
(4)打开并修改配置文件:
sudo gedit Makefile.config #打开Makefile.config文件
根据个人情况修改文件:
a.若使用cudnn,则将
#USE_CUDNN := 1 修改成: USE_CUDNN := 1
b.若使用的opencv版本是3的,则将
#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3
c.若要使用python来编写layer,则将
#WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1
d. 重要的一项 :
将# Whatever else you find you need goes here.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_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的位置,所以需要更改这一路径.
e.更重要的
注释掉这一行
#-gencode arch=compute_20,code=sm_20
(5)修改makefile文件
打开makefile文件,做如下修改:
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
(6)修改host_config.h
sudo gedit /usr/local/cuda/include/crt/host_config.h
将
#error-- unsupported GNU version! gcc versions later than 6 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 6 are not supported!
(7)复制链接
sudo cp /opencv-3.4.0/build/lib/libopencv_core.so.3.4 /usr/local/lib/libopencv_core.so.3.4 && sudo ldconfig make -j8
在caffe/python目录下
for req in $(cat requirements.txt); do pip install $req; done
然后
sudo apt-get install python-numpy make py
最后
make test -j8
make runtest
测试绿图:
cifar-10测试: