PyTorch 2.0 性能仪表盘#
创建于: 2023年05月04日 | 最后更新于: 2025年06月10日
PyTorch 2.0 的性能在此 仪表盘 上进行 nightly 跟踪。性能收集每晚在 12 个 GCP A100 节点上运行。每个节点包含一个 40GB A100 Nvidia GPU 和一个 6 核 2.2GHz Intel Xeon CPU。相应的 CI 工作流文件可以在 这里 找到。
如何阅读仪表盘?#
着陆页显示了我们衡量的所有三个基准测试套件的表格:TorchBench
、Huggingface
和 TIMM
,以及一个基准测试套件的默认设置图表。例如,默认图表当前显示 TorchBench
在过去 7 天的 AMP 训练性能趋势。页面顶部的下拉列表可用于选择不同的选项来查看表格和图表。除了通过率之外,那里还报告了 3 个关键性能指标:几何平均加速比
、平均编译时间
和 峰值内存占用压缩比
。 几何平均加速比
和 峰值内存占用压缩比
都与 PyTorch eager 性能进行比较,值越大越好。表格上的每个单独的性能数字都可以点击,这将带您进入一个显示该特定基准测试套件中所有测试的详细数字的视图。
仪表盘上测量什么?#
所有仪表盘测试都在此 函数 中定义。确切的测试配置可能会发生变化,但目前,我们使用 AMP 精度在三个基准测试套件上测量推理和训练性能。我们还测量了 TorchInductor 的不同设置,包括 default
、with_cudagraphs (default + cudagraphs)
和 dynamic (default + dynamic_shapes)
。
合并 PR 之前,我可以在仪表盘上检查我的 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
将为您提供有关基准测试脚本选项的详细说明。