专栏算法工具链[J6E] GatherElements量化失败

[J6E] GatherElements量化失败

已解决
eyehorus2025-01-02
64
6

1、芯片型号:J6E

2、算法工具链:3.0.27

3、问题定位:模型量化

4、问题具体描述:模型在使用hb_compile检查时报错:

模型和源码在附件,麻烦帮忙检查问题原因

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

    收到,先复现一下,有进展同步你哈~

    2025-01-02
    1
    5
    • eyehorus回复Huanghui:

      您好 请问现在进展如何?

      2025-01-06
      0
    • Huanghui回复eyehorus:

      你好,该问题是工具链的一个BUG造成的,请安装补丁https://pan.baidu.com/s/1onzr9TfEPxqvt-_d_uSXHA?pwd=3pjr后再次编译,本地验证通过

      2025-01-07
      0
    • eyehorus回复Huanghui:
      谢谢,加上这个补丁之后,3.0.27版本就可以正常编译了。
      不过从hb_compile的检查结果来看,我的bev模型有大量算子运行在CPU上,是不是使用PTQ量化只能得到这种大量算子运行在CPU上、推理速度很慢的上板模型,如果想达到OE文档里给出的推理效果,一定要使用推荐的QAT方法重新训练量化?
      2025-01-07
      0
    • Huanghui回复eyehorus:

      两个方面:

      1. 速度问题:算子运行在CPU上和运行在BPU上跟算子的支持情况已经输入输出约束有关.同样的pytorch模型在不同的版本和OPSET下导出的ONNX的图结构和算子组成可能是不一样的, TQ方式主要就是检测ONNX中的算子,所以有肯能存在不同的支持情况;另外,PTQ支持算子的情况和QAT支持算子的情况也是不一样的,这也可能导致同样的Pytorch模型在QAT是生成的hbm和导出onnx后ptq生成的hbm在运行时的计算器件的存在差异。

      2. 精度问题。PTQ的原理和流程相对简单,对量化精度的保持情况是有限的,bev模型相对来说是比较复杂的模型了,一般选用的量化方式还是尽量qat吧,其实这一点从工具量的PTQ&QAT参考示例的分布也有所体现。

      2025-01-07
      1
    • eyehorus回复Huanghui:

      明白 谢谢 可以结帖了

      2025-01-08
      0