PyTorch 2.0 性能仪表盘¶
PyTorch 2.0 的性能每晚都会在此 仪表盘 上进行跟踪。性能收集每晚在 12 个 GCP A100 节点上运行。每个节点包含一个 40GB A100 Nvidia GPU 和一个 6 核 2.2GHz Intel Xeon CPU。相应的 CI 工作流文件可以 在此处 找到。
如何读取仪表盘?¶
着陆页显示了我们衡量的三个基准套件的表格,TorchBench
、Huggingface
和 TIMM
,以及具有默认设置的一个基准套件的图表。例如,默认图表当前显示过去 7 天中 TorchBench
中的 AMP 训练性能趋势。可以选择该页面顶部的下拉列表来查看具有不同选项的表格和图表。除了通过率之外,还报告了 3 个关键性能指标:Geometric mean speedup
、Mean compilation time
和 Peak memory footprint compression ratio
。 Geometric mean speedup
和 Peak memory footprint compression ratio
均与 PyTorch eager 性能进行比较,且越大越好。可以单击这些表格上的每个单独性能数字,这将带你进入一个视图,其中包含该特定基准套件中所有测试的详细数字。
仪表盘上测量的内容是什么?¶
所有仪表盘测试在此 函数 中定义。确切的测试配置可能会更改,但目前,我们在三个基准套件上使用 AMP 精度测量推理和训练性能。我们还测量了 TorchInductor 的不同设置,包括 default
、with_cudagraphs (default + 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
将详细说明基准测试脚本的选项。