前言:
本期聚焦:对于 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_governorroot@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governorroot@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governorroot@rv1126b-buildroot:/# echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governorroot@rv1126b-buildroot:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > rv1126b-nort-kongroot@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-stressroot@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-kongroot@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-stressroot@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 模型的同时,还能可靠地控制物理世界"。完整测试数据及复现脚本可向眺望电子技术支持获取。
全部0条评论
快来发表一下你的评论吧 !