基于英特尔® 至强? 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训

原文链接

深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成。 在最近的一篇文章《基于英特尔? 至强? E5 产品家族的单节点 Caffe 评分和培训》中,我们展示了基于 AlexNet 拓扑的 Caffe* 框架的性能提升 10 倍,单节点培训时间减少到 5 天。 英特尔继续履行 Pradeep Dubey 的博客中列出的机器学习愿景,在本篇技术预览中,我们将展示如何在多节点、分布式内存环境中将 Caffe 的培训时间从数日减少为数个小时。

    本文介绍了功能有限且并不用于生产的预览包。 讨论的特性现已配备在英特尔 MKL 2017英特尔 Caffe 分支 (fork) 中。

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

Caffe 框架在默认情况下并不支持多节点、分布式内存系统,需要做出大范围的调整方可在分布式内存系统上运行。 我们借助英特尔? MPI 库对同步 minibatch 随机梯度下降 (SGD) 算法执行强扩展。 针对一次迭代的计算能够扩展到多个节点,这样,多线程多阶段并行实施便相当于单节点、单线程序列实施。

我们使用三种方法扩展计算:数据并行、模型并行和混合并行。 模型并行是指将模型或重量划分为节点,这样,每个部分的重量便由指定节点所有,每个节点在一个 minibatch 中处理所有数据点。 与重量和重量梯度的通信不同,这需要激活和激活梯度通信,数据并行通常就是这样。

借助这一更高级的分布式并行,我们对所有 2012 年 ImageNet 大规模视觉识别挑战赛 (ILSVRC-2012) 数据集上的 AlexNet 进行了培训,仅用了 5 个多小时的时间便在基于英特尔? 至强? 处理器 E5 产品家族的 64 节点系统集群上达到 80% 的数据集准确度(位列前五名)。

入门

虽然我们正在努力将本文中列出的新功能整合至以后的英特尔? 数学核心函数库(英特尔? MKL)英特尔?数学分析加速库(英特尔? DAAL) 版本中,您可以使用本文所附的技术预览包再次生成所演示的性能结果,甚至在您自己的数据集上培训 AlexNet。 预览包括单节点和多节点实施。 请注意,目前的实施仅限于 AlexNet 拓扑,可能无法与其他常见 DNN 拓扑配合使用。

该软件包支持 AlexNet 拓扑,并添加了 ‘intel_alexnet’ 和 ‘mpi_intel_alexnet’ 模型,这与在 ‘bvlc_alexnet’ 中添加两个新的 ‘IntelPack’ 和 ‘IntelUnpack’ 层,以及针对所有层优化卷积、池化、标准化层和基于 MPI 的实施一样。 我们还更改了验证参数以提高矢量化性能,即将验证 minibatch 尺寸从 50 提高到 256,将测试迭代次数从 1,000 减少到 200,从而使验证运行中使用的映像数量保持不变。 数据包在以下文件夹中包含 ‘intel_alexnet’ 模型:

  • models/intel_alexnet/deploy.prototxt
  • models/intel_alexnet/solver.prototxt
  • models/intel_alexnet/train_val.prototxt.
  • models/mpi_intel_alexnet/deploy.prototxt
  • models/mpi_intel_alexnet/solver.prototxt
  • models/mpi_intel_alexnet/train_val.prototxt.
  • models/mpi_intel_alexnet/train_val_shared_db.prototxt
  • models/mpi_intel_alexnet/train_val_split_db.prototxt

’intel_alexnet’ 和 ’mpi_intel_alexnet’ 模型都支持您培训和测试 ILSVRC-2012 培训集。

如要启动软件包,请确保您的系统中已安装了系统要求和限制部分列出的所有常规 Caffe 依赖性和英特尔软件工具。

在单节点上运行

  1. 解包软件包。
  2. 为以下 ‘intel_alexnet’ 模型文件中的数据库、快照位置和图像均值文件指定路径。
    • models/intel_alexnet/deploy.prototxt
    • models/intel_alexnet/solver.prototxt
    • models/intel_alexnet/train_val.prototxt
  3. 系统要求和限制部分列出的软件工具设置运行时环境。
  4. 在 LD_LIBRARY_PATH 环境变量中添加连接至 ./build/lib/libcaffe.so 的路径。
  5. 按照以下方式设置线程环境:
    $> export OMP_NUM_THREADS=<N_processors * N_cores>
    $> export KMP_AFFINITY=compact,granularity=fine

注: OMP_NUM_THREADS 必须为大于等于 2 的偶数。

  1. 使用该命令在单节点上执行计时:
    $> ./build/tools/caffe time \
           -iterations <number of iterations> \
           --model=models/intel_alexnet/train_val.prototxt
  2. 使用该命令在单节点上运行培训:
    $> ./build/tools/caffe train \
           --solver=models/intel_alexnet/solver.prototxt

在集群上运行

  1. 解包软件包。
  2. 系统要求和限制部分列出的软件工具设置运行时环境。
  3. 在 LD_LIBRARY_PATH 环境变量中添加连接至 ./build-mpi/lib/libcaffe.so 的路径。
  4. 按照如下方式,针对要使用的节点数量设置 NP 环境变量:

$> export NP=<number-of-mpi-ranks>

注:通过在每个节点添加一个 MPI 队列可以实现最佳性能。

  1. 以 x${NP}.hosts 为名,在应用的根目录中创建一个节点文件。 比如,对于 IBM* 平台 LSF*,可以运行以下命令:

$> cat $PBS_NODEFILE > x${NP}.hosts

  1. 为以下 ‘mpi_intel_alexnet’ 模型文件中的数据库、快照位置和图像均值文件指定路径:

    • models/mpi_intel_alexnet/deploy.prototxt,
    • models/mpi_intel_alexnet/solver.prototxt,
    • models/mpi_intel_alexnet/train_val_shared_db.prototxt

注:在某些系统配置上,共享磁盘系统的性能可能会成为瓶颈。 在这种情况下,建议将映像数据库预先分配到计算节点以实现最佳性能结果。 参阅数据包中的自述文件,了解相关说明。

  1. 按照以下方式设置线程环境:

$> export OMP_NUM_THREADS=<N_processors * N_cores>
$> export KMP_AFFINITY=compact,granularity=fine

注: OMP_NUM_THREADS 必须为大于等于 2 的偶数。

  1. 使用该命令执行计时:
    $> mpirun -nodefile x${NP}.hosts -n $NP -ppn 1 -prepend-rank \

./build/tools/caffe time \

-iterations <number of iterations> \

--model=models/mpi_intel_alexnet/train_val.prototxt

  1. 使用该命令运行培训:
    $> mpirun -nodefile x${NP}.hosts -n $NP -ppn 1 -prepend-rank \

./build-mpi/tools/caffe train \

--solver=models/mpi_intel_alexnet/solver.prototxt

系统要求和限制

该预览包与未优化的 Caffe 拥有相同的软件关联组件:

英特尔软件工具:

硬件兼容性:

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

支持

如有关于该预览包的问题和建议,请联系:mailto:[email protected]。

时间: 2024-10-18 18:38:00

基于英特尔® 至强? 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训的相关文章

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

原文链接 在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升. Pradeep Dubey 在其博文中概述了英特尔? 架构机器学习愿景. 英特尔正在实现 Pradeep Dubey 博文中勾勒的机器学习愿景,并正在着手开发软件解决方案以加速执行机器学习工作负载.这些解决方案将包含在未来版本的英特尔? 数学核心函数库(英特尔? MKL)和英特尔? 数据分析加速库(英特尔? DAAL)中. 本技术预览版展示了配备我们正在开发的软件后,英特尔平台将有望实现的性能.

英特尔&#174; 至强融核? 处理器优化教程

原文链接  下载文件 1. 简介 本教程将介绍多种优化应用,以支持其在英特尔? 至强融核? 处理器上运行. 本教程中的优化流程分为三个部分: 第一部分介绍用于对代码进行矢量化(数据并行化)处理的通用优化技巧. 第二部分介绍如何添加线程层并行化,以充分利用处理器中的所有可用内核. 第三部分将通过在英特尔至强融核处理器上启用内存优化,以优化代码. 最后的结论部分将通过图表方式展示各优化步骤所实现的性能提升. 优化过程如下:以串行.性能有待提升的示例代码为基础. 然后采用优化技巧处理该代码,获得矢量化

[转帖]抢先AMD一步,英特尔推出新处理器,支持LPDDR5!

抢先AMD一步,英特尔推出新处理器,支持LPDDR5! http://www.eetop.cn/cpu_soc/6946240.html 2019.10 intel的最新技术发展. 近日,知名硬件爆料人KOMACI_ENSAKA在欧亚经济委员会(EEC)文件中发现,英特尔即将推出用于轻薄本的新一代Tiger Lake处理器,并支持LPDDR5. 众所周知,现在市面上轻薄本的运行内存标准为LPDDR3,游戏本用的内存标准为DDR4,而LPDDR4和LPDDR4X多用于手机,笔记本上并没有搭载.因为

面向基于英特尔&amp;#174; 架构的 Android* 的 CoCos2D

Cocos2D 是一款游戏引擎,可与从电脑到手机等多种设备配合使用. 该引擎支持丰富的特性,可帮助创建出色的 2D 游戏.它甚至包含具备全面功能的物理引擎. CoCos2D 的核心元素是基本动画元素(即 sprite)的使用. sprite 可能是一个简单的 2D 图像.也可能是其它 sprite 的容器. 在该游戏引擎中,sprite 排列在一起形成场景.游戏级别或菜单. 如你所知.英特尔? 针对最新的工具推出了很多处理器,这些处理器可为开发者和用户带来出色的计算机图形. 在本文中,我将介绍怎

英特尔第四代酷睿处理器数字和字母代表什么意思

前面酷睿和iX标识和上一代完全相同的,不做更多介绍. 第一位“4”:代表英特尔酷睿第四代处理器: 第二位“5”“6”“7”“8”“9”:代表处理器等级,数字越大性能等级越高: 第三位“3”“5”“0”:这一位基本上就是对应核芯显卡的型号,其中“3”代表高性能处理器配HD 4600:“5”代表核芯显卡采用的是Iris 5000.5100或者Pro5200:而“0”则是HD 4600: 第四位“0”“2”“8”:“0”在标准电压中代表47W,而在低电压中代表15W:“2”则是代表37W,“8”在低电

英特尔发布至强可扩展处理器,业界十年来技术最大进步(核心思想:数据洪流出现)

集微网 7月12日报道 今天,英特尔公司在北京正式发布了至强可扩展处理器.该处理器可为计算.网络和存储带来针对工作负载优化的性能,向下一代云基础设施提供坚实基础,并赋能数据分析.人工智能.高性能计算.网络转型等各类应用,以加速企业数据中心现代化及业务转型的实现.英特尔官方宣称,这是业界近十年来在数据中心领域最大的技术进步. 行业大变革即将到来,背后是数据洪流推动 在这颗处理器发布前,英特尔公司数据中心事业部副总裁兼IT变革事业部总经理Lisa M. Davis首先介绍了推出这款处理器的背景. 从

云宏与英特尔携手发布了可全面兼容主流虚拟化解决方案

日前,云宏与英特尔携手,发布了基于英特尔?至强?可扩展平台全面升级的超融合一体机解决方案. 云宏超融合一体机搭载了云宏自主研发的超融合核心技术,采用异构设计,可全面兼容主流虚拟化系统,实现了虚拟化和分布式存储深度整合.IO路径最短化,有效提升了存储随机读性能.整个系统采用全分布式无共享架构,无状态的处理架构保证系统能实现横向线性扩展.无单点故障和性能瓶颈.云宏超融合架构是云计算基础设施进化的重要方向,英特尔强悍的硬件能力为关键业务奠定性能基础.双方的密切协作,展现了超融合架构在IT重构中的重要价

将 Android* Bullet 物理引擎移植至英特尔&#174; 架构

简介 由于目前的移动设备上能够使用更高的计算性能,移动游戏现在也可以提供震撼的画面和真实物理(realistic physics). 枪战游戏中的手雷爆炸效果和赛车模拟器中的汽车漂移效果等便是由物理引擎所提供,其核心是物理模拟. 一般而言,物理模拟决定了游戏引擎的性能. 一款游戏成功与否通常取决于物理引擎计算物理模型的速度和准确度. 本文将介绍如何构建 Android 版 Bullet 物理引擎并将其移至到基于英特尔? 凌动 SoC 的平台. Bullet 物理 Bullet 物理库是一个实时物

安全性是英特尔为何购买Mobileye的原因

为了拯救生命,自动驾驶汽车的未来已经到来,这也是英特尔为什么要以153亿美元购买Mobileye的原因. 一年前,英特尔首席运营官由布赖恩Krzanich:我意识到英特尔的自动驾驶端到端平台并不完整. 存在很大差距.我们无法创造出我们想要的惊人体验,更重要的是,我们无法完成挽救生命的愿景.为此,英特尔收购了Mobileye,这家公司拥有一流的技术和富有远见的领导地位.其良好的业绩记录和已经配备Mobileye技术的数百万辆生产车辆奠定了未来自动驾驶汽车的基础. 今天,我可以自信地说,英特尔和Mo