性能评测及调优
完成模型整体的量化编译得到板端部署的hbm模型后,我们既支持先在开发机端预估模型BPU部分的的静态性能,也在板端提供了无需任何代码开发的可执行工具帮助您快速评测模型的动态性能。
静态性能评测
-
如您是通过PTQ链路进行模型量化,使用命令行工具,则hb_compile工具编译模型时会默认生成静态性能评估文件(*.html & *.json),同时您也可以通过调用hbm_perf接口进行模型静态性能评测。参考命令如下:
成功执行后,会在终端内打印模型FPS等基本信息,同时,在当前调用API接口的目录下,会生成该模型的静态性能评估文件(model.html&model.json)。 如您需要指定静态性能评估文件的路径,可以参考如下命令:
-
如您是通过QAT链路进行模型量化,则直接调用hbm_perf接口进行模型静态性能评测即可,方法同上方描述。
动态性能评测
当模型的静态性能符合预期后,由于Pyramid和Resizer输入模型中存在动态属性,我们还支持进一步使用hrt_model_exec工具实测模型的动态性能。参考指令如下:
对于动态输入,stride的要求为W方向32对齐,详细计算方式可参考UCP—动态输入介绍的相关内容。
假设tensor的输入尺寸valid_shape为(1,112,112,2),tensor_type=HB_DNN_TENSOR_TYPE_U8,stride= (-1,-1,2,1),则stride的计算方式如下:
例如,Pyramid输入的模型,Y=(1,224,224,1),UV=(1,112,112,2),则参考指令如下:
对于Resizer输入模型,工具内部会进行默认的ROI指定,默认值为[0,0,127,127],如此默认值无法满足您的模型要求,可以参考如下指令进行指定:
roi.txt内通过ROI(Region of Interest)的四个区域边坐标left、top、right、bottom的顺序进行指定,使用空格隔开,如:
性能调优建议
基于上方的性能评测及分析,您可能发现性能结果不及预期,此时可以参考模型性能调优 章节,我们提供的提升模型性能的建议与措施进行调优尝试。
