MLPerf结果证实至强® 可有效
助力深度学习训练

20 多年来,我一直致力于在超级计算机、数据库服务器和移动设备等平台上对计算机性能进行优化与基准测试。突出你构建的产品的性能结果,然后与业内其他产品进行比较,这个过程总是充满乐趣。许多人对 SPEC*、LINPACK* 和 TPC* 等名称已经耳熟能详。现在,MLPerf* 填补了机器学习基准测试的空白。

看到团队提交的英特尔® 至强® 可扩展处理器 MLPerf 结果,我感到很兴奋,因为深度学习的用户端和计算机系统开发端正是我们的工作范围。这些结果显示,英特尔® 至强® 可扩展处理器已超出性能阈值,对于希望在基础设施上运行多个工作负载的数据科学家,这款处理器是一个有效选择,因为他们无需投资购买专用硬件1 2 3。 

回到 2015 年,我的团队负责研究移动设备。我们不得不聘请测试员亲自玩手机游戏。对于测试员来说,这项工作一开始挺有意思,但逐渐变得无聊且成本高昂。曾有一名测试员在聘用当天就辞职了。我们的团队创建了一个机器人来测试手机游戏,并采用深度学习技术。游戏测试机器人可以自动玩游戏,发现的漏洞数量比人类测试员更多。我们想要在实验室机器上训练神经网络,但这些机器的速度不够快。我必须为团队分配购置 GPU 的预算,这个 GPU 的版本早于 MLPerf 参考 GPU4

如今,CPU 能够支持深度学习训练和推理。针对各种 MLPerf 深度学习训练工作负载,我们的 MLPerf 英特尔® 至强® 可扩展处理器结果毫不逊色于 MLPerf 参考 GPU41 2 3。例如,英特尔提交的单系统双路英特尔® 至强® 可扩展处理器结果在 MLPerf 图像分类基准测试 (Resnet-50) 中取得 0.85 分1;在推荐基准测试(神经协同过滤,NCF)中取得 1.6 分2;在强化学习基准测试 (mini GO) 中取得 6.3 分3。在所有这些分数中,参考 GPU 上的参考实施分数是 1.0 分4。对于上述所有结果,我们使用的是当今市场中常用的数值精度 FP32。从上述 MLPerf 结果可以看出,游戏测试机器人现在可以在英特尔® 至强® 可扩展处理器上轻松进行训练。

深度学习和机器学习领域继续从使用卷积神经网络 (CNN) 的图像处理和使用循环神经网络 (RNN) 的自然语言处理转向使用 MLP 层和通用矩阵乘法的推荐系统、强化学习(混合 CNN 和仿真)以及包含深度学习和传统机器学习的混合模型。通用 CPU 不仅能够运行现有非深度学习工作负载,也可以很好地适应不断变化的环境。

企业已采用 CPU 进行深度学习训练。例如,Datatonic* 今天发表的博客中写道,某排名前五的英国零售商使用由英特尔® 至强® 可扩展处理器支持的 Google Cloud* 虚拟机,当运行用于生产环境的神经网络推荐系统时,可实现高达 11 倍的成本节省和 57% 的性能改进5。CPU 也可以适应许多领域要求的大内存模型。制药公司诺华使用英特尔® 至强® 可扩展处理器来加快多尺度卷积神经网络 (M-CNN) 的训练,处理 10,000 张高内涵细胞显微图像(此类图像比常见 ImageNet* 图像大得多),将训练时间从 11 小时缩短到 31 分钟6

正如在 2018 年超级计算大会上所展示的,HPC 客户使用英特尔® 至强® 处理器进行分布式训练。举例来说,GENCI/CINES/INRIA 使用 128 个基于双路英特尔® 至强® 处理器的系统,在包含 1200 万张图像的 1.5TB 数据集上训练 30 万个物种的植物分类模型7。DELL* EMC* 和 SURFSara 使用英特尔® 至强® 处理器将 DenseNet-121 模型的训练时间缩短到 11 分钟8。CERN* 使用 TACC Stampede 2 集群(英特尔® 至强® 铂金 8160 处理器,英特尔® OPA)的 128 个节点与 3D 生成式对抗网络 (3D GAN) 展示分布式训练,实现 94% 的扩展效率9。更多示例请访问 https://software.intel.com/zh-cn/articles/intel-processors-for-deep-learning-training

在过去几年里,用于深度学习的 CPU 硬件和软件性能已提高几个数量级。曾要花费数天甚至数周时间的训练,现在只需数小时甚至数分钟即可完成。这种程度的性能提升是通过硬件和软件组合实现的。例如,当代英特尔® 至强® 可扩展处理器增添了 AVX-512 指令集(更长的矢量扩展),允许大量操作并行完成,还增加了大量内核,机器摇身一变,成为一台迷你超级计算机。下一代英特尔® 至强® 可扩展处理器新增英特尔® 深度学习加速:更高吞吐量、更低数值精度指令可加速深度学习推理。对于软件,在相同的英特尔® 至强® 可扩展处理器上,基线开源深度学习软件和英特尔® 优化软件之间的性能差异可高达 275 倍10(昨天我在英特尔® 架构日论坛上的演示说明了这一点)。

在过去几年里,英特尔一直与深度学习框架开发人员合作,希望针对英特尔® 处理器优化众多热门开源框架,如 TensorFlow*、Caffe*、MXNet*、PyTorch*/Caffe2*、PaddlePaddle* 和 Chainer*。英特尔还设计了一个框架,适用于 SPARK* 的 BigDL,和用于推理的英特尔® 深度学习部署工具包。由于内核计算是线性代数,因此我们基于英特尔® 数学核心函数库 (MKL) 多年的高性能计算经验,为深度学习专门创建了一个新的数学库:面向深度神经网络的英特尔® 数学核心函数库(英特尔® MKL-DNN)。通过将英特尔® MKL-DNN 集成到框架中,再加上为了完全利用基础硬件功能而对框架进行的额外优化,软件性能实现大幅提升。

经常有人问我,CPU 比加速器快还是慢。当然,加速器有一定的优势。对于特定领域,如果加速器的速度连 CPU 都比不上,那么根本就不能称为加速器。即便如此,考虑到深度学习工作负载越来越多样化,有时候,CPU 的速度可能持平或者更快,同时保留对 CPU 价值主张至关重要的灵活性。因此,对于那些不想投资加速器的客户来说,更为贴切的问题是 CPU 运行深度学习的性能是否足够好,可以将 CPU 作为有效选择。这些初步 MLPerf 结果1 2 3 以及客户的示例证明,CPU 的确可以有效地用于训练。英特尔的战略是提供通用 CPU 和加速器,以便满足广泛客户的机器学习需求。

展望未来,我们将继续为未来的 CPU 提供新的人工智能和深度学习功能,如英特尔® 深度学习加速和用于训练的 bfloat16,并进行其他软件优化。敬请关注。有关英特尔® 软件优化的更多信息,请参见 ai.intel.com/framework-optimizations。有关英特尔® 至强® 可扩展处理器的更多信息,请参见 intel.cn/xeonscalable

作者

Wei Li

核心与视觉计算事业部副总裁兼机器学习与翻译部总经理

2018 年 12 月 12 日

人工智能

人工智能正在为企业发展和消费者体验进化带来全新突破。从集成深度学习加速技术的全新至强® 平台起步,来探索人工智能从纸上谈兵到实践价值的转换之路吧。

了解更多

高级分析

高级分析将让企业基于更多和更有价值的发现来重塑自身,再造产品和服务,以优化消费者体验。利用全新至强® 平台和英特尔® 傲腾™ 数据中心级可持久内存构建分析堆栈,将助您向目标更进一步。

了解更多

混合云

混合云意味着更灵活,以及对数据和业务安全的兼顾,这让在企业在创新之路上再无后顾之忧,得以全速前进。在全新至强® 平台上启动你的混合云构建计划吧,不妨先看看不同工作负载应该如何择云而栖。

了解更多

产品和性能信息

1

使用 2 芯英特尔® 至强® 铂金 8180 处理器时,在 MLPerf 映像分类基准性能测试 (Resnet-50) 上的 0.85 分数是 MLPerf 基准的 0.85 倍(+)。 MLPerf v0.5 培训已关闭部门;系统采用英特尔® Optimization for Caffe* 1.1.2a 以及适用于深度神经网络的英特尔® 数学核心函数库库(英特尔® MKL-DNN)v0.16 库。已从 www.mlperf.org 检索 2018 年 12 月 12 日,入门级 0.5.6.1。MLPerf 名称和徽标是商标。如欲了解更多信息,请访问 www.mlperf.org

2

使用 2 芯英特尔® 至强® 铂金 8180 处理器时,在建议基准性能测试(神经协作过滤 NCF)上的 1.6 分数是 MLPerf 基准的 1.6 倍(+)。 MLPerf v0.5 培训已关闭部门;系统采用框架 BigDL 0.7.0。已从 www.mlperf.org 检索 2018 年 12 月 12 日,入门级 0.5.9.6。MLPerf 名称和徽标是商标。如欲了解更多信息,请访问 www.mlperf.org

3

使用 2 芯英特尔® 至强® 铂金 8180 处理器时,在强化学习基准性能测试 (mini GO) 上的 6.3 分数是 MLPerf 基准的 6.3 倍(+)。 MLPerf v0.5 培训已关闭部门;系统采用 TensorFlow 1.10.1 以及适用于深度神经网络的英特尔® 数学核心函数库库(英特尔® MKL-DNN)v0.14 库。已从 www.mlperf.org 检索 2018 年 12 月 12 日,入门级 0.5.10.7。MLPerf 名称和徽标是商标。如欲了解更多信息,请访问 www.mlperf.org

(+) MLPerf 基准(来自 MLPerf v0.5 社区新闻简报会):MLPerf 培训 v0.5 是用于测量 ML 系统速度的基准性能测试套件。每个 MLPerf 培训基准性能测试都由数据集和质量目标定义。MLPerf 培训还提供每个使用特定模型的基准性能测试的参考实施。下表汇总了套件版本 v0.5 中的七项基准性能测试。

性能指标评测

数据集

质量目标

参考实施模型

映像分类

ImageNet

74.90% 分类

Resnet-50 v1.5

对象检测(轻型)

COCO 2017

21.2% mAP

固态盘(Resnet-34 骨干)

对象检测(重型)

COCO 2017

0.377 框最小 AP,0.339 掩码最小 AP

掩码 R-CNN

翻译(复发)

WMT 英德词典

21.8 BLEU

神经机器翻译

翻译(非复发)

WMT 英德词典

25.0 BLEU

转换器

建议

MovieLens-20M

0.635 HR@10

神经协作过滤

强化学习

专业游戏

40.00% 移动预测

Mini Go


MLPerf 培训规则:https://github.com/mlperf/training_policies/blob/master/training_rules.adoc

4

MLPerf* 参考系统:Google Cloud Platform 配置:16 个 vCPUs,英特尔 Skylake 或更高版本,60 GB RAM (n1­standard­16),1 个 NVIDIA* Tesla* P100 GPU,CUDA* 9.1(TensorFlow* 为 9.0),nvidia­docker2,Ubuntu* 16.04 LTS,Pre­emtibility:关,自动重启:关,30GB 启动盘 + 1 个固态盘持久磁盘 500 GB,Docker* 映像:9.1­cudnn7­runtime­ubuntu16.04(TensorFlow* 为 9.0­cudnn7­devel­ubuntu16.04)。

6

Novartis:于 2018 年 5 月 25 日测得。基于 8 个节点相对于单个节点的加速。节点配置:CPU:英特尔® 至强® 金牌 6148 处理器,2.4GHz,192GB 内存,超线程:已启用。NIC:英特尔® Omni-Path Host Fabric 接口(英特尔® OP HFI),TensorFlow:v1.7.0,Horovod:0.12.1,OpenMPI:3.0.0。操作系统:CentOS* 7.3,OpenMPU 23.0.0,Python 2.7.5。培训时间在模型中收敛到 99% 精度。来源:https://newsroom.intel.com/news/using-deep-neural-network-acceleration-image-analysis-drug-discovery

7

GENCI:Occigen:3306 个节点 x 2 个英特尔® 至强® 处理器(12-14 个内核)。计算节点:2 插槽英特尔® 至强® 处理器,每个 12 个内核,2.70GHz,每个节点共 24 个内核,每个内核 2 个线程,96 GB DDR4,Mellanox InfiniBand Fabric 接口,双轨。软件:英特尔® MPI 库 2017 更新 4 英特尔® MPI 库 2019 技术预览 OFI 1.5.0PSM2,含多 EP,10 Gb 以太网,200 GB 本地固态盘,Red Hat* Enterprise Linux 6.7。 Caffe*:英特尔® Optimization for Caffe*:https://github.com/intel/caffe 英特尔® 机器学习扩展库(英特尔® MLSL):https://github.com/intel/MLSL 数据集:Pl@ntNet:CINES/GENCI 内部数据集性能结果基于截至 2018 年 10 月 15 日的测试。

8

英特尔、戴尔和 Surfsara 协作:于 2018 年 5 月 17 日在 2 插槽英特尔® 至强® 金牌 6148 处理器的 256 个节点上测得。计算节点:2 插槽英特尔® 至强® 金牌 6148F 处理器,每个 20 个内核,2.40GHz,每个节点共 40 个内核,每个内核 2 个线程,L1d 32K;L1i 高速缓存 32K;L2 高速缓存 1024K;L3 高速缓存 33792K,96 GB DDR4,英特尔® Omni-Path Host Fabric 接口(英特尔® OP HFI),双轨。软件:英特尔® MPI 库 2017 更新 4 英特尔® MPI 库 2019 技术预览 OFI 1.5.0PSM2,含多 EP,10 Gb 以太网,200 GB 本地固态盘,Red Hat* Enterprise Linux 6.7。TensorFlow* 1.6:构建和安装来源:https://www.tensorflow.org/install/install_sources ResNet-50 型号:拓扑规格来源于 https://github.com/tensorflow/tpu/tree/master/models/official/resnet。DenseNet-121 型号:拓扑规格来源于 https://github.com/liuzhuang13/DenseNet。融合和性能模型:https://surfdrive.surf.nl/files/index.php/s/xrEFLPvo7IDRARs。数据集:ImageNet2012-1K:http://www.image-net.org/challenges/LSVRC/2012 /。ChexNet*:https://stanfordmlgroup.github.io/projects/chexnet/。性能评测标准基于:OMP_NUM_THREADS=24 HOROVOD_FUSION_THRESHOLD=134217728 export I_MPI_FABRICS=tmi, export I_MPI_TMI_PROVIDER=psm2 \ mpirun -np 512 -ppn 2 python resnet_main.py –train_batch_size 8192 –train_steps 14075 –num_intra_threads 24 –num_inter_threads 2 — mkl=True –data_dir=/scratch/04611/valeriuc/tf-1.6/tpu_rec/train –model_dir model_batch_8k_90ep –use_tpu=False –kmp_blocktime 1。https://ai.intel.com/diagnosing-lung-disease-using-deep-learning/

9

CERN:于 2018 年 5 月 17 日在 Stampede2/TACC 撒谎概念测得:https://portal.tacc.utexas.edu/user-guides/stampede2。计算节点:2 插槽英特尔® 至强® 铂金 8160 处理器,每个 24 个内核,2.10GHz,每个节点共 48 个内核,每个内核 2 个线程,L1d 32K;L1i 高速缓存 32K;L2 高速缓存 1024K;L3 高速缓存 33792K,96 GB DDR4,英特尔® Omni-Path Host Fabric 接口(英特尔® OP HFI),双轨。软件:英特尔® MPI 库 2017 更新 4 英特尔® MPI 库 2019 技术预览 OFI 1.5.0PSM2,含多 EP,10 Gb 以太网,200 GB 本地固态盘,Red Hat* Enterprise Linux 6.7。TensorFlow* 1.6:构建和安装来源:https://www.tensorflow.org/install/install_sources 型号:CERN* 3D GANS 来自 https://github.com/sara-nl/3Dgan/tree/tf 数据集:CERN* 3D GANS 来自 https://github.com/sara-nl/3Dgan/tree/tf 在 256 个节点上测得的性能 在 256 个节点上测得的性能高,其中使用:OMP_NUM_THREADS=24 HOROVOD_FUSION_THRESHOLD=134217728 export I_MPI_FABRICS=tmi, export I_MPI_TMI_PROVIDER=psm2 \ mpirun -np 512 -ppn 2 python resnet_main.py –train_batch_size 8 \ –num_intra_threads 24 –num_inter_threads 2 –mkl=True \ –data_dir=/path/to/gans_script.py –kmp_blocktime 1。https://www.rdmag.com/article/2018/11/imagining-unthinkable-simulations-without-classical-monte-carlo

10

相比 BVLC-Caffe*,使用英特尔® Optimization for Caffe* 可将推断吞吐量性能提高 275 倍:英特尔于 2018 年 12 月 11 日测得。2S 英特尔® 至强® 铂金 8180 处理器 CPU,2.50GHz(28 个内核),HT 开,睿频开,192GB 总内存(12 个插槽 * 16 GB,Micron 2666MHz),英特尔® 固态盘 SSDSC2KF5,Ubuntu 16.04 内核 4.15.0-42.通用;BIOS:SE5C620.86B.00.01.0009.101920170742(微代码:0x0200004d);拓扑:Resnet-50 基准:FP32,BVLC Caffe* (https://github.com/BVLC/caffe.git) commit 99bd99795dcdf0b1d3086a8d67ab1782a8a08383 当前性能:INT8,英特尔® Optimizations for Caffe* (https://github.com/Intel/caffe.git) commit:Caffe* commit:e94b3ff41012668ac77afea7eda89f07fa360adf,MKLDNN commit:4e333787e0d66a1dca1218e99a891d493dbc8ef1。

性能测试中使用的软件和工作负载可能仅仅为英特尔微处理器的性能做了优化。SYSmark* 和 MobileMark* 等性能测试是用特定的计算机系统、组件、软件、操作和功能测试的。对这些因素的任何更改可能导致不同的结果。您应该查询其他信息和性能测试以帮助您对正在考虑的采购作出全面的评估,包括该产品在与其他产品结合使用时的性能。如欲了解更多信息,请访问 www.intel.cn/benchmarks

优化通知:英特尔的编译器针对非英特尔微处理器的优化程度可能与英特尔微处理器相同(或不同)。这些优化包括 SSE2,SSE3 和 SSSE3 指令集以及其它优化。对于在非英特尔制造的微处理器上进行的优化,英特尔不对相应的可用性、功能或有效性提供担保。此产品中依赖于处理器的优化仅适用于英特尔微处理器。某些不是专门面向英特尔微体系结构的优化保留专供英特尔微处理器使用。请参阅相应的产品用户和参考指南,以了解关于本通知涉及的特定指令集的更多信息。

性能结果可能无法反映所有公开的安全更新。有关详细信息,请参见配置信息披露。没有任何产品能保证绝对安全。

英特尔、英特尔标志、至强可扩展处理器、Deep Learning Boost 是英特尔公司或其子公司在美国和/或其他国家(地区)的商标。
* 文中涉及的其他名称及品牌是其各自所有者的资产。
© 英特尔公司。