Page 86 - 《软件学报》2026年第6期
P. 86
刘佳玮 等: 面向 RISC-V 架构的深度学习算子测试 2405
CPU 时间层面 (图 9(a)) 呈现明显的右偏分布特征. R h/l 的中位数约为 0.95, 箱体范围为 [0.85, 1.08], 但存在
多个上侧离群点 (最大值约 1.4), 基于 1.5 倍 IQR 法则 (上界 U=Q 3 +1.5×IQR≈1.43), 这些离群点被标记为统计意义
上的异常放大系数样本, 表明部分算子在高复杂度下的 CPU 时间增长显著偏离正常模式. R m/l 和 R h/m 的分布相对
紧凑, 中位数分别约 1.0 和 0.92, 离群点数量较少, 表明多数算子在复杂度逐级提升过程中保持了相对稳定的性能
变化特征. 为进一步验证不同复杂度层级间性能差异的统计显著性, 我们对 CPU 时间指标进行了单因素方差分
析 (One-way ANOVA). 结果表明, 3 个复杂度层级 (低、中、高) 间的性能差异具有极高的统计显著性 (F=127.34,
p<0.001), 说明基于复杂度分组的测试能够在 RISC-V 平台上有效触发并区分不同的算子执行模式.
常驻内存层面 (图 9(b)) 展现出极高的一致性, 3 种放大系数的中位数均接近 1.0, 四分位距极小 (约 0.03–
0.05), 表明无论复杂度如何, 不同算子实现在内存占用的敏感性方面高度一致. 这种集中分布使得常驻内存的离群
点检测阈值范围极窄 (上界 U≈1.02), 即使微小的偏离也能被识别为异常. 方差分析同样显示复杂度层级对常驻内
存有显著影响 (F=89.21, p<0.001) 表明该指标在刻画复杂度敏感行为方面具有统计有效性.
缺页率指标 (图 9(c)) 同样呈现高度集中的分布, 3 种放大系数的中位数均为 1.0, 箱体几乎退化为一条线. 尽
管分布集中, R h/l 、 R m/l 仍各存在一个上侧离群点 (约 1.15), 基于 IQR 法则 (上界 U≈1.03) 被识别为显著偏离整体
分布的异常样本, 对应的算子在内存访问模式上存在内存访问行为的异常放大趋势, 导致缓存失效率随复杂度增
加而异常上升. 综合 4 个指标的箱形图分析可以看出: CPU 时间和用户态 CPU 占比是识别异常实现的最有效指
标, 其离群点数量最多且分布范围最广; 常驻内存和缺页率的分布高度集中, 说明 RISC-V 平台上不同算子库在内
存管理策略方面具有较强的一致性.
用户态 CPU 占比指标 (图 9(d)) 的箱体范围较大 (约 0.2–0.3), 表明不同算子实现在系统开销方面存在一定差
异. R h/m 存在多个上侧离群点 (最大值约 1.37, 上界 U≈1.28), 对应的算子从中到高复杂度时系统开销异常增加, 这
与 TVM 在高负载场景下引入的额外运行时管理与调度开销具有相关性.
我们进一步对比 TVM 和 TFLite 的源码, 来对检测到的异常的产生原因进行分析. TVM 采用基于 LLVM 的
动态代码生成策略, 其 tir::transform::StorageRewrite 模块在处理复杂度增加时产生碎片化内存布局, TVM 的
ScheduleOps::ComputeStorageScope() 函数生成的内存访问跨度随复杂度呈指数级增长, 在 RISC-V 的简化缓存控
制器上表现对存储层次结构更加敏感. 相反, TFLite 采用静态预分配, 实现连续内存布局, tflite::graph_utils::
CalculateOptimalAllocation() 在图优化阶段确定内存排布, 确保复杂度增加时仍保持线性扩展的内存访问模式. 汇
编代码分析表明, TVM 生成的内存访问指令存在非对齐访问, 产生跨 cache line 的 ld 指令序列; 而 TFLite 保持规
律的步长访问模式, 与 RISC-V cache line 大小良好对齐. 上述源码级差异为统计分析中识别出的异常放大系数提
供了合理的实现层解释, 表明 RIVdoo 基于 IQR 的异常检测结果能够与底层实现行为建立一致关联, 从而支持其
在揭示 RISC-V 平台相关行为差异方面的有效性.
4.3 研究问题 3
第 4.1 和 4.2 节揭露了深度学习算子执行时间、常驻内存峰值、主缺页率和 CPU 占比等方面可能呈现出
与平台特性相关的性能差异与资源敏感行为, 为了进一步聚焦于研究问题 3, 我们在上述关键性能指标的基础
上, 对 47 个算子的实验结果进行了系统化分析, 以识别其在 RISC-V 架构上的具体适配表现, 以刻画其在 RISC-V
架构下的具体行为表现与适配特征. 通过该分析, 我们能够区分算子在资源受限环境下的不同表现模式, 并进一
步揭示这些行为差异在效率、内存与系统层面的具体体现形式, 从而评估 RIVdoo 在识别平台相关行为特征方
面的能力.
在效率层面, RIVdoo 的结果揭示了 TVM 与 TFLite 的不同算子在 RISC-V 平台上的 CPU 时间存在显著差异,
热力图分析显示 TFLite 在几乎所有 47 个算子上的 CPU 时间均比 TVM 短 30%–50%, 这一普遍性优势源于 TFLite
针对端侧部署的预编译策略. 这一差异与两者的源码实现紧密相关. TFLite 在 fully_connected.cc 和 kernel_utils.h
中采用固定的循环嵌套结构, 在编译期完成了所有算子内核的优化和代码生成, 避免了运行时的编译开销和动态
调度成本. 这种策略在 RISC-V 平台上尤为有效, 因为 RISC-V 的静态编译特性使得运行时优化的收益有限, 而

