OpenCL版Caffe安装教程

来源:互联网 发布:php 协程 异步 编辑:程序博客网 时间:2024/06/08 17:23

转载请注明来源:http://blog.csdn.net/greenlight_74110/article/details/78446339

安装前的准备

添加epel的源:

最新的版本可以在这里找到。

sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

安装依赖

sudo yum install opencl-headers gflags-devel glog-devel lmdb-devel python-devel opencv-devel protobuf-devel leveldb-devel snappy-devel hdf5-devel numpy scipy python-scikit-image python-matplotlib 

注: ubuntu请使用以下操作:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

下载OpenCL驱动

使用4版本的驱动,不要使用最新的5版本,可能会出现一些问题。

  1. 查询是否已经安装过opencl

    $ rpm -qa | grep intel-openclPACKAGE1.x86_64PACKAGE2.x86_64
  2. 移除已有的版本

    $ sudo rpm -e --nodeps PACKAGE1 PACKAGE2
  3. 解压下载的zip包,运行以下命令:

    $ sudo rpm -Uvh intel-opencl-r4.1-BUILD_ID.x86_64.rpm$ sudo rpm -Uvh intel-opencl-devel-r4.1-BUILD_ID.x86_64.rpm$ sudo rpm -Uvh intel-opencl-cpu-r4.1-BUILD_ID.x86_64.rpm

对于ubuntu可以使用以下安装方法:

$ mkdir intel-opencl$ tar -C intel-opencl -Jxf intel-opencl-r4.1-BUILD_ID.x86_64.tar.xz$ tar -C intel-opencl -Jxf intel-opencl-devel-r4.1-BUILD_ID.x86_64.tar.xz$ tar -C intel-opencl -Jxf intel-opencl-cpu-r4.1-BUILD_ID.x86_64.tar.xz$ sudo cp -R intel-opencl/* /$ sudo ldconfig

对于atom或者3代及3代以下的cpu型号,建议使用Beignet。

安装ViennaCL

mkdir -p $HOME/codecd $HOME/codegit clone https://github.com/viennacl/viennacl-dev.gitcd viennacl-devmkdir build && cd buildcmake -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=$HOME/local -DOPENCL_LIBRARY=/opt/intel/opencl/libOpenCL.so ..make -j4make install# 如果你还想用到显卡的话,以下isaac不用安装# cd $HOME/code# git clone https://github.com/intel/isaac# cd isaac# mkdir build && cd build# cmake -DCMAKE_INSTALL_PREFIX=$HOME/local .. && make -j4# make install

安装OpenBLAS(或MKL、Atlas)

官方推荐的是MKL,英特尔官方的一套针对它家cpu加速的LAS,速度是最快的,但是需要付费,不过学生可以申请非商业用途的教育版。

安装完后记得在命令行内运行:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/mkl/lib/intel64_lin/

在这里不建议使用Atlas,可能会出错。

我这里安装的是OpenBLAS:

sudo yum install openblas-devel.x86_64

安装Caffe

cd $HOME/codegit clone https://github.com/BVLC/caffecd caffegit checkout openclmkdir build && cd build# export ISAAC_HOME=$HOME/localcmake .. -DUSE_GREENTEA=ON -DUSE_CUDA=OFF -DUSE_INTEL_SPATIAL=ON -DBUILD_docs=0 -DUSE_ISAAC=0 -DViennaCL_INCLUDE_DIR=$HOME/local/include -DBLAS=open -DOPENCL_LIBRARIES=/opt/intel/opencl/libOpenCL.so -DOPENCL_INCLUDE_DIRS=/opt/intel/opencl/include -DOpenCV_DIR=path/to/yourOpenCV/buildmake -j6export CAFFE_ROOT=$HOME/code/caffe

说明:
1. make -j6后面为你要指定用来编译的cpu核数,不要设置超过你的cpu最大的核数。
2. DOpenCV_DIR后面请设置为你的OpenCV安装目录的build目录下。
3. 如果你使用的MKL,请将DBLAS设置成:-DBLAS=mkl

确保caffe能找到你的OpenCL设备:

#:~/code/clcaffe/build (opencl)$ ./tools/caffe device_query -gpu allI0914 10:48:49.130982   890 common.cpp:373] Total devices: 2I0914 10:48:49.131080   890 common.cpp:374] CUDA devices: 0I0914 10:48:49.131099   890 common.cpp:375] OpenCL devices: 2I0914 10:48:49.131101   890 common.cpp:399] Device id:                     0I0914 10:48:49.131103   890 common.cpp:401] Device backend:                OpenCLI0914 10:48:49.131130   890 common.cpp:403] Backend details:               Intel(R) Corporation: OpenCL 2.0I0914 10:48:49.131134   890 common.cpp:405] Device vendor:                 Intel(R) CorporationI0914 10:48:49.131155   890 common.cpp:407] Name:                          Intel(R) HD GraphicsI0914 10:48:49.131157   890 common.cpp:409] Total global memory:           26878951424I0914 10:48:49.131160   890 common.cpp:399] Device id:                     1I0914 10:48:49.131178   890 common.cpp:401] Device backend:                OpenCLI0914 10:48:49.131182   890 common.cpp:403] Backend details:               Intel(R) Corporation: OpenCL 2.0I0914 10:48:49.131188   890 common.cpp:405] Device vendor:                 Intel(R) CorporationI0914 10:48:49.131192   890 common.cpp:407] Name:                          Intel(R) Core(TM) i5-6600K CPU @ 3.50GHzI0914 10:48:49.131283   890 common.cpp:409] Total global memory:           33609175040

运行Alexnet例子来测试caffe是否安装成功:

./tools/caffe time -model ../models/bvlc_alexnet/deploy.prototxt -gpu 0

-gpu后面的0表示opencl设备的编号。

进一步对caffe的各项功能进行测试:

make runtest -j6

最后对OPENCL功能进行测试:

./build/test/test.testbin --gtest_filter=*OpenCLKernelCompileTest* X

X是OPENCL设备编号。

配置PyCaffe

先引入环境变量:

export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

也可以添加到环境中去:

$ sudo gedit /etc/profile# 添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH$ source /etc/profile # 使之生效

测试caffe:

Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import caffe/home/hejunhua/code/clCaffe/python/caffe/pycaffe.py:13: RuntimeWarning: to-Python converter for caffe::LayerParameter already registered; second conversion method ignored.  from ._caffe import \/home/hejunhua/code/clCaffe/python/caffe/pycaffe.py:13: RuntimeWarning: to-Python converter for caffe::SolverParameter already registered; second conversion method ignored.  from ._caffe import \/home/hejunhua/code/clCaffe/python/caffe/pycaffe.py:13: RuntimeWarning: to-Python converter for std::vector<int, std::allocator<int> > already registered; second conversion method ignored.  from ._caffe import \>>> import caffe>>> 

注:如果出现上述的warning, 不用在意。

原创粉丝点击