版权声明:本文为博主原创文章,转载请注明源地址。 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(多线程版本)》