PyTorch 2.0 性能仪表盘

作者:Bin BaoHuy Do

PyTorch 2.0 的性能每天晚上在该 仪表板 上进行跟踪。每晚在一个包含12个 GCP A100 节点的环境中运行性能收集任务,每个节点配备一个40GB的Nvidia A100 GPU和一个6核2.2GHz的Intel Xeon CPU。相应的持续集成工作流文件可以在这里找到:此处

如何查看仪表板?

登录页面展示了我们测量的三个基准套件的所有表格:TorchBenchHuggingfaceTIMM,以及使用默认设置的一个基准套件的图表。例如,默认图表目前显示了过去7天内 TorchBench 的AMP训练性能趋势。页面顶部的下拉列表可以用来选择查看不同选项下的表格和图表。除了通过率之外,还有三个关键的性能指标:几何平均加速比平均编译时间峰值内存占用压缩比率几何平均加速比峰值内存占用压缩比率 与 PyTorch eager 性能进行比较,数值越大越好。点击表格中的每个单独的性能数字,将带你进入一个详细显示该特定基准套件中所有测试结果的视图。

仪表盘上显示了哪些指标?

所有的仪表板测试都在这个函数中定义。具体的测试配置可能会发生变化,但目前我们使用三个基准套件来测量带有AMP精度的推理和训练性能。我们也评估了不同设置下的TorchInductor,包括defaultwith_cudagraphs (default + cudagraphs)dynamic (default + dynamic_shapes)

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

可以通过点击这里运行工作流按钮,并选择你的 PR 分支后提交,来手动触发仪表板运行。这将启动一个包含你 PR 更改的完整仪表板运行。完成后,你可以在性能仪表板 UI 中通过选择相应的分支名称和提交 ID 来查看结果。请注意,这是一个资源消耗较大的 CI 运行,请谨慎使用。

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

在完整的仪表板运行期间使用的具体命令行可以在最近的持续集成(CI)运行日志中找到。你可以访问工作流页面 查找一些近期运行的日志。在这些日志中,可以搜索类似以下命令行:python benchmarks/dynamo/huggingface.py --performance --cold-start-latency --inference --amp --backend inductor --disable-cudagraphs --device cuda,如果你的 GPU 与 PyTorch 2.0 兼容,可以在本地运行这些命令。使用python benchmarks/dynamo/huggingface.py -h 可以获取基准测试脚本选项的详细说明。

本页目录