首页 > 代码库 > 基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练

基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练

原文链接

     在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升。 Pradeep Dubey 在其博文中概述了英特尔? 架构机器学习愿景。 英特尔正在实现 Pradeep Dubey 博文中勾勒的机器学习愿景,并正在着手开发软件解决方案以加速执行机器学习工作负载。这些解决方案将包含在未来版本的英特尔? 数学核心函数库(英特尔? MKL)和英特尔? 数据分析加速库(英特尔? DAAL)中。 本技术预览版展示了配备我们正在开发的软件后,英特尔平台将有望实现的性能。  这一版本仅可在支持英特尔? 高级矢量扩展指令集 2(英特尔? AVX2)的处理器上运行。 在未来的文章中,我们将介绍分布式多节点配置可带来的优势。

     本文介绍的预览包功能有限,且并非设计用于生产用途。 此处讨论的特性现已在英特尔 MKL 2017 测试版和英特尔 Caffe 分支 (fork) 中推出。

    Caffe 是伯克利愿景和学习中心 (Berkeley Vision and Learning Center, BVLC) 开发的一个深度学习框架,也是最常用的用于图像识别的社区框架之一。 Caffe 通常作为性能指标评测与 AlexNet(一种图像识别神经网络拓扑)和 ImageNet(一种标签图像数据库)一起使用。

Caffe 可充分利用英特尔 MKL 中优化的数学例程,同时也将可以通过应用代码现代化技术,进一步提升基于英特尔? 至强? 处理器的系统的性能。 通过合理使用英特尔 MKL、矢量化和并行化技术,相比未优化的 Caffe 方案,经过优化的方案有望将训练性能提升 11 倍,将分类性能提升 10 倍。

技术分享

借助这些优化,在整个 ILSVRC-2012 数据集上训练 AlexNet* 网络以在 80% 的时间实现排名前五的准确度,所需的时间从 58 天缩短至大约 5 天。

开始

我们正努力为软件产品开发新功能,目前您可使用本文附带的技术预览包再现展示的性能结果,甚至使用您自己的数据集训练 AlexNet。

该预览包支持 AlexNet 拓扑,并引入了“intel_alexnet”模型,它类似于 bvlc_alexnet,添加了 2 个全新的“IntelPack“和“IntelUnpack”层,以及优化的卷积、池化和规范化层。 此外,我们还更改了验证参数以提高矢量化性能,将验证 minibatch 的数值从 50 提高到 256,将测试迭代次数从 1000 减少到 200,从而使验证运行中使用的图像数量保持不变。 该预览包在以下文件中加入了 intel_alexnet 模型:

  • models/intel_alexnet/deploy.prototxt
  • models/intel_alexnet/solver.prototxt
  • models/intel_alexnet/train_val.prototxt.

“intel_alexnet”模型支持您训练和测试 ILSVRC-2012 训练集。

开始使用该预览包时,请确保“系统要求和限制”中列出的所有常规 Caffe 依赖项均已安装在系统中,然后:

  • 对预览包进行解包。
  • 为以下“intel_alexnet”模型文件中的数据库、快照位置和图像均值文件指定路径。
    • models/intel_alexnet/deploy.prototxt
    • models/intel_alexnet/solver.prototxt
    • models/intel_alexnet/train_val.prototxt
  • 为“系统要求和限制”部分列出的软件工具设置运行时环境。
  • 在 LD_LIBRARY_PATH 环境变量中添加 ./build/lib/libcaffe.so 路径
  • 设置线程环境:
    $> export OMP_NUM_THREADS=<N_processors * N_cores>
    $> export KMP_AFFINITY=compact,granularity=fine
  • 使用以下命令在单节点上执行计时:
    $> ./build/tools/caffe time \
           -iterations <number of iterations> \
           --model=models/intel_alexnet/train_val.prototxt
  • 使用以下命令在单节点上执行训练:
    $> ./build/tools/caffe train \
           --solver=models/intel_alexnet/solver.prototxt

系统要求和限制

该预览包与未优化的 Caffe 拥有相同的软件依赖项:

  • boost* 1.53.0
  • opencv* 2.4.9
  • protobuf* 3.0.0-beta1
  • glog* 0.3.4
  • gflags* 2.1.2
  • lmdb* 0.9.16
  • leveldb* 1.18
  • hdf5* 1.8.15
  • Red Hat Enterprise Linux* 6.5 或更高版本

和英特尔 MKL 11.3 或更高版本。

硬件兼容性:

  • 第四代智能英特尔? 酷睿? 处理器(代号 Haswell)

此软件仅使用 AlexNet 拓扑进行了验证,可能不适用于其他配置。

支持:

如有关于该预览包的任何问题和建议,请联系:mailto:intel.mkl@intel.com。

基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练