从硬件到框架,30+巨头参与的AI基准竞争结果公布(第一回合)
MLPerf 结果展示地址:https://mlperf.org/results/?from=timeline&isappinstalled=0
在历史上,基于清晰指标的技术竞争带来了快速的进步,例如 SPEC 基准推动了 CPU 在 15 年内以每年 1.6 倍的速度提升性能。MLPerf 希望在机器学习社区做同样的事情,以推动 ML 系统性能的快速提升。由于大规模机器学习实验仍然需要耗费数天或数星期的时间,提升 ML 系统性能对于释放机器学习潜力而言非常关键。
今天,支持 MLPerf 的研究者和工程师们公布了他们第一个回合的竞赛结果。他们测量了多种机器学习任务在主流机器学习硬件平台上的训练时间,包括谷歌的 TPU、英特尔的 CPU 和英伟达的 GPU。其结果还反映了机器学习软件框架(如 TensorFlow、PyTorch 和 MXNet)的训练速度对比。MLPerf 结果旨在帮助决策者评估现有产品并关注未来发展。
基准测试与开源
1.Nvidia
英伟达在其提交的六个 MLPerf 基准测试结果中取得了最佳性能。它们涵盖了各种工作负载和基础架构规模:从一个节点上的 16 个 GPU 到 80 个节点上的多达 640 个 GPU。
这六个类别包括图像分类、目标实例分割、目标检测、非循环翻译、循环翻译和推荐系统。英伟达在其中表现特别出色的一个基准是语言翻译,仅需 6.2 分钟即可完成 Transformer 神经网络的训练。
测试平台:
- 图像分类和翻译(非循环)——DGX-1V 集群。
- 目标检测(重量级)、检测(轻量级)和翻译(循环)——DGX-2H 集群。
- 每个 DGX-1V 包含:双插槽 Xeon E5- 2698 V4、512GB 系统 RAM、8 x 16 GB Tesla V100 SXM-2 GPU。
- 每个 DGX-2H 包含:双插槽 Xeon Platinum 8174、1.5TB 系统 RAM、16 x 32 GB Tesla V100 SXM-3 GPU,通过 NVSwitch 连接。
2.Intel
英特尔提交了 Intel Xeon Scalable 处理器的 MLPerf 结果,并表示「我们致力于深度学习的用户端和计算机系统开发」。结果显示,Intel Xeon Scalable 处理器已超过性能阈值:对于希望在其基础架构上运行多个工作负载而无需投资专用硬件的数据科学家而言,它们可以成为一种有效的选择。
英特尔表示,CPU 如今已经能够进行深度学习训练和推理。MLPerf Intel Xeon Scalable 处理器结果与 MLPerf 参考 GPU 相比,在各种 MLPerf 深度学习训练工作负载上的效果相当。例如,英特尔提交的单系统双插槽 Intel Xeon Scalable 处理器结果在 MLPerf 图像分类基准测试(Resnet-50)上得分为 0.85;在推荐系统基准(Neural Collaborative Filtering NCF)上的得分为 1.6;在强化学习基准(mini GO)的得分为 6.3。
在所有这些分数中,1.0 被定义为参考 GPU 上参考实现的分数。对于前面的所有结果,英特尔都使用了 FP32,这是当今市场上常用的数值精度。根据这些 MLPerf 结果,英特尔表示游戏测试机器人可以轻松地在 Intel Xeon Scalable 处理器上进行训练。
3.Facebook
Facebook 未参与这次的 MLPerf,但已经声明将提供针对边缘推理的两个 ML 模型在开源数据集上训练的基准参考实现。对于图像分类,Facebook 将提供当前最佳的 ShuffleNet 模型的实现。对于姿态估计,Facebook 将提供由 Facebook 的移动视觉研究人员开发的 Mask R-CNN2Go 模型的实现。
Facebook 还将开源 Mask R-CNN2Go,并称其为「针对嵌入式和移动设备优化的领先计算机视觉模型」。Mask R-CNN2Go 构成了各种设备 ML 应用的基础:目标检测、分类、人物分割和身体姿态估计,实现准确、实时的推理。
为什么基准实现这么重要
MLPerf 这样的基准实现对于整个工业界都是非常重要的:
- 百度王海峰说:「我们很高兴 MLPerf 从一个概念发展成由各公司和学术机构支持的社区,今天发布的结果将为行业改进和 AI 的发展开辟新的先例。」
- Facebook Bill Jia 表示:「如 MLPerf 和 ONNX 这样的开放标准是推动整个行业机器学习创新和协作的关键,我们很期待参与 MLPerf,并标准化基准测试。」
- 微软 Eric Boyd 说:「开放的生态系统能使 AI 开发者更快地实现创新,除了 ONNX 外,微软很高兴参与 MLPerf 以支持开放和标准的性能基准测试。」
近日发布的 MLPerf 训练基准套件包含七部分,即图像分类、目标检测、翻译、推荐、语音识别、情感分析和强化学习。度量的方法即训练一个模型以达到目标准确率所需要的时间。MLPerf 的所需时间同样会根据模型在单块 NVIDIA Pascal P100 GPU 的性能归一化,这些作为参考的 P100 GPU 实现没有优化超参数。
MLPerf 的结果根据专区和给定的产品或平台进行分类,目前有两种专区,即封闭专区(Closed Division)和开放专区(Open Division)。其中封闭专区会指定使用的模型,并限制批量大小或学习率等超参数的值,它对于对比硬件和软件系统非常公平。而开放模型专区会只会限制使用相同的数据解决相同的问题,其它模型或平台都不会限制。
提交到封闭专区的基准测试必须使用相同模型和优化器,提交到开放专区的模型可以使用任意模型。在每一个专区内,提交的测试结果又可以分为云端、企业预置型、预览型和研究型。研究型系统需要包含实验性硬件或软件,或者还没大规模开放。
度量标准是训练时间
每个 MLPerf 训练基准测试的度量标准是:在特定数据集上训练一个模型使其达到特定性能的总体时间。众所周知,机器学习任务的训练时间有很大差异,因此,MLPerf 的最终训练结果是由指定次数的基准测试时间平均得出的,其中会去掉最低和最高的数字。
所有结果都会被转换为加速比(Speedups),因为不同的基准测试需要不同的时间进行训练。加速比是和模型在未优化条件下应用在一块 Pascal P100 上的训练时间比值。因此,MLPerf 的结果若是数字 10,则表示被测试系统的训练速度是在一块 Pascal P100 上训练同一个机器学习模型速度的 10 倍,训练时间是其 1/10。
当然,即使是多个结果平均的情况也无法消除所有方差。MLPerf 图像处理基准测试结果大约有+/- 2.5% 的浮动范围,而 MLPerf 基准测试则为+/-5%。
完整测试结果
MLperf 的结果表格首先按照 Division 分类,然后按照 Category 分类。结果表格中的每一行都是由单个提交者使用相同软件堆栈和硬件平台生成的一组结果。每行包含以下信息:
- Submitter(提交者):提交结果的组织。
- Hardware(硬件):使用的 ML 硬件类型,例如加速器或高性能 CPU。
- Chip Count and Type(芯片数量和类型):使用的 ML 硬件芯片的数量,以及它们是加速器(a)还是 CPU(c)。
- Software(软件):使用的 ML 框架和主要 ML 硬件库。
- Benchmark Results(基准测试结果):默认情况下,基准测试结果表示为相对于 Pascal P100 的加速。
- Cloud Scale(云规模,仅适用于可用云系统):云规模源自几家主要云提供商的按需定价,并提供相对系统规模/成本的粗略指标。参考单个 Pascal P100 系统的云规模为 1。云规模为 4 的系统大约需要四倍的成本。
- Power(功率,仅适用于非可用云系统):可用内部部署系统的信息。由于标准化功率测量的复杂性,此版本 MLPerf 只允许自愿报告任意非官方功率信息。
- Details(详细信息):链接到提交的元数据。
以下展示了封闭专区完整的基准测试结果,开放专区目前还没有基准测试的提交结果。每一个专区又可以分为加速比度量和时间度量,它们之间是可以转换的。
如下图所示,在 Closed Division Speedups 表格中的部分结果。参考基准为单个 Pascal P100,云规模为 1,在各种基准测试上的分数都为 1(参考值)。谷歌使用的硬件为 4 个 TPUv2.8,云规模为 2.6,在图像分类任务的 ImageNet 数据集上训练 ResNet-50 v1.5 的相对训练加速比为 29.3。切换到后一张 Closed Division Times 的表可以看到对应的具体训练时间。
我们可以看到,TPUv3.8 的效率非常高,单个芯片数量基本上是加速比最高的(24.1),且云价格还和单块 Pascal P100 差不多。在七项任务中,强化学习的基准测试是最少的,这也可能是它比较难标准化,且硬件的加速效果也不明显。
此外,土豪英伟达展示了大规模 GPU 并行的效果,它们使用 80 个 DGX-1(260 块 V100)在 ImageNet 数据集上实现了 1424.4 的加速比。Intel Xeon Scalable(2S SKX8180)实现了近似 P100 的效果,这也是 CPU 在训练上的应用。
除了加速比,下图展示了使用各个框架和硬件平台的实际训练时间,其单位为分钟。