英特尔® 至强融核™ 处理器如何为机器学习/深度学习应用和框架提供强大优势

机器学习 (ML) 正在迅速成熟。 如今,我们能够把大量数据输入机器学习应用中,后者能学会精确预测可能出现的结果。 随着训练数据集的扩大,深度学习 (DL) 模型的精确性呈指数级增长。 数以万亿的互联设备向系统发送数据,数据集的规模可达数百 TB。

机器学习革命的成果在无人驾驶汽车、实时欺诈检测、对假期照片中的人脸进行识别的社交网络等领域得到了很好的体现。它渗透各行各业,影响无处不在。

让我们揭开全新英特尔至强融核产品家族的神秘面纱,了解其在处理 ML 工作负载方面的非凡优势。 我还会分享两项早期性能测试结果,即分别在基于单节点英特尔至强处理器系统和基于 128 节点英特尔至强融核处理器的集群上运行 ML 工作负载时的情况。 最后,我会讲述我们为了优化软件库所付出的努力,展示几款流行的面向 x86 架构 的开源 ML 框架。

英特尔® 至强 融核™ 处理器特性

在设计第二代英特尔至强融核芯片时,我们发明了大量多核 处理器 ,支持自启插槽。 不需要在独立主机上运行操作系统,也不需要通过 PCIe* 插槽传输数据。 (但是,对于更喜欢把最新版英特尔至强融核芯片作为协处理器的用户,我们会很快推出 PCIe 卡版本。)

英特尔至强融核处理器 x200 包含 72 个处理器内核,每个内核支持 2 个英特尔® 高级矢量扩展指令集 512(英特尔® AVX-512)SIMD 处理单元,每内核浮点性能显著提升。 常用的 ML 算法均可从中受益,如浮点乘法和乘加融合指令 (FMA)。 英特尔至强融核处理器 x200 提供高达每秒 6 万亿次浮点运算的计算能力。 多核、多线程的功能和高带宽封装内存子系统(多通道 DRAM)及英特尔® Omni-Path 架构(英特尔® OPA)的集成结构技术相结合。

高带宽集成内存(高达 16 GB MCDRAM)保证数据快速传输到内核,并为平台额外提供高达 384 GB 商用 DDR4 内存。 程序员可以通过指定数据的大小及时间来管理内存。 MCDRAM 使用户可以灵活地对数据高速缓存,不必担心内存管理。 (MCDRAM 可以配置为三级高速缓存、非一致性内存访问 - 可分配内存和高速缓存和内存的混合组合。)

当处理大型 ML/DL 工作负载时,从一个节点到千百个节点的扩展能力是至关重要的。 借助英特尔 OPA 架构,英特尔至强融核处理器 x200 能够以近乎线性的方式扩展内核和线程。 在编码层面,通过架构可以最少的编程快速高效地从远程存储获取数据,并放入本地高速缓存。

这些创新为机器学习和深度学习提供了优质的训练时间。  比如,AlexNet 训练方面,相对于单节点而言,128 节点英特尔至强融核处理器 x200 的训练时间减少了 50 倍。  进行 GoogLeNet 训练时,32 节点英特尔至强融核处理器 x200 的扩展效率达到 87%,比最新公布的最高数据超出 38%。

应用只有并行化,才能利用大规模并行多核、多线程架构。 否则,你只能获得单核、单线程性能。

英特尔至强融核处理器 x200 的每个内核包含多个矢量处理单元,所以整体计算密度更高,成为抵消单核、单线程性能的一个因素。 因此,如果你的工作负载能受益于高水平的并行性和线程并行性,英特尔至强融核处理器把更多计算融入更小的区域,功耗低于其他解决方案。

二进制兼容

从软件角度看,第二代英特尔至强融核处理器与包括英特尔至强® E5 家族处理器在内的 x86 架构处理器之间是二进制兼容的。 这意味着你只需要实施一次代码现代化,第二代英特尔至强融核处理器和现有的基于英特尔至强处理器的服务器的训练效率会显著提高。 “现代化”不是让用户自己写 ninja 并行代码。 我们正在利用通用英特尔® 数学核心函数库等工具,简化基于 x86 架构的通用 CPU 的 ML/DL 代码的并行处理,数学核心函数库包括新的扩展指令集,用来优化现已推出的英特尔® MKL 2017 Beta 版的深度神经网络。 此外,我们致力于优化流行的基于开源 ML 框架的 x86 架构,如 Caffe* 和 Theano*。 通过我们的不懈努力,在没有升级硬件的情况下,DL 应用的性能提升了大约 30 倍。

总结

第二代英特尔至强融核产品家族进一步实现了我们普及 ML 和多层神经网络的目标,这也是 DL 应用的计算密集训练阶段所必需的。 为了实现这一目标,我们支持一类新型工作负载类,用以提高机器的决策能力。

如欲了解英特尔至强融核处理器 x200 的真实应用情况,请于本周前往法兰克福参加国际超级计算大会,或者前往纽约参加国际机器学习大会。 如果您不能前往德国或纽约,请访问 XeonPhiDeveloper.com,了解更多的技术细节。

资源:

Knights Landing — 开发人员概述 (视频~250 MB)
https://software.intel.com/zh-cn/videos/knights-landing-an-overview-for-developers

将应用从 Knights Corner 移植到 Knights Landing 自启平台
https://software.intel.com/zh-cn/articles/migrating-applications-from-knights-corner-to-knights-landing-self-boot-platforms

打破神话博客文章:通用型 CPU 无法处理 DL 神经网络训练
http://itpeernetwork.intel.com/myth-busted-general-purpose-cpus-cant-tackle-deep-neural-network-training/

英特尔® 数学核心函数库(英特尔® MKL)2017 Beta Release
https://software.intel.com/zh-cn/forums/intel-math-kernel-library

英特尔® 数学核心函数库(英特尔® MKL)的深度神经网络技术预览
https://software.intel.com/zh-cn/articles/deep-neural-network-technical-preview-for-intel-math-kernel-library-intel-mkl

有关编译器优化的更完整信息,请参阅优化通知