TensorFlow 2 MLPerf 提交在 Google Cloud 上展现了最佳性能
2020 年 7 月 29 日
来自 TensorFlow 团队的 Pankaj Kanwar、Peter Brandt 和 Zongwei Zhou 发布

MLPerf 是衡量机器学习性能的行业标准,它发布了来自 MLPerf Training v0.7 轮的 最新基准测试结果。我们很高兴地分享,Google 的提交展现了领先的顶尖性能(达到目标质量的最短时间),它能够扩展到 4,000 多台加速器,并且在 Google Cloud 上具有 TensorFlow 2 开发者体验的灵活性。

在这篇博文中,我们将探讨 TensorFlow 2 MLPerf 提交,它展示了企业如何在 Google Cloud 中最先进的 ML 加速器上运行 MLPerf 代表的宝贵工作负载,包括广泛部署的 GPU 和 Cloud TPU 世代。我们附带的 博客文章 突出了我们创纪录的大规模训练结果。

TensorFlow 2:专为性能和可用性而设计

在今年早些时候的 TensorFlow 开发者峰会上,我们强调 TensorFlow 2 将重点放在可用性和实际性能上。当竞争赢得基准测试时,工程师经常依赖低级 API 调用和特定于硬件的代码,这些代码在日常企业环境中可能不实用。借助 TensorFlow 2,我们旨在通过更直接的代码提供开箱即用的高性能,避免低级优化在代码可重用性、代码健康和工程生产力方面可能导致的重大问题。
使用 Google Cloud VM(配备 8 个 NVIDIA V100 GPU)在“可用”类别中从 Google 的 MLPerf Training v0.7 闭源提交中获得的收敛时间(以分钟为单位)。
TensorFlow 的 Keras API(请参见此 指南 集合)提供可用性和跨各种硬件架构的可移植性。例如,模型开发人员可以使用 Keras 混合精度 API分布式策略 API 使相同的代码库能够在多个硬件平台上运行,几乎没有摩擦。Google 在“云可用”类别中的 MLPerf 提交是使用这些 API 实现的。这些提交表明,使用高级 Keras API 编写的几乎相同的 TensorFlow 代码可以在行业中两个领先的广泛可用的 ML 加速器平台(NVIDIA 的 V100 GPU 和 Google 的 Cloud TPU v3 Pod)上提供高性能。

注意:图表中显示的所有结果均从 www.mlperf.org 于 2020 年 7 月 29 日检索。MLPerf 的名称和徽标是商标。有关更多信息,请参见 www.mlperf.org。显示的结果:0.7-1 和 0.7-2。
使用包含 16 个 TPU 芯片的 Google Cloud TPU v3 Pod 切片在“可用”类别中从 Google 的 MLPerf Training v0.7 闭源提交中获得的收敛时间(以分钟为单位)。

查看幕后:XLA 的性能增强

Google 在 GPU 和 Cloud TPU Pod 上的提交利用了 XLA 编译器 来优化 TensorFlow 性能。XLA 是 TPU 编译器堆栈的核心部分,可以可选地为 GPU 启用。XLA 是一个基于图的即时编译器,它执行各种不同类型的全程序优化,包括对 ML 操作的广泛融合

操作符融合减少了 ML 模型的内存容量和带宽需求。此外,融合减少了操作的启动开销,尤其是在 GPU 上。总的来说,XLA 优化是通用的、可移植的,与 cuDNN 和 cuBLAS 库很好地互操作,并且通常可以为手动编写低级内核提供引人注目的替代方案。

Google 的 TensorFlow 2 在“云可用”类别中的提交使用了 TensorFlow 2.0 中引入的 @tf.function API。@tf.function API 提供了一种简单的方法来 选择性地启用 XLA,对哪些函数将被编译进行精细控制。

XLA 带来的性能提升令人印象深刻:在配备 8 个 Volta V100 GPU(每个 GPU 具有 16 GB 的 GPU 内存)的 Google Cloud VM 上,XLA 将 BERT 的训练吞吐量从每秒 23.1 个序列提高到每秒 168 个序列,提高了约 7 倍。XLA 还将每个 GPU 的可运行批次大小提高了 5 倍。XLA 降低的内存使用量还支持高级训练技术,例如梯度累积。
在 Google Cloud 上使用 8 个 V100 GPU 对 BERT 模型启用 XLA(以分钟为单位)的影响,如 Google 的 MLPerf Training 0.7 闭源提交所示,与同一系统上未经验证的 MLPerf 结果(禁用优化)相比。

Google Cloud 上的领先加速器

Google Cloud 是唯一一个提供对最先进的 GPUCloud TPU 的访问权限的公共云平台,这使 AI 研究人员和数据科学家能够自由选择适合每项任务的硬件。

最先进的模型(例如 BERT)在 Google 和整个行业中被广泛用于各种自然语言处理任务,现在可以在 Google Cloud 上进行训练,利用与在 Google 内部训练工作负载相同的基础设施。使用 Google Cloud,您可以在不到一个小时的时间内,以不到 32 美元的总成本在具有 16 个 TPU 芯片的 Cloud TPU v3 Pod 切片上训练 BERT 处理 300 万个序列。

结论

Google 的 MLPerf 0.7 Training 提交展示了 TensorFlow 2 在最先进的 ML 加速器硬件上的性能、可用性和可移植性。立即开始使用 TensorFlow 2 在 Google Cloud GPUGoogle Cloud TPUTensorFlow Enterprise 上的可用性和功能,以及 Google Cloud 深度学习 VM

致谢

GPU 上的 MLPerf 提交是与 NVIDIA 密切合作的结果。我们要感谢 NVIDIA 的所有工程师帮助我们完成这项提交。
下一篇文章
TensorFlow 2 MLPerf submissions demonstrate best-in-class performance on Google Cloud

来自 TensorFlow 团队的 Pankaj Kanwar、Peter Brandt 和 Zongwei Zhou 发布

MLPerf 是衡量机器学习性能的行业标准,它发布了来自 MLPerf Training v0.7 轮的 最新基准测试结果。我们很高兴地分享,Google 的提交展现了领先的顶尖性能(达到目标质量的最短时间),它能够扩展到 4,000 多台…