評價此頁

torch.jit.set_fusion_strategy#

torch.jit.set_fusion_strategy(strategy)[原始碼]#

設定融合過程中可以發生的特殊化(specialization)的型別和數量。

用法:提供一對對(型別,深度)的列表,其中型別是“STATIC”或“DYNAMIC”之一,深度是一個整數。

行為 - 靜態與動態

在 STATIC 融合中,融合的操作將被編譯為具有固定的輸入形狀。形狀是根據一些初始效能分析執行確定的。在 DYNAMIC 融合中,融合的操作將被編譯為具有可變輸入形狀,因此可以處理多種形狀。

在這兩種情況下,我們也會在出現新的跨步行為、裝置或 dtype 時重新編譯。

行為 - 回退函式 & 深度

當輸入不符合專門編譯的操作所需格式時,它將執行一個回退函式。回退函式會根據觀察到的張量形狀被遞迴地編譯和專門化。由於編譯可能很慢,“深度”引數用於限制在放棄重新編譯並回退到完全未融合、未專門化的實現之前,可以編譯的專門化數量。

(型別,深度)對的列表控制著專門化的型別和數量。例如:[(“STATIC”, 2), (“DYNAMIC”, 2)] 表示前兩個專門化將使用靜態融合,接下來的兩個專門化將使用動態融合,而滿足所有 4 種選項的任何輸入都將執行未融合的實現。

注意:將來,如果增加了更多的融合後端,可能會有針對特定融合器的更精細的 API。