評價此頁

torch.compiler.nested_compile_region#

torch.compiler.nested_compile_region(fn=None)[source]#

告知 ``torch.compile``,標記的操作集構成了一個巢狀編譯區域(該區域通常會在整個模型中重複出現),其程式碼可以被編譯一次並安全地重用。nested_compile_region 也可以用作裝飾器。

``torch.compile`` 跟蹤期間,編譯器會使用 nested_compile_region 應用分層編譯:它會在第一次遇到標記區域時為其生成最佳化程式碼,並在每次後續呼叫時重新生成(或“印出”)先前編譯過的程式碼。這可以顯著減少深度堆疊、結構相同的元件(如大型語言模型 (LLM) 的 Transformer 層)的整體編譯時間。

torch.compile 上下文之外——即在標準 Eager 模式執行中——此呼叫將不起任何作用,因此現有的工作流程不受影響。

請注意,nested_compile_region 不保證一個區域只會被編譯一次。如果編譯器檢測到新的輸入條件(形狀、資料型別、裝置、步幅、全域性變數等)使得快取的版本不再有效,它將透明地重新編譯該區域。因此,使用它是安全的:正確性始終得到保證,而額外的編譯成本僅在需要時才會產生。