构建视觉应用时,需要考虑以下性能指标,并且需要进行基准测试:
- 端到端延迟:必须最大限度缩短采集图像与生成析结果之间的延迟,以便及时做出决策,采取响应措施。
- 视频吞吐量(每秒帧数):必须以所需帧率采集与处理图像,不得出现掉帧现象。
- CPU 负载:视觉流水线对通用 CPU 内核(对于 AM62A 则为 A53)的负载必须降至最低,因为所有图像处理都是在硬件加速器上完成的。
- DDR 利用率:对于视觉流水线的 DDR 读取与写入操作,必须为其他系统任务留出充足带宽。
- 硬件加速器 (HWA) 负载(ISP、VPU、C7x/MMA):HWA 专用于特定功能,不能用于其他目的。通过视觉流水线,HWA 的利用率可高达 100%,并且留有一定余量。
适用于 AM62A 的 EdgeAI SDK 提供了几种能够对该等性能指标进行基准测试的工具:
- Perf_stats 工具 [5]:测量 CPU 内核与 HWA 上的负载以及 DDR 利用率。
- GStreamer 调试跟踪:通过设置环境变量 GST_DEBUG_FILE,可将 GStreamer 调试信息重定向至一个文件。EdgeAI SDK 脚本(/opt/edgeai-gst-apps/scripts/gst_tracers/parse_gst_tracers.py)能够处理该等消息并估算 GStreamer 流水线每个元素的处理时间。
- GStreamer 插件 fpsdisplaysink:以帧/秒(fps)为单位,显示流水线的吞吐量。
- 自定义 GStreamer 插件 tiperfoverlay:在显示屏显示(或在终端控制台打印) CPU 负载、DDR 利用率、HWA 负载以及 fps。