专栏算法工具链npu 算子 Trilu ,前后都是多层卷积的情况下,为啥在cpu上运行呢

npu 算子 Trilu ,前后都是多层卷积的情况下,为啥在cpu上运行呢

已解决
默认014722025-11-18
77
39

npu 算子 Trilu ,前后都是多层卷积的情况下,为啥在cpu上运行呢 , 这个算子在npu上运行 有什么约束吗

算法工具链
征程6
评论6
0/1000
  • Huanghui
    Lv.5

    你好,你现在运行的设备是什么?

    2025-11-20
    0
    0
  • Huanghui
    Lv.5

    你好,对齐一下:

    1. 地平线系列芯片是没有NPU的,你指的是BPU。

    2. 帖子中没看到你用的芯片型号,请问一下型号呢。

    3. 从算子支持列表( J6E/M ONNX 算子支持列表 - Horizon OpenExplorer )看, Trilu 是支持BPU加速的,你说在 cpu上运行 ,你是如何看的呢?

    2025-11-20
    0
    4
    • 默认01472回复Huanghui:

      J6M3.0.22版本的编译器,编译器编译生成.bc模型时,log信息就显示了在cpu上运行,没有在bpu上运行

      2025-11-21
      0
    • Huanghui回复默认01472:

      你用hb_model_info可视化一下会将bc转为onnx格式 然后netron看一下这个算子得域是什么

      2025-11-21
      0
    • Huanghui回复默认01472:

      或许是工具链显示问题的原因

      2025-11-21
      0
    • Huanghui回复默认01472:

      hb_model_info -v

      2025-11-21
      0
  • Vincent
    Lv.4

    你好,我刚写了个简单demo,按照你的描述 前后均有conv算子,在3.5.0工具链上面编译,显示TriLu算子是在BPU上面的

    2025-11-24
    0
    0
  • Vincent
    Lv.4
    2025-11-24
    0
    0
  • Huanghui
    Lv.5

    您好,由于长时间未得到您的回复,相信您已经解决该问题,欢迎下次提问!

    2025-12-17
    0
    0
  • Vincent
    Lv.4

    你好,这个问题解决了吗?当前是什么状态呢?如果可以您那边可以把模型发过来 ,我这边也看一下

    2025-11-24
    0
    29
    • 默认01472回复Vincent:

      x=torch.tril(x)我这写的加在 x=self.conv(x) 后面,显示在cpu上运行

      2025-11-24
      0
    • 默认01472回复Vincent:

      模型上传不了

      2025-11-24
      0
    • Vincent回复默认01472:

      稍等我再去试一下

      2025-11-24
      0
    • 默认01472:

      /Trilu | Trilu | CPU | -- 0.999924 | 0.999532 | si8这是log的信息

      2025-11-24
      0
    • 默认01472:

      另外 softamx也是这个情况 算子在cpu上运行

      2025-11-24
      0
    • Vincent回复默认01472:
      2025-11-24
      0
    • Vincent回复默认01472:

      像是打印问题,因为后面已经是si8了,之前是有将实际在bpu上的算子打印成cpu的情况的,最后就是编译链打印时候的bug,显示问题

      2025-11-24
      0
    • Vincent回复默认01472:

      你用hb_model_info -v 查看下bc模型 ,会将其转换成ONNX,查看下这个算子的域

      2025-11-24
      0
    • Vincent回复Vincent:

      cpu算子的域开头是hbtl_calld的

      2025-11-24
      0
    • Vincent:

      hbtl_call

      2025-11-24
      0
    • Vincent:
      像这样就是bpu算子,cpu红色框框这里是hbtl开头的
      2025-11-24
      0
    • Vincent回复默认01472:

      同样的方法 你也可以查看下softmax

      2025-11-24
      0
    • 默认01472回复Vincent:

      是hbtl开头的

      2025-11-24
      0
    • 默认01472回复默认01472:
      这种情况是工具链的问题吗,softmax ,trilu,还有带round,sinh两个算子的onnx
      无法转成bc模型
      2025-11-24
      0
    • Vincent回复默认01472:

      哪个算子?是softmax还是Trilu

      2025-11-24
      0
    • 默认01472回复Vincent:

      这两个都是 hbtl

      2025-11-24
      0
    • Vincent回复默认01472:

      用quant_config指定下算子精度,比如指定成int8,或者int16,看看是否能跑到bpu上

      2025-11-24
      0
    • Vincent回复默认01472:

      这个具体报了什么错误? round,sinh在3.5.0里面算子支持列表里面都是有的。

      2025-11-24
      0
    • 默认01472回复Vincent:

      我更新了工具链版本,现在可以了,但sinh这个算子有问题,你可以帮忙尝试转一下这个算子吗

      2025-11-25
      0
    • Vincent回复默认01472:

      当然可以,是我这边自己写一个demo转一下还是您那边提供模型呢?

      2025-11-25
      0
    • Vincent回复默认01472:

      还有就是你当前的工具链版本是多少?

      2025-11-25
      0
    • 默认01472回复Vincent:

      就是你写一个,转成.bc看能不能转

      2025-11-25
      0
    • 默认01472回复Vincent:

      之前的是3.0.22,现在是3.3.0

      2025-11-25
      0
    • Vincent回复默认01472:

      是3.2.0吧?3.3.0暂时没有吧

      2025-11-25
      0
    • Vincent回复默认01472:

      我用3.2.0的也导不出来 ,=尝试下算子等价替换吧

      2025-11-25
      0
    • Vincent回复默认01472:
      2025-11-25
      0
    • Vincent回复默认01472:

      这个是可以导出来的

      2025-11-25
      0
    • 默认01472回复Vincent:

      但是此种方法导出不管是onnx中的算子还是转成的板端算子 都不是 sinh算子啊

      2025-11-26
      0
    • Vincent回复默认01472:

      你现在是有带sinh的onnx模型了的对吧,你尝试导出来不同opset版本的onnx在编译试一试

      2025-11-27
      0