評價此頁
fullgraph=False">

使用 fullgraph=False#

建立日期:2025年7月28日 | 最後更新日期:2025年9月3日

雖然 fullgraph=Falsetorch.compile 的預設設定,但遇到圖中斷時恢復編譯的語義更加複雜。您可以在子節中找到關於 fullgraph=False 語義的詳細資訊。

使用 torch.compile(fullgraph=False) 的策略如下:

  1. 確定放置 torch.compile 的理想位置。通常,它是不會導致過多圖中斷的最高級別函式。執行大量預處理或 I/O 操作的函式是導致許多圖中斷且從 torch.compile 中獲益不大的函式的示例。a. 您可以透過先編譯單個函式/模組,然後再編譯整個模型來隔離問題。

  2. torch.compiler.disable 應用於編譯區域中導致大量圖中斷且不受益於編譯的函式。在這種情況下,一個圖中斷比潛在的數十或數百個圖中斷要好。

  3. 使用 TORCH_LOGS="graph_breaks" 或 tlparse 來調查剩餘的圖中斷。使用與在 fullgraph=True 程式設計模型下處理圖中斷相同的方法來解決這些圖中斷。並非所有圖中斷都需要移除 - 有些可能比其他圖中斷對效能的影響更大。一般的規則是關注在模型計算期間發生的圖中斷。a. 我們建議在除錯圖中斷時使用 torch.compile(backend='eager'),以加快除錯迭代速度。