1 GPU设备
1.1 本人使用的GPU设备
名称: 七彩虹GTX980Ti显卡iGame980Ti烈焰战神X 6G
1.2 硬件问题
Laboratory Tested Hardware:
Berkeley Vision runs Caffe with K40s, K20s, and Titans including models at ImageNet/ILSVRC scale. We also run on GTX series cards and GPU-equipped MacBook Pros. We have not encountered any trouble in-house with devices with CUDA capability >= 3.0. All reported hardware issues thus-far have been due to GPU configuration, overheating, and the like.
CUDA compute capability:
如果设备的运算能力 <= 2.0, 受限于设备的性能, 可能需要减少 CUDA的线程数量 和 批处理的 大小(sizes). 你的吞吐量可能会发生变化.
安装后, 参照我们的 reference performance numbers 确保所有的配置是正确的.
工程问题请参照 hardware/compatibility.
2 GPU驱动和GPU开发工具安装
基于cuda_7.0.28_linux.run安装
其他各版本(含老版本和最新版本)的文档地址:http://blog.csdn.net/real_myth/article/details/52724892
3 Caffe
基于原版翻译的教程参见: Caffe编译安装
3.1 编译工具(如果开发环境已经具备不需要此步骤)
1) gcc, g++ (安装命令: sudo apt-get install build-essential )
2) make(安装命令:sudo apt-get install make )
3) cmake(安装命令:sudo apt-get install cmake)
注意,在 Ubuntu 12.04中, 默认安装的CMake版本为2.8.7, 不能满足编译Caffe的CMake 版本需求 (版本至少为 2.8.8) ,如果你使用的系统是Ubuntu 12.04,可以尝试下面的安装步骤安装CMake 2.8.9或者升级到这个版本 :
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa -y
sudo apt-get -y update
sudo apt-get install cmake
3.2 先决依赖条件(Prerequisites)
Caffe 依赖于很多的软件包。
Caffe 需要 CUDA nvcc
编译器来编译GPU 代码 ,需要CUDA驱动来操作GPU. 要安装 CUDA, 请参照NVIDIA CUDA 网站和网站上的安装说明.分别安装依赖库和最新的驱动;
和依赖库绑定的驱动通常版本比较老.警告! 331.* CUDA 系列驱动有严重的性能问题: 不要使用.
为了达到最好的性能, Caffe 可以通过NVIDIA cuDNN加速. cuDNN 网站注册是免费的, 安装完后继续下面的安装说明.
要使用cuDNN编译请在你的Makefile.config
种设置USE_CUDNN := 1
.(个人用的是cuDNN V4)
cudnn下载地址: 下载(http://blog.csdn.net/real_myth/article/details/52739801)
本文安装方式:
由于cuda_7.0.28_linux.run安装需要编译内核,所以对于安装了桌面环境的ubuntu 需要结束桌面环境,在终端环境下操作。
桌面环境转到终端环境:
1)按ALT+CTRL+F1、F2、F3、F4、F5、F6、F7可来回切换7个界面(Linux实体机)其中ALT+CTRL+F7可切换到图形界面(Linux实体机)如果是VMware虚拟机安装的Linux系统,则切换到图形界面的时候需要以下操作按下ALT+CTRL+SPACE(空格),ALT+CTRL不松开,再按F7。这样就可以切换到图形界面了。
2) 如果想Ubuntu在每次启动到commandprompt(默认字符界面),可以输入以下指令:echo“false”|sudotee/etc/X11/default-display-manager(注意:上述命令的作用是将default-display-manager文件中的内容改为"false",在执行该命令之前最好先备份一下)当下次开机时,就会以命令行模式启动(字符界面登录)。如果想变回图形界面启动(Xwindows启动),可以输入:echo“/usr/sbin/gdm”|sudotee/etc/X11/default-display-manager(注意:其中“/usr/sbin/gdm”是原先default-display-manager文件中的内容,并不是所有linux版本都是“/usr/sbin/gdm”,ubuntu12.04的是"/usr/sbin/lightdm"因此,在修改default-display-manager文件的内容之前,最好先备份一下,以免忘记里面的内容。)
3)如果在Ubuntu以命令行模式启动,在字符终端想回到图形界面的话只需以下命令:startx
停止和启动桌面环境:
service lightdm stop & service lightdm start
安装:
转到cuda_7.0.28_linux.run所在的目录,以root权限运行此文件,并按照提示选择相应的安装工具和目录即可。
我都是默认路径全部安装的
Caffe 需要 BLAS作为矩阵和向量计算的后端( backend).有很多这个库的移植版本.可以自己根据情况选择:
ATLAS:
免费,开源代码,Caffe的默认依赖
sudo apt-get install libatlas-base-dev
Intel MKL:
商业版并且针对Intel的CPU做了优化, 可以免费试用,并且有学生版本.
安装 MKL.
在Makefile.config文件中设置 BLAS := mkl
OpenBLAS:
免费的并且开源; 优化的可并行的 BLAS, 虽然安装需要花点时间,但是确实可以提速 .
安装 OpenBLAS
在Makefile.config文件中设置 BLAS := open
sudo apt-get install libopencv-calib3d-dev libopencv-contrib-dev libopencv-core-dev libopencv-dev libopencv-features2d-dev libopencv-flann-dev libopencv-gpu-dev libopencv-highgui-dev libopencv-imgproc-dev libopencv-legacy-dev libopencv-ml-dev libopencv-objdetect-dev libopencv-ocl-dev libopencv-photo-dev libopencv-stitching-dev libopencv-superres-dev libopencv-ts-dev libopencv-video-dev libopencv-videostab-dev
或者
sudo apt-get install libopencv-dev
sudo apt-get install libboost-all-dev
protobuf
,leveldb
,snappy
,hdf5
, glog
,gflags
,lmdb
Ubuntu系统, 万一在你的系统源里找不到上面说的这些扩展库, 下面的命令教你如何手工编译安装 (安装的时候可能需要root权限)
# glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
# lmdb
git clone git://gitorious.org/mdb/mdb.git
cd mdb/libraries/liblmdb
make && make install
Note that glog does not compile with the most recent gflags version (2.1), so before that is resolved you will need to build with glog first.
python 2.7
, numpy (>= 1.7)
, boost-providedboost.python
主要的依赖为 numpy
和boost.Python
(通过 boost提供).pandas
也是有用的并且是一些例子的依赖。
可以通过以下命令安装依赖:
for req in $(cat requirements.txt); do sudo pip install $req; done
强烈推荐首先安装提供了大部分需要的的依赖包和hdf5依赖库的 Anaconda Python distribution。
ubuntu: sudo apt-get install python python-dev
安装完成后,如果要导入 caffe的
Python模块,需要通过 export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
或者类似的方法添加模块路径到你的环境变量$PYTHONPATH
.不可以在caffe/python/caffe路径中导入
!
Caffe’的 Python 接口支持 Python 2.7. Python 3 或者更早的 Pythons.
安装MATLAB, 确保Matalab的 mex在你的环境变量
$PATH中
.
Caffe的 MATLAB接口兼容于版本 2012b, 2013a/b, 和 2014a.
3.3 运行模式设置
cuDNN Caffe: Caffe通过drop-in integration of NVIDIA cuDNN的加速方式来达到最快的执行速度。
要加速你的Caffe模型, 请安装 cuDNN 然后在Makefile.config
文件中解注释USE_CUDNN := 1,这样安装
Caffe后,就会自动加速.
CPU-only Caffe: 对于cold-brewed 只有CPU模式的Caffe,请在文件Makefile.config中,解注释CPU_ONLY := 1,然后以无CUDA的方式编译
Caffe.这有助于云和集群方式的部署。
3.4 编译 & 安装
3.4.1 直接使用已有的Makefile
现在已经具备了所有的依赖条件, 编辑你的配置文件 Makefile.config,改变你的安装路径
(you should especially uncomment and setBLAS_LIB
accordingly on distributions likeCentOS / RHEL / Fedora where ATLAS is installed under/usr/lib[64]/atlas
),默认的配置是可以的,但是如果你使用的是Anaconda Python,请解注释相关的行。
cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python)
make all
make test
make runtest
编译的时候如果要引入cuDNN加速,你需要在文件Makefile.config中解注释USE_CUDNN := 1。
如果你的电脑上没有 GPU,你应该使用CPU-only模式的Caffe,请在文件Makefile.config中解注释CPU_ONLY := 1
。
要编译 Python 和 MATLAB 包,请独立的执行make pycaffe和
make matcaffe
. 请务必首先在Makefile.config中配置你的MATLAB 和 Python路径!
Distribution: 运行 make distribute来创建一个包含所有的Caffe 头文件, 编译好的依赖库,二进制文件等的分布式路径,用于其他机器的配置
.
Speed: 如果要快速的编译,请通过make all -j8的方式并行编译,其中
8是并行编译的线程的数量(并行线程的数量最好等于你机器CPU核的数量).
到目前为止,你已经安装了Caffe, 请参照 MNIST tutorial 和 reference ImageNet model tutorial进行进一步的操作.
通过手工编辑Makefile.config的方式告诉
Caffe 寻找依赖的的位置, Caffe 也提供了一个基于 CMake的编译系统 (currently in “beta”).要求CMake 版本 >= 2.8.8. 基本的安装步骤如下:
mkdir build
cd build
cmake ..
make all
make runtest