Caffe:CPU模式下使用Intel MKL做mnist训练

下载安装Intel MKL

打开这里Intel® Math Kernel Library (Intel® MKL),点击”Get This Library for Free”下载一个非商用的免费版本,很简单,只需要提供邮箱,然后按照步骤一步步来就行了,在下载界面上会有显示序列号,务必记下这个序列号。
Caffe:CPU模式下使用Intel MKL做mnist训练_第1张图片
以linux版本为例,我下载的文件为l_mkl_2017.0.098.tgz,解压缩后执行install.sh就开始安装了

#!/bin/sh
tar zxvf l_mkl_2017.0.098.tgz
cd mkl_2017.0.098
sudo ./install.sh
# 安装过程中注意看提醒,输入前面得到的序列号,除此之外一路都是默认安装

安装完成,安装文件的位置在/opt/intel

编译Caffe

安装MKL要用cmake重新生成Makefile文件并编译,执行代码如下,然后make Caffe

#!/bin/sh
# 执行cmake生成Makefile
mkdir build && cd build
cmake -DBLAS=MKL -DCPU_ONLY=ON -DBUILD_python=OFF -DBUILD_python_layer=OFF -DBoost_INCLUDE_DIR=/usr/include/boost148 -DBoost_LIBRARY_DIR=/usr/lib64/boost148 ..
# 开始编译 24线程
make install -j 24

-DBLAS=MKL指定BLAS使用MKL,
也可以用cmake-gui界面来选择使用MKL,然后点击”Generate”生成Makefile
Caffe:CPU模式下使用Intel MKL做mnist训练_第2张图片

关于CentOS6.5下编译Caffe的过程参见我的另一篇博客《CentOS6.5编译Caffe过程记录(系统存在多个编译器)》

编译完成后,ldd查看tools/caffe的动态库依赖,确认使用MKL
Caffe:CPU模式下使用Intel MKL做mnist训练_第3张图片

MNIST训练测试

这里假设你已经完成了mnist的数据下载及LMDB数据库创建,所以过程略过
在caffe根目录下执行如下命令开始mnist训练

export OPM_NUM_THREADS=4 && ./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

OPM_NUM_THREADS用于设置MKL的线程数,详细说明参见《Intel MKL 多线程设置》

在我的电脑上(CentOS6.5,双至强24核处理器/32GB),用时大约9分钟,比使用OpenBLAS-openmp快了大约1分钟,参见上一篇博文《Caffe:CPU模式下使用openblas-openmp(多线程版本)》

你可能感兴趣的:(deeplearning)