昇腾社区首页
中文
注册
开发者
下载

融合节点处理

AscBackend和AscBackend之间才可以进行融合,融合后,可以循环轴合并生成的仍然是AscBackend类型,无法循环轴合并的,则生成FusedAscBackend类型。

节点融合需要融合原图中的AscBackend,并同时对AscBackend下的AscGraph进行子图融合,子图融合过程中需要消除AscGraph上的load和store节点。融合节点处理原则如下,示意图如图1所示。

  • 根据循环轴是否相同,判断两个AscBackend是否能循环轴合并,如果能循环轴合并,合并AscBackend下的两个AscGraph。(具体合并流程可参考图2)。
  • 如果不能循环轴合并,则将AscBackend放入一个新FusedAscBackend的子图中,由后端决定生成多个kernel还是一个kernel包含多个循环。
  • 不能循环合并的FusedAscBackend与原图中的AscBackend直接融合成一个新FusedAscBackend。
  • FusedAscBackend的子图中可能还存在可以循环合并的AscBackend,框架应尽可能地进行循环轴合并。
图1 融合节点处理
图2 循环轴合并示意图