
1. 安装Google Logging Library(glog)
glog 下载地址
安装命令如下所示
# 解压tar -zxvf glog-0.3.3.tar.gz# 切换路径cd glog-0.3.3sudo ./configuresudo make –jsudo make install
2. 安装其它依赖
执行以下命令即可。
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler python-pandas
3. 编辑Makefile.config文件
*** 作命令如下所示。
unzip caffe-master.zip #本地解压caffe-master#切换路径cd /caffe-master #caffe源文件中没有Makefile.config,需要复制Makefile.config.examplecp Makefile.config.example Makefile.config#编辑Makefile.configvi Makefile.config
修改Makefile.config
PYTHON_LIB := /usr/local/libMATLAB_DIR := /usr/local/MATLAB/R2014a
取消第5行的注释,即将 #USE_CUDNN=1 改为 USE_CUDNN=1;
如果使用本教程系列安装的,就不需要修改BLAS=atlas,如果是参考欧新宇的教程,安装了MKL,需要改成BLAS=mkl;
启用CUDNN,加注释: CPU_ONLY:=1 改成 # CPU_ONLY:=1;
配置路径,实现caffe对Python和Matlab接口的支持:
4. 编辑Makefile文件
如果openCV版本是2.4.x,此小节可以不再阅读
如果openCV版本3.0,还需要修改Makefile文件,实现对OpenCV 3.x的支持。
在Makefile文件中查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs,修改之后为:
LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
5. 编译caffe-master
依次执行下面的命令,编译caffe:
make all -jmake test -jmake runtest -j
runtest执行结束之后,如下图所示。这样子就说明安装成功了。
Caffe需要预先安装一些依赖项,首先是CUDA驱动。不论是CentOS还是Ubuntu都预装了开源的nouveau显卡驱动(SUSE没有这种问题),如果不禁用,则CUDA驱动不能正确安装。以Ubuntu为例,介绍一下这里的处理方法,当然也有其他处理方法。1
2
3
4
5
6
# sudo vi/etc/modprobe.d/blacklist.conf
# 增加一行 :blacklist nouveau
sudoapt-get --purge remove xserver-xorg-video-nouveau #把官方驱动彻底卸载:
sudoapt-get --purge remove nvidia-*#清除之前安装的任何NVIDIA驱动
sudo service lightdm stop#进命令行,关闭Xserver
sudo kill all Xorg
然后下载并安装 NVIDIA CUDA驱动包,接着安装安装BLAS、OpenCV、Boost这三个库。BLAS数学库可以是ATLAS, MKL, 或 OpenBLAS,OpenCV要求2.4以上版本,Boost要求1.55版本以上。可选安装Python MATLAB Caffe 库,还有 numpy , pandas 之类的Python类库。安装MATLAB,以确保mex 在path路径中,这些就够你折腾一个星期了,完事以后就可以编译安装了:
1
2
3
4
5
cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
make all
make test
make runtest
哦对了,Caffe 显卡要求:Titan Xs, K80s, GTX 980s, K40s, K20s, Titans, and GTX 770s
个人感觉不会有啥本质差别。如果有差别的话,那基本上就可能是:
(1) 你用的底层数学库不一样,而这些底层数学库的速度不同。比如说Atlas和MKL,一般MKL完胜。
(2) 你用的编译器优化能力不同。不过现代编译器其实对于caffe这样运算逻辑比较简单的代码的优化基本上已经没有啥差别了,所以更有可能是下一条。
(3) 你开的优化选项不一样。比如说开-O0和-O3,或者开-mavx和不开avx,速度甩几条街是分分钟的事情。
另外@王峰 提到的Cudnn的问题,传说NVIDIA在Windows上的Cudnn没有用心跑优化,也有传说NVIDIA CUDA的Windows驱动没有用心写。。。这个个人没有验证过,不过如果是真的话也不奇怪了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)