Page 85 - 《软件学报》2026年第6期
P. 85
2404 软件学报 2026 年第 37 卷第 6 期
表 3 展示了 3 种方法生成的测试输入在复杂度区间的分布情况. 实验结果显示, Predoo 和 DPM 生成的测试
输入 100% 集中在低复杂度区间, 完全未覆盖中高复杂度场景. 这是因为两种方法都依赖运行时反馈引导测试生
成, 而它们在原始 x86 平台上收敛至低复杂度区间, 即 x86 平台资源充足, 算子在常规负载下已充分优化, 问题主
要集中在边界条件等低复杂度场景. 然而, RISC-V 平台的资源约束特性 (如 2 MB L2 缓存、12.8 GB/s 内存带宽)
使得算子在中高复杂度配置下更容易呈现出与平台资源相关的行为差异. 在本研究的实验结果中, 中高复杂度区
间暴露出多种与资源使用模式相关的行为特征, 包括 TVM 的碎片化内存布局、TFLite 的过度内存占用等问题,
这些问题在 x86 平台可能因硬件资源规模较大而不易被触发或观察到. Predoo 和 DPM 因完全未覆盖中高复杂度
场景, 其生成的测试输入在识别此类与资源约束相关的行为特征方面存在局限性. 相比之下, RIVdoo 基于硬件资
源阈值推导复杂度区间, 实现了 3 个场景的均衡覆盖 (33.3%、33.3%、33.3%), 从而能够系统性地覆盖不同计算
负载条件下的算子执行行为. 上述结果表明, 跨复杂度层级的测试策略在资源受限架构环境下, 对于全面刻画算子
行为特征具有重要意义.
表 3 不同方法生成的测试输入的分布 (%)
方法 低复杂度 中复杂度 高复杂度
RIVdoo 33.3 33.3 33.3
Predoo 100 0 0
DPM 100 0 0
4.2 研究问题 2
基于第 4.1 节的实验结果, 我们识别出 RISC-V 平台上算子的显著性能分化现象和库间实现差异. 在此基础
上, 我们进一步分析算子的复杂度敏感性特征, 通过构建复杂度放大系数来量化算子在不同工作负载间的性能变
化模式. 这种分析能够获得传统绝对性能对比无法提供的深层次洞察: 区分算子的本质计算特性与实现质量问题,
识别复杂度适应性问题, 以及发现隐蔽的系统层面异常.
图 9 展示了 4 个关键性能指标 (CPU 时间、常驻内存、缺页率、用户态 CPU 占比) 在 3 种复杂度放大系数
( R h/l 、 R m/l 和 R h/m ) 下的箱形图分布. 通过箱形图可以清晰观察到各指标的中位数、四分位距以及离群点分布情
况, 为基于 Tukey 法则的异常检测提供直观的统计依据.
1.10
1.4
1.05
1.2
比值 (%) 1.0 比值 (%) 1.00
0.95
0.8
0.90
0.6
R h/l R m/l R h/m R h/l R m/l R h/m
(a) CPU时间 (b) 常驻内存
1.5
1.25
1.4
1.20 1.3
比值 (%) 1.15 比值 (%) 1.2
1.1
1.10
1.05 1.0
0.9
1.00 0.8
0.95 0.7
R h/l R m/l R h/m R h/l R m/l R h/m
(c) 缺页率 (d) 用户态CPU占比
图 9 各评估维度的复杂度放大系数

