专栏算法工具链sigmoid输入shape小于8192但仍在cpu上运行

sigmoid输入shape小于8192但仍在cpu上运行

已解决
casiatao2022-08-10
41
11
算法工具链
评论1
0/1000
  • 颜值即正义
    Lv.2

    你好,可以提供sigmoid算子上下游的模型结构嘛?方便我们更好地去定位问题哈!

    2022-08-10
    0
    10
    • casiatao回复颜值即正义:

      这样足够嘛

      2022-08-10
      0
    • 颜值即正义回复casiatao:

      你好,当sigmoid算子在尾部时,为了保证模型精度,需要使用float32高精度输出,BPU是不支持float32的,故采用跑在cpu上的策略哈。

      2022-08-10
      0
    • casiatao回复颜值即正义:

      您好,我的模型中还有两个处于尾部的sigmoid算子,但他们是运行在bpu上的

      2022-08-10
      0
    • 颜值即正义回复casiatao:

      你好,关于这种情况,重新给你回复一下哈:

      sigmoid即使处于尾部,我们也是支持跑在BPU上的,但会有限制8192。像sigmoid、siLU这种查表算子(通过查表获取数据输出),模型编译时会有内部对齐规则,c对齐8的倍数,H对齐2的倍数,W对齐16的倍数,因此第一个sigmoid函数它的尺寸变为1x8x52x64=26624>8192,超出限制,故跑在CPU上,对于小一点的尺寸,1x8x26x32=6656

      2022-08-11
      0
    • casiatao回复颜值即正义:

      那请问有什么替代的解决方案吗,我这里必须用到sigmoid,模型可以不对齐或者强制运行在bpu上吗。

      你们在开发过程中,有考虑过sigmoid的优化吗,yolo系列中使用sigmoid应该挺多的吧

      2022-08-12
      0
    • casiatao回复颜值即正义:

      对于这种模型对齐,难道你们内部实现的时候不可以把宽和高拆分到通道层然后再进行sigmoid吗,不太明白算子列表里说了小于8192的都可以,现在又说要内部对齐

      2022-08-12
      0
    • 颜值即正义回复casiatao:

      您好,这边建议您把sigmoid改为relu,sigmoid这种查表算子确实会有一些限制。

      2022-08-12
      0
    • 颜值即正义回复casiatao:

      关于内部对齐涉及到专用加速芯片的设计,谢谢您的建议,我会向上反馈的。

      2022-08-12
      0
    • casiatao回复颜值即正义:

      我想问一下,如果我自己将1x1x52x52的输入切分成1x4x26x26,然后输入到sigmoid,之后再合并回来,模型转换过程中是否支持这样的操作

      2022-08-12
      0
    • 颜值即正义回复casiatao:

      您好,建议您对照算子约束列表并根据您的想法尝试一下,导出onnx后,使用hb_mapper checker工具检查一下能否转换成功。

      关于该算子的对齐规则,我们会在版本更新时增加更详细的说明,感谢您的反馈!

      2022-08-15
      0