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 模式的效能進行比較,數值越大越好。可以點擊這些表格上的每個單獨的效能數字,這將會帶您到一個視窗,其中包含該特定基準測試套件中所有測試的詳細數字。
儀表板上測量什麼?¶
所有儀表板測試都在這個 function 中定義。確切的測試配置可能會有所變更,但目前,我們會測量三個基準測試套件上具有 AMP 精度的推理和訓練效能。我們還測量了 TorchInductor 的不同設定,包括 default
(預設)、with_cudagraphs (default + cudagraphs)
(使用 cudagraphs (預設 + cudagraphs)) 和 dynamic (default + dynamic_shapes)
(動態 (預設 + 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
將為您提供有關基準測試腳本選項的詳細說明。