转载请注明来源:http://blog.csdn.net/greenlight_74110/article/details/78446339
最新的版本可以在这里找到。
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-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
使用4版本的驱动,不要使用最新的5版本,可能会出现一些问题。
查询是否已经安装过opencl
$ rpm -qa | grep intel-opencl
PACKAGE1.x86_64
PACKAGE2.x86_64
移除已有的版本
$ sudo rpm -e --nodeps PACKAGE1 PACKAGE2
解压下载的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。
mkdir -p $HOME/code
cd $HOME/code
git clone https://github.com/viennacl/viennacl-dev.git
cd viennacl-dev
mkdir build && cd build
cmake -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=$HOME/local -DOPENCL_LIBRARY=/opt/intel/opencl/libOpenCL.so ..
make -j4
make 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
官方推荐的是MKL,英特尔官方的一套针对它家cpu加速的LAS,速度是最快的,但是需要付费,不过学生可以申请非商业用途的教育版。
安装完后记得在命令行内运行:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/mkl/lib/intel64_lin/
在这里不建议使用Atlas,可能会出错。
我这里安装的是OpenBLAS:
sudo yum install openblas-devel.x86_64
cd $HOME/code
git clone https://github.com/BVLC/caffe
cd caffe
git checkout opencl
mkdir build && cd build
# export ISAAC_HOME=$HOME/local
cmake .. -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/build
make -j6
export 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 all
I0914 10:48:49.130982 890 common.cpp:373] Total devices: 2
I0914 10:48:49.131080 890 common.cpp:374] CUDA devices: 0
I0914 10:48:49.131099 890 common.cpp:375] OpenCL devices: 2
I0914 10:48:49.131101 890 common.cpp:399] Device id: 0
I0914 10:48:49.131103 890 common.cpp:401] Device backend: OpenCL
I0914 10:48:49.131130 890 common.cpp:403] Backend details: Intel(R) Corporation: OpenCL 2.0
I0914 10:48:49.131134 890 common.cpp:405] Device vendor: Intel(R) Corporation
I0914 10:48:49.131155 890 common.cpp:407] Name: Intel(R) HD Graphics
I0914 10:48:49.131157 890 common.cpp:409] Total global memory: 26878951424
I0914 10:48:49.131160 890 common.cpp:399] Device id: 1
I0914 10:48:49.131178 890 common.cpp:401] Device backend: OpenCL
I0914 10:48:49.131182 890 common.cpp:403] Backend details: Intel(R) Corporation: OpenCL 2.0
I0914 10:48:49.131188 890 common.cpp:405] Device vendor: Intel(R) Corporation
I0914 10:48:49.131192 890 common.cpp:407] Name: Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
I0914 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设备编号。
先引入环境变量:
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 linux2
Type "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, 不用在意。