torch.jit.set_fusion_strategy
- torch.jit.set_fusion_strategy(strategy)[source][source]
设置融合过程中可能发生的特殊化和类型的数量。
使用方法:提供一对列表(类型,深度),其中类型可以是“STATIC”或“DYNAMIC”,深度为整数。
- 行为 - 静态与动态:
在静态融合中,融合操作被编译为具有固定输入形状。形状基于一些初始的配置文件运行确定。在动态融合中,融合操作被编译为具有可变输入形状,因此可能存在多个形状。
在这两种情况下,我们也会对新步进行为、设备或数据类型进行重新编译。
- 行为 - 回退函数与深度:
当输入不匹配专用编译操作所需的格式时,它将运行回退函数。回退函数将根据观察到的张量形状递归编译和专用化。由于编译可能很慢,因此提供了“深度”参数来限制可以编译的专用化数量,在放弃重新编译并回退到完全未融合、未专用化的实现之前。
(类型,深度)对的列表控制专用化的类型和数量。例如:[(“STATIC”,2),(“DYNAMIC”,2)] 表示前两个专用化将使用静态融合,接下来的两个专用化将使用动态融合,任何不满足这 4 个选项之一的输入将运行未融合的实现。
注意:将来,如果添加了更多的融合后端,可能会有更细粒度的特定融合器的 API。