PyTorch 2.0 效能儀表盤¶
PyTorch 2.0 的效能每晚在此儀表盤上進行跟蹤。效能收集每晚在 12 個 GCP A100 節點上執行。每個節點包含一個 40GB A100 Nvidia GPU 和一個 6 核 2.2GHz Intel Xeon CPU。相應的 CI 工作流檔案可以在此處找到。
如何閱讀儀表盤?¶
登入頁面顯示了我們衡量的所有三個基準測試套件(TorchBench、Huggingface 和 TIMM)的表格,以及預設設定下的一個基準測試套件的圖表。例如,預設圖表當前顯示了 TorchBench 過去 7 天的 AMP 訓練效能趨勢。可以透過選擇頁面頂部的下拉列表來檢視具有不同選項的表格和圖表。除了透過率(pass rate)外,還報告了 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)(帶 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 將為您提供基準測試指令碼選項的詳細說明。