使用 fullgraph=False#
建立日期:2025年7月28日 | 最後更新日期:2025年9月3日
雖然 fullgraph=False 是 torch.compile 的預設設定,但遇到圖中斷時恢復編譯的語義更加複雜。您可以在子節中找到關於 fullgraph=False 語義的詳細資訊。
使用 torch.compile(fullgraph=False) 的策略如下:
確定放置
torch.compile的理想位置。通常,它是不會導致過多圖中斷的最高級別函式。執行大量預處理或 I/O 操作的函式是導致許多圖中斷且從torch.compile中獲益不大的函式的示例。a. 您可以透過先編譯單個函式/模組,然後再編譯整個模型來隔離問題。將
torch.compiler.disable應用於編譯區域中導致大量圖中斷且不受益於編譯的函式。在這種情況下,一個圖中斷比潛在的數十或數百個圖中斷要好。使用
TORCH_LOGS="graph_breaks"或 tlparse 來調查剩餘的圖中斷。使用與在fullgraph=True程式設計模型下處理圖中斷相同的方法來解決這些圖中斷。並非所有圖中斷都需要移除 - 有些可能比其他圖中斷對效能的影響更大。一般的規則是關注在模型計算期間發生的圖中斷。a. 我們建議在除錯圖中斷時使用torch.compile(backend='eager'),以加快除錯迭代速度。