• 正文
  • 相关推荐
申请入驻 产业图谱

【RV1126B 实战连载 02】AI 视觉&工业硬实时,RV1126B 实时性能深度实测

3小时前
132
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

前言:

本期聚焦:对于 RV1126B 而言,强悍的 AI 推理能力只是上半场——能否在硬核实时场景中稳定输出低延迟响应,才是决定其能否打入工业控制、机器人核心环节的关键,本期则为大家展示RV1126B 实时性能深度实测数据。

在精密机械臂抓取、AGV 导航避障、高速产线视觉检测的场景中,控制指令的延迟往往以微秒(μs)论生死。普通 Linux 系统在非实时负载下,调度延迟可能飙升至数十甚至上百微秒,导致视觉识别到执行动作的链条出现不可控的抖动。

一、PREEMPT_RT 补丁

PREEMPT_RT(Real-Time Preemption)是 Linux 内核的硬实时补丁,通过将内核中的不可抢占区段最小化,使高优先级任务能够以可预测的延迟得到调度。

为了验证 RV1126B 在工业实时场景下的真实表现,我们基于眺望电子IPC-RV1126B AI视觉开放套件进行了完整的对比测试:

● 测试工具:cyclictest(周期任务调度测试黄金标准)

● 负载模拟:stress-ng 四核 FFT 满载压力测试

● 测试周期:25μs(25000 纳秒)

● 采样次数:100 万次迭代

1.1 指令参数解析

1.1.1 cyclictest指令

cyclictest是一个用于测试系统中周期性任务调度的工具。它可以测量系统在不同负载下的实时性能,并提供有关任务调度延迟和抖动的信息。

root@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-nort-kong

参数解析:

◆ -l 1000000:指定测试运行的迭代次数为1000000次;

◆ -m:启用内存锁定,以避免测试过程中的内存交换影响实时性;

◆ -Sp99:设置测试任务的优先级为99;

◆ --policy=fifo:设置测试任务的调度策略为FIFO(先进先出);

◆ -h 25000:设置每个测试迭代之间的延迟时间为25000纳秒(25微秒);

◆ -q:禁止输出额外的信息,只输出测试结果。

1.1.2 stress-ng指令

stress-ng是一个用于模拟系统负载的工具,可以测试系统的稳定性和性能。

root@rv1126b-buildroot:/# stress-ng -c 4 --cpu-method fft --timerfd-freq 1000000 -t 24h &

参数解析:

◆ -c 4:表示使用4个CPU核心进行测试;

◆ -cpu-method fft:指定使用FFT算法进行CPU负载测试;

◆ -timerfd-freq 1000000:设置定时器频率为1000000,用于控制测试的时间间隔;

◆ -t 24h:设置测试时间为24小时;

◆ &:在后台运行该命令。

1.1.3 cyclictest结果生成统计图方法

root@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-nort-kong

该指令会循环测试一百万次,请耐心等候。

可通过U盘、TF卡或网络传输等方式将其拷贝到ubuntu,这里使用网络传输拷贝到板子:

root@rv1126b-buildroot:/# scp rv1126b-nort-kong talowe@192.168.0.216:/home/talowe/rt_test/

生成统计图

$mkdir output
$ ./rt_createpng.sh rv1126b-nort-kong output/rv1126b-nort-kong.png

二、测试全流程

2.1 CPU性能模式 + 空载测试

设置CPU运行在性能模式,板子不连接任何外设,在终端输入如下指令进行测试:

root@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
root@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
root@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
root@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-nort-kong
root@rv1126b-buildroot:/# tail -n 11 rv1126b-nort-kong

图2-1 CPU实时性测试(nort-空载)

生成数据统计图如下:

图2-2 CPU实时性数据统计图(nort-空载运行)

2.2 FFT 满载压力测试

板子运行不连接任何外设,使用FFT算法对4个CPU进行24小时负载测试:

root@rv1126b-buildroot:/# stress-ng -c 4 --cpu-method fft --timerfd-freq 1000000 -t 24h &
root@rv1126b-buildroot:/# top
#按q退出
root@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-nort-stress
root@rv1126b-buildroot:/# tail -n 11 rv1126b-nort-stress

图2-3 CPU实时性测试(nort-CPU满载)

生成数据统计图如下:

图2-4 CPU实时性数据统计图(nort-满载运行)

2.3 preempt-rt + 空载测试

打了preempt-rt实时补丁之后,CPU默认跑在性能模式,板子运行不连接任何外设,在终端输入如下指令进行测试:

root@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-rt-kong
root@rv1126b-buildroot:/# tail -n 11 rv1126b-rt-kong

图2-5 实时性测试(rt-空载)

生成数据统计图如下:

图2-6 CPU实时性数据统计图(rt-空载运行)

2.4 preempt-rt + FFT满载压力测试

板子运行不连接任何外设,使用FFT算法对4个CPU进行24小时负载测试:

root@rv1126b-buildroot:/# stress-ng -c 4 --cpu-method fft --timerfd-freq 1000000 -t 24h &
root@rv1126b-buildroot:/# top
#按q退出
root@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-rt-stress
root@rv1126b-buildroot:/# tail -n 11 rv1126b-rt-stress

图2-7 实时性测试(rt-CPU满载)

生成数据统计图如下:

图2-8 CPU实时性数据统计图(rt-满载运行)

三、数据汇总:不打补丁 vs RT 补丁

3.1 空载场景:RT-Linux 实现"零级"延迟基线

核心 系统 最小延迟 平均延迟 最大延迟
CPU0 Linux 5μs 6μs 77μs
CPU0 RT-Linux 0μs 0μs 8μs
CPU1 Linux 5μs 6μs 43μs
CPU1 RT-Linux 0μs 0μs 7μs
CPU2 Linux 5μs 6μs 33μs
CPU2 RT-Linux 0μs 0μs 5μs
CPU3 Linux 5μs 6μs 63μs
CPU3 RT-Linux 0μs 0μs

5μs

在空载状态下,RT-Linux 将平均延迟压降至 0μs,最大延迟控制在 8μs 以内,相比普通 Linux 最大延迟降低近 10 倍。这意味着在没有外部负载干扰时,RV1126B 的实时响应能力已达到工业控制领域的顶尖水准。

3.2 满载压力:24 小时 FFT 烤机下的稳定性

当四核 CPU 以 FFT 算法满载运行 24 小时,模拟极端工业现场负载时:

核心 系统 最小延迟 平均延迟 最大延迟
CPU0 Linux 13μs 25μs 78μs
CPU0 RT-Linux 1μs 2μs 15μs
CPU1 Linux 15μs 29μs 67μs
CPU1 RT-Linux 1μs 2μs 13μs
CPU2 Linux 12μs 19μs 55μs
CPU2 RT-Linux 2μs 2μs 5μs
CPU3 Linux 9μs 18μs 63μs
CPU3 RT-Linux 1μs 2μs

9μs

核心发现:

● 普通 Linux 在满载下最大延迟波动剧烈(55~78μs),且平均延迟翻倍;

● RT-Linux 在满载下最大延迟仅为 5~15μs,平均延迟稳定在 2~3μs;

● 特别是 CPU2 在 RT-Linux 满载下最大延迟仅 5μs,展现出极佳的调度确定性。

3.3 性延迟分布可视化:RT-Linux 的"窄带"优势

从统计直方图可以看出,普通 Linux 的延迟样本分布呈现明显的"长尾"特征,高延迟离群点较多;而 RT-Linux 的延迟样本高度集中在低延迟区间,对数坐标下的分布曲线近乎一条陡峭的尖峰——这正是硬实时系统追求的"确定性"。

四、RV1126B + RT-Linux 边缘视觉控制优选方案

4.1 AI 推理与实时控制"双轮驱动"

RV1126B 不仅具备 3TOPS NPU 支撑 AI-ISP、目标检测、SLAM 等视觉算法,更通过 RT-Linux 补丁补齐了控制回路的实时性短板。视觉识别结果到 PWM/伺服指令的输出链路,不再受系统调度抖动的拖累。

4.2 四核架构的灵活隔离

测试数据显示,四核 A53 在 RT-Linux 下均表现出一致的低延迟特性。实际项目中可通过 isolcpus + CPU 亲和性绑定,将视觉推理任务与实时控制任务进行物理隔离,实现"AI 算力不挤占控制实时性"的协同架构。

4.3 从 IPC 到机器人、车载的跨场景复用

同一套 RV1126B 硬件平台,通过软件层面的 RT-Linux 适配,即可覆盖:

■ 工业 IPC:高速视觉检测 + 实时 IO 控制

■ AGV/AMR:SLAM 导航算法 + 电机闭环控制

■ 协作机器人:多目视觉伺服 + 关节力控

■ 车载电子:ADAS 视觉感知 + CAN 总线实时响应

五、小结

本次基于眺望电子 IPC-RV1126B AI视觉开放套件完成的实时性测试表明,经过 PREEMPT_RT 补丁优化后,在满载工况下仍能将调度平均延迟稳定在 2~3μs,这足以满足绝大多数中高速运动控制机器视觉同步触发、精密伺服驱动的实时性要求。

对于正在评估边缘 AI 平台的工程师而言,RV1126B 的价值不仅在于"能跑 AI 模型",更在于"在跑 AI 模型的同时,还能可靠地控制物理世界"。完整测试数据及复现脚本可向眺望电子技术支持获取。

相关推荐