torch.jit.set_fusion_strategy
- torch.jit.set_fusion_strategy(strategy)[源代码]
-
设定在融合过程中可以出现的特化类型的数量。
用法:提供一个包含“类型”和“深度”的对列表,其中类型是“STATIC”或“DYNAMIC”之一,深度是一个整数。
- 静态与动态行为:
-
在STATIC融合中,融合操作的输入形状是固定的,并通过初始性能测试来确定具体形状。而在DYNAMIC融合中,融合操作的输入形状是可以变化的,因此可以支持多种不同的形状。
在这两种情况下,当我们更改步幅行为、设备或数据类型时,都会进行重新编译。
- 行为 - 回退函数和深度:
-
当输入不符合专用操作所需的格式时,将运行回退函数。回退函数会根据观察到的张量形状递归地进行编译和专门化。由于编译可能很慢,“深度”参数用于限制可以编译的专门化数量,在放弃重新编译并退回到完全未融合且未专门化的实现之前。
(类型, 深度) 对列表控制了特化的类型和数量。例如:[(“STATIC”, 2), (“DYNAMIC”, 2)] 表示前两个特化使用静态融合,接下来的两个特化使用动态融合。对于不满足这四个选项中的任何一个输入,将运行未融合的实现。
注意:未来如果增加更多融合后端,可能会为特定融合器提供更细化的API。