快捷方式

PyTorch 2.0 性能仪表盘

作者: Bin BaoHuy Do

PyTorch 2.0 的性能每晚在此仪表盘上进行跟踪。性能收集每晚在 12 个 GCP A100 节点上运行。每个节点包含一个 40GB A100 Nvidia GPU 和一个 6 核 2.2GHz Intel Xeon CPU。相应的 CI 工作流文件可以在此处找到。

如何阅读仪表盘?

登录页面显示了我们衡量的所有三个基准测试套件(TorchBenchHuggingfaceTIMM)的表格,以及默认设置下的一个基准测试套件的图表。例如,默认图表当前显示了 TorchBench 过去 7 天的 AMP 训练性能趋势。可以通过选择页面顶部的下拉列表来查看具有不同选项的表格和图表。除了通过率(pass rate)外,还报告了 3 个关键性能指标:Geometric mean speedup(几何平均加速比)、Mean compilation time(平均编译时间)和 Peak memory footprint compression ratio(峰值内存占用压缩比)。Geometric mean speedupPeak memory footprint compression ratio 都与 PyTorch eager 模式的性能进行比较,值越大越好。这些表格上的每个性能数字都可以点击,这将带您进入一个视图,其中包含该特定基准测试套件中所有测试的详细数字。

仪表盘上衡量了什么?

所有仪表盘测试都定义在这个函数中。确切的测试配置可能会有所变化,但目前我们测量了三个基准测试套件的推理和训练性能,均使用 AMP 精度。我们还测量了 TorchInductor 的不同设置,包括default(默认)、with_cudagraphs (default + cudagraphs)(带 cudagraphs,即默认 + cudagraphs)和dynamic (default + dynamic_shapes)(动态,即默认 + 动态形状)。

在合并前,我能否检查我的 PR 是否会影响仪表盘上 TorchInductor 的性能?

可以通过点击此处Run workflow 按钮并选择您的 PR 分支提交,手动触发单个仪表盘运行。这将启动一个完整的仪表盘运行,包含您的 PR 更改。完成后,您可以在性能仪表盘 UI 上选择相应的分支名称和提交 ID 来查看结果。请注意,这是一项昂贵的 CI 运行。资源有限,请明智地使用此功能。

如何在本地运行任何性能测试?

在任何近期的 CI 运行日志中都可以找到完整仪表盘运行期间使用的确切命令行。此工作流页面是查找近期运行日志的好地方。在这些日志中,您可以搜索类似 python benchmarks/dynamo/huggingface.py --performance --cold-start-latency --inference --amp --backend inductor --disable-cudagraphs --device cuda 的行,如果您有与 PyTorch 2.0 兼容的 GPU,可以在本地运行它们。python benchmarks/dynamo/huggingface.py -h 将为您提供基准测试脚本选项的详细说明。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获取问题解答

查看资源