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

2019-05-25 22:33:18 浏览数 (1)

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433727

下载安装Intel MKL

打开这里Intel® Math Kernel Library (Intel® MKL),点击”Get This Library for Free”下载一个非商用的免费版本,很简单,只需要提供邮箱,然后按照步骤一步步来就行了,在下载界面上会有显示序列号,务必记下这个序列号。

以linux版本为例,我下载的文件为l_mkl_2017.0.098.tgz,解压缩后执行install.sh就开始安装了

代码语言:javascript复制
#!/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

代码语言:javascript复制
#!/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

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

编译完成后,ldd查看tools/caffe的动态库依赖,确认使用MKL

MNIST训练测试

这里假设你已经完成了mnist的数据下载及LMDB数据库创建,所以过程略过

在caffe根目录下执行如下命令开始mnist训练

代码语言:javascript复制
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(多线程版本)》

0 人点赞