torch.jit.set_fusion_strategy¶
- torch.jit.set_fusion_strategy(strategy)[源][源]¶
設定融合期間可能發生的特殊化型別和數量。
用法:提供一個對列表 (type, depth),其中 type 是“STATIC”或“DYNAMIC”之一,depth 是一個整數。
- 行為 - 靜態與動態
在靜態 (STATIC) 融合中,融合後的運算元會被編譯為具有固定的輸入形狀。形狀基於一些初始分析執行確定。在動態 (DYNAMIC) 融合中,融合後的運算元會被編譯為具有可變輸入形狀,從而支援多種形狀。
在這兩種情況下,我們也會在新步幅行為、裝置或資料型別出現時重新編譯。
- 行為 - 回退函式與深度
當輸入與專業化編譯運算元所需的格式不匹配時,它將執行回退函式。回退函式會根據觀察到的張量形狀遞迴地被編譯和特殊化。由於編譯可能很慢,提供了“depth”引數來限制可以編譯的特殊化數量,在此之前,如果超過限制,將放棄重新編譯並回退到完全未融合、未特殊化的實現。
對列表 (type, depth) 控制特殊化的型別和數量。例如:[(“STATIC”, 2), (“DYNAMIC”, 2)] 表示前兩個特殊化將使用靜態融合,接下來的兩個特殊化將使用動態融合,任何不滿足這 4 個選項中任何一個的輸入都將執行未融合的實現。
注意:將來,如果新增更多融合後端,可能會有更細粒度的特定融合器 API。