下载
EN
注册

TbeConv2DAddRealDivTransdataFusionPass

融合模式

将Conv2D和elemwise/broadcast以及transdata节点进行UB融合。elemwise白名单为Add/Div/Realdiv。仅支持SDXL网络中的单输出级联结构:即静态场景下的conv2d+transdata、conv2d+add+transdata、conv2d+div+transdata、conv2d+realdiv+transdata、conv2d+add+div+transdata和conv2d+add+realdiv+transdata。

使用约束

  • 仅支持Conv2D,group = 1,fp16进出场景,conv2d 5HD进出,融合算子5HD进NCHW出。
  • elemwise节点只支持双输入、单输出。
  • conv2d节点前不能接stridedread,否则不融合。
  • elemwise节点需要满足静态白名单add/div/realdiv,否则不融合。
  • elemwise节点数量1<=N<=2,当N=2时,第一个elemwise不能是输出多引用,否则不融合。
  • 仅支持SDXL网络中的部分conv2d规格白名单。

    附:SDXL conv2D算子规格白名单(dilation必须为{1, 1, 1, 1},不同pad_mode会影响实际参与计算的pad值,此处pad值为配置了不同pad_mode后实际计算所需的pad值)

    • {{"x", {1, 1536, 16, 16}}, {"filter", {1536, 1536, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 4, 128, 128}}, {"filter", {320, 4, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 320, 128, 128}}, {"filter", {320, 320, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 2, 2}}},
    • {{"x", {1, 640, 64, 64}}, {"filter", {640, 640, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1280, 32, 32}}, {"filter", {1280, 1280, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1280, 64, 64}}, {"filter", {1280, 1280, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 640, 128, 128}}, {"filter", {640, 640, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 320, 128, 128}}, {"filter", {320, 320, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 4, 128, 128}}, {"filter", {384, 4, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 384, 128, 128}}, {"filter", {384, 384, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 2, 2}}},
    • {{"x", {1, 1536, 64, 64}}, {"filter", {1536, 1536, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 768, 128, 128}}, {"filter", {768, 768, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 384, 128, 128}}, {"filter", {384, 384, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 320, 64, 64}}, {"filter", {640, 320, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 320, 64, 64}}, {"filter", {640, 320, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 640, 32, 32}}, {"filter", {1280, 640, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 2560, 32, 32}}, {"filter", {1280, 2560, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 2560, 32, 32}}, {"filter", {1280, 2560, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1920, 32, 32}}, {"filter", {1280, 1920, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1920, 32, 32}}, {"filter", {1280, 1920, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1920, 64, 64}}, {"filter", {640, 1920, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1920, 64, 64}}, {"filter", {640, 1920, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1280, 64, 64}}, {"filter", {640, 1280, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 960, 64, 64}}, {"filter", {640, 960, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 960, 64, 64}}, {"filter", {640, 960, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 960, 128, 128}}, {"filter", {320, 960, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 960, 128, 128}}, {"filter", {320, 960, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 640, 128, 128}}, {"filter", {320, 640, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 640, 128, 128}}, {"filter", {320, 640, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 384, 64, 64}}, {"filter", {768, 384, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 384, 64, 64}}, {"filter", {768, 384, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 768, 32, 32}}, {"filter", {1536, 768, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 768, 32, 32}}, {"filter", {1536, 768, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 3072, 16, 16}}, {"filter", {1536, 3072, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 3072, 32, 32}}, {"filter", {1536, 3072, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 3072, 32, 32}}, {"filter", {1536, 3072, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 2304, 32, 32}}, {"filter", {1536, 2304, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 2304, 64, 64}}, {"filter", {768, 2304, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 2304, 64, 64}}, {"filter", {768, 2304, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1536, 64, 64}}, {"filter", {768, 1536, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1536, 64, 64}}, {"filter", {768, 1536, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1152, 64, 64}}, {"filter", {768, 1152, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1152, 64, 64}}, {"filter", {768, 1152, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1152, 128, 128}}, {"filter", {384, 1152, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 1152, 128, 128}}, {"filter", {384, 1152, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 768, 128, 128}}, {"filter", {384, 768, 3, 3}}, {"pads", {1, 1, 1, 1}}, {"strides", {1, 1, 1, 1}}},
    • {{"x", {1, 768, 128, 128}}, {"filter", {384, 768, 1, 1}}, {"pads", {0, 0, 0, 0}}, {"strides", {1, 1, 1, 1}}}

支持的型号

Atlas 推理系列加速卡产品