板端评测
本节是模型部署链路中的评测阶段。进入本节的前置条件是推理应用已经在板端跑通、hbm 模型已上板并能得到单帧结果,本节的产出是模型的 Latency / FPS 性能指标与精度评测结果。
板端评测包括性能评测和精度评测两类。
性能评测用于评估模型推理的性能,评测时主要关注单帧推理延时(Latency)和推理吞吐(FPS)两个指标:
- Latency 指模型完成一次推理所需的时间,关注重点为系统对单个请求的响应速度,时延统计从输入数据准备完成开始,到获得推理结果结束,单位为 毫秒(ms)。若使用异步UCP接口进行推理,则时延统计从调用 hbDNNInferV2 接口开始至 hbUCPWaitTaskDone 接口返回结束。
- FPS 表示系统在单位时间内能够完成的推理帧数,反映系统的整体吞吐能力,单位为 帧/秒。
精度评测用于评估在部署环境中模型推理输出结果的正确性和一致性。
精度评测的判断基准是量化阶段产出的定点模型,板端推理结果应与该模型的输出一致。对照产物为 quantized_model.bc,若量化时移除了输入输出节点,则为 quantized_removed_model.bc。
若板端结果与对照产物不一致,请优先排查输入数据准备与对齐处理,而不是先怀疑模型本身。排查方法请查看 ONNX 模型部署一致性分析 或 PyTorch 模型部署一致性分析 章节。
我们提供了 hrt_model_exec 工具及 hbm_infer 工具,方便您进行模型推理性能和精度评测工作。
-
在进行模型推理性能评测时,请确保评测时间内无其他程序占用资源。
-
在不同平台上,性能评测结果会因为硬件能力差异而有所不同,J6E/M/B 与 J6H/P、S6P 的结果不具备直接可比性,跨平台对比性能指标前请先确认平台型号。各平台的完整差异请查看 平台差异说明 章节。
工具选用说明
hrt_model_exec 与 hbm_infer 的运行位置与适用场景不同,请按下表选择:
如果您当前只需要确认模型能否在板端跑出正确的单帧结果,或需要拿到 Latency / FPS 指标,使用 hrt_model_exec 即可。如果您需要在数据集上批量验证精度,使用 hbm_infer 更合适。
使用 hrt_model_exec 工具评测
hrt_model_exec 是一个模型执行工具,可直接用于在开发板上获取模型信息、执行单帧推理以及评测模型推理性能。
工具源码路径为 samples/ucp_tutorial/tools/hrt_model_exec。工具的使用环境配置及三种使用场景示例如下:
关于 hrt_model_exec 工具的更详细介绍,请参考 模型推理工具 - hrt_model_exec工具 章节。
使用 hbm_infer 工具评测
为提升精度评测效率,工具链提供了 hbm_infer 工具,允许您在 X86 端使用 Python 代码做模型前后处理,由板端 Server 执行实际推理过程,更适合进行批量数据集评测。其单进程基本使用示例如下:
关于 hbm_infer 工具的多进程评测、模型串联传输优化等更详细介绍请参考 模型推理工具 - hbm_infer工具 章节。
下一步看哪里
-
性能指标不及预期:请查看 性能调优指导 章节。
-
板端精度与对照产物不一致:请查看 ONNX 模型部署一致性分析 或 PyTorch 模型部署一致性分析 章节。
-
需要确认硬件 IP 占用率与内存使用情况:请查看 板端资源评估 章节。
