BPU算子开发资料

1.芯片型号:J5

2.天工开物开发包OpenExplorer版本:J5_OE_v1.1.62

3.问题定位:板端部署优化

4.问题具体描述

部署指定模型到J5平台后,模型运算速度慢,有什么办法,在板端运行过程中,打印出各层推理耗时吗?

并希望能提供BPU算子开发的相关资料

我尝试把部分节点配置为int16量化,遇到了以下错误。

这个错误是因为什么原因导致的,有办法配置整个模型以int16进行量化吗

并且部分节点未输出余弦相似度信息

你好,模型逐层推理的耗时情况可以通过如下配置进行预估:

启用调试参数debug后,在明细页面会有Layer Details信息,Layer Details提供了BPU算子粒度的耗时信息。更多细节介绍可参考用户手册:https://developer.horizon.cc/api/v1/fileData/horizon\_j5\_open\_explorer\_cn\_doc/oe\_mapper/source/ptq/ptq\_usage/performance\_evaluation.html

这个信息是预测的信息,且仅包括bpu推理时间的预测,不包括cpu推理时间的预测

目前这里推测耗时4ms,实际运行耗时在100ms以上

再量化节点主要是为了应对concat输入阈值不一致的情况,使用层面不需要关注requantize

你好,关于这个问题,建议新开一个帖子,描述清楚使用的OE以及对应的docker版本,提供一下yaml文件和onnx模型,我们来复现一下你的问题

是的,上面逐层的仿真评估方式仅包括bpu推理时间的预测,不包括cpu推理时间的预测。

在模型分成多段,且CPU算子较多的场景下,还是更推荐在板端使用hrt_model_exec工具实测BPU和CPU部分的耗时

默认情况下,hrt_model_exec仅报告总耗时。应该设置什么参数,可以让hrt_model_exec报告分层耗时?

--profile_path参数,在生成的csv和log中均有CPU算子层面的耗时信息,BPU只提供整体耗时信息

我尝试在 hb_mapper makertbin 使用 fast-perf 选项编译model,但是推理编译后模型没有得到预期的输出。

使用fast-perf不需要yaml文件,那它是否会进行归一化操作

我设置 run_on_bpu: ‘Concat’, 但是profile.log中查出Concat仍然运行在cpu上

这个节点名称就是Concat吗?

还有就是concat强制运行在BPU上时,需要满足BPU的约束条件,详见用户手册算子支持与约束列表中的介绍https://developer.horizon.cc/api/v1/fileData/horizon\_j5\_open\_explorer\_cn\_doc/oe\_mapper/source/appendix/supported\_op\_list.html

fast-perf 问题呢,使用相同的推理代码,fast-perf模型生成model,推理得不出预期的结果

什么时候,余弦相似度和权重余弦相似度,激活余弦相似度都不拟合

fast-perf模式未准备校准数据,也没配置yaml文件,是不可能进行精度评测的。

fast-perf只能进行性能评测,这个在fast-perf用户手册对应章节有详细介绍原因哈,使用前建议先看一下手册哈

这个图主要用来说明造成精度问题时,主要是激活量化引起的还是权重量化引起的,亦或者是两者综合引起的。关于PTQ精度debug工具的使用,手册和社区文章有详细的介绍,欢迎查看:-
用户手册:https://developer.horizon.cc/api/v1/fileData/horizon\_j5\_open\_explorer\_cn\_doc/oe\_mapper/source/ptq/ptq\_tool/accuracy\_debug.html

社区文章:https://developer.horizon.cc/forumDetail/177840564069409792

有办法以int16精度量化整个模型吗

或者量化部分的代码能开源不