头图

1.性能测试方法原理

CAMSYS 其性能指标主要包括:帧率、延迟,以及系统的 DDR 带宽、CPU 占用率等。

对于帧率、延迟,通过在驱动中创建 trace event,分别记录通路上的每个 IP,每帧开始处理(frame_start)和结束处理(frame_end)的时间戳信息和帧信息,来实现帧率计算和延迟统计。

1.1帧率统计

每个模块处理完成后会产生一个 frame_done 中断,此时会记录下一个 event 点,此时在时间轴上每一帧则对应一个个离散的点。按照时间进行 resample(重采样),得到每秒的帧率数据序列,此种方法可以较为直观的反应帧率变化。

在这里插入图片描述

1.2延迟统计

对于延迟会统计两个数据,第一个是硬件处理引入的耗时,这个数据一般与处理尺寸相关相对固定,这个耗时称为模块延迟(module latency);另外一个是从 cim 接受到一行数据产生 frame_start 开始到当前模块 frame_end 的耗时,这个耗时包括 sensor 的出图完成+前级 IP 硬件处理耗时+软件耗时,这个延迟称为到某模块的通路延迟(flow latency)。

1.2.1模块延迟

只需要将该模块 trace 的帧 event 中的 fe 时间戳 - fs 时间戳即可得到硬件处理耗时,即为 module latency

模块模块延迟含义备注
CIMCIM FE - CIM FS
ISPISP FE - ISP FS
YNRYNR FE - YNR FS
PYMPYM FE - PYM FS
GDCGDC FE - GDC FS此处 GDC FS 不代表中断,指得是配置寄存器 triger 硬件开始处理得时间
STITCHSTITCH FE - STITCH FS此处 stitch FS 不代表中断,指得是配置寄存器 triger 硬件开始处理得时间

1.2.2通路延迟

在 trace 的 event 中会传递 cim 的 fs 时间戳(timestamp),因此只需将模块的 fe event 时间戳-timestamp,即可得到从第一行像素输入开始到当前的整个通路延迟。

如以到 GDC 的通路延迟为例,那么统计的通路延迟就包含如图所示的所有延迟。
在这里插入图片描述

模块通路延迟含义备注
CIMCIM FE - CIM FS等同于 CIM 的模块延迟
ISPISP FE - CIM FS
YNRYNR FE - CIM FS
PYMPYM FE - CIM FS
GDCGDC FE- CIM FS
STITCHSTITCH FE - CIM FS

1.3CPU 占用率统计

统计两个指标,一个是统计测试时 CPU 整体的 load;第二个是开发工具统计感知通路相关进程以及内核线程造成的 CPU 开销。前者反应当前测试的环境的状态,后者反应 CAMSYS 软件的开销。

1.4DDR 带宽统计

使用 hurt_ddr 工具获取 DDR 读写信息,主要统计整体的 DDR 读写带宽与 CMA SYS 的读写带宽。

2报告解读

基础数据信息中包含着测试环境、测试用例等固定信息

在这里插入图片描述

数据分析划分为两部分,第一部分为 VPS 的帧率、延迟分析,每个颜色块对应着某一条通路在该模块的帧率和延迟数据,其中延迟为到该模块的通路延迟。

在这里插入图片描述

在这里插入图片描述

第二部分为系统 load 分析,包括系统整体的 CPU、DDR load,也包括 VPS 对应的 CPU load、CMA SYS 读写带宽

在这里插入图片描述

2.1可视化图形解读

VPS 的数据分析中, 每个模块的每个通路对应一个可视化结果: 第一个子图为模块的硬件处理耗时,纵轴为耗时(ms),横轴为帧序,如下图的 isp_latency;

第二个子图为到该模块的通路延迟,纵轴为耗时(ms),横轴为帧序,如下图中的 vin->isp_flow_latency;

第三个子图为对应的帧率统计序列,纵轴为帧率),横轴为时间(s)

在这里插入图片描述

系统负载分析中,第一个子图为 CPU load, 纵轴为 loading(%),横轴为时间(s);第二个子图为 DDR 读写带宽,纵轴为带宽(MB/s),横轴为时间(s)。

在这里插入图片描述


地平线智驾开发者
7 声望4 粉丝

地平线智能驾驶开发者社区旨在连接智能驾驶领域的开发者和对相关技术感兴趣的其他行业开发者、从业者。