基于英特尔® 至强 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 或更高版本
硬件兼容性:
此软件仅使用 AlexNet 拓扑进行了验证,可能不适用于其他配置。
支持:
如有关于该预览包的任何问题和建议,请联系:mailto:intel.mkl@intel.com。
基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练的更多相关文章
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 英特尔与 Facebook 合作采用第三代英特尔® 至强® 可扩展处理器和支持 BFloat16 加速的英特尔® 深度学习加速技术,提高 PyTorch 性能
英特尔与 Facebook 曾联手合作,在多卡训练工作负载中验证了 BFloat16 (BF16) 的优势:在不修改训练超参数的情况下,BFloat16 与单精度 32 位浮点数 (FP32) 得到了 ...
- 英特尔® 至强® 平台集成 AI 加速构建数据中心智慧网络
英特尔 至强 平台集成 AI 加速构建数据中心智慧网络 SNA 通过 AI 方法来实时感知网络状态,基于网络数据分析来实现自动化部署和风险预测,从而让企业网络能更智能.更高效地为最终用户业务提供支撑. ...
- [转帖]迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比
迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比 Intel 最强CPU 从最开始的双核 到现在的 28核 发展迅猛. https://www.cnbeta.com/article ...
- 面向基于英特尔® 架构的 Android* 的 CoCos2D
Cocos2D 是一款游戏引擎,可与从电脑到手机等多种设备配合使用. 该引擎支持丰富的特性,可帮助创建出色的 2D 游戏.它甚至包含具备全面功能的物理引擎. CoCos2D 的核心元素是基本动画元素( ...
- 英特尔:不再公布PC处理器多核睿频数据
据了解,以往英特尔官方有三个频率数据:基础主频:Turbo 2.0(多核)频率:以及Turbo 3.0(单核)频率.现在被隐匿的则是Turbo 2.0(多核)频率. 对此,英特尔在回应媒体时表示,给出 ...
- 【大数据系列】hadoop单节点安装官方文档翻译
Hadoop: Setting up a Single Node Cluster. HADOOP:建立单节点集群 Purpose Prerequisites Supported Platforms R ...
- kafka系列一:单节点伪分布式集群搭建
Kafka集群搭建分为单节点的伪分布式集群和多节点的分布式集群两种,首先来看一下单节点伪分布式集群安装.单节点伪分布式集群是指集群由一台ZooKeeper服务器和一台Kafka broker服务器组成 ...
- 现代英特尔® 架构上的 TensorFlow* 优化——正如去年参加Intel AI会议一样,Intel自己提供了对接自己AI CPU优化版本的Tensorflow,下载链接见后,同时可以基于谷歌官方的tf版本直接编译生成安装包
现代英特尔® 架构上的 TensorFlow* 优化 转自:https://software.intel.com/zh-cn/articles/tensorflow-optimizations-on- ...
随机推荐
- 【.NET深呼吸】动态类型(扩充篇)
前面两文中,老周已向大家介绍了关于动态类型对象的两种级别的使用方案,本篇呢,老周再讲一个自定义动态类型的例子. 前面给大家演示的例子中,动态类型中包装的是字典类型来存储数据的,这一次咱们换一种风味,老 ...
- WPF中异步更新UI元素
XAML 界面很简单,只有一个按钮和一个lable元素,要实现点击button时,lable的内容从0开始自动递增. <Grid> <Label Name="lable_p ...
- ElasticSearch 5学习(8)——分布式文档存储(wait_for_active_shards新参数分析)
学完ES分布式集群的工作原理以及一些基本的将数据放入索引然后检索它们的所有方法,我们可以继续学习在分布式系统中,每个分片的文档是被如何索引和查询的. 路由 首先,我们需要明白,文档和分片之间是如何匹配 ...
- [C#] 走进异步编程的世界 - 剖析异步方法(上)
走进异步编程的世界 - 剖析异步方法(上) 序 这是上篇<走进异步编程的世界 - 开始接触 async/await 异步编程>(入门)的第二章内容,主要是与大家共同深入探讨下异步方法. 本 ...
- springboot(八):RabbitMQ详解
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apa ...
- Oracle使用SQL传输表空间
源环境:RHEL 6.4 + Oracle 11.2.0.4 目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机 要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的 ...
- Cesium原理篇:Property
之前主要是Entity的一个大概流程,本文主要介绍Cesium的属性,比如defineProperties,Property(ConstantProperty,CallbackProperty,Con ...
- ASP.NET Core 中文文档 第二章 指南(4.6)Controller 方法与视图
原文:Controller methods and views 作者:Rick Anderson 翻译:谢炀(Kiler) 校对:孟帅洋(书缘) .张仁建(第二年.夏) .许登洋(Seay) .姚阿勇 ...
- html+ccs3太阳系行星运转动画之土星有个环,地球有颗小卫星
在上一篇<html+ccs3太阳系行星运转动画>中实现了太阳系八大行星的基本运转动画. 太阳系又何止这些内容,为丰富一下动画,接下来增加“土星环”和“月球”来充盈太阳系动画. 下面是充盈后 ...
- GridView详细介绍
GridView控件的属性 表10.6 GridView控件的行为属性属性描述AllowPaging指示该控件是否支持分页.AllowSorting指示该控件是否支持排序.AutoGenerateCo ...