Page 76 - 《软件学报》2026年第6期
P. 76
刘佳玮 等: 面向 RISC-V 架构的深度学习算子测试 2395
切需要发展专门化的测试方法来确保算子在新兴指令集架构上的可靠运行.
2 RIVdoo: 面向 RISC-V 架构的深度学习算子测试方法
2.1 方法概述
图 2 展示了 RIVdoo 的整体技术架构和测试流程. 该方法从深度学习算子的计算参数出发, 通过系统性的复
杂度分层策略生成涵盖高、中、低这 3 个复杂度层级的测试用例, 每个层级对应不同的 RISC-V 架构资源挑战模
式. 在测试执行阶段, RIVdoo 采用差分测试机制, 同时在 TVM [43] 和 TFLite [44] 两个主流算子库环境下运行相同的测
试用例, 并从精度、效率、内存和系统这 4 个层面全面采集算子在 RISC-V 架构上的性能表现数据. 基于上述技
术架构, 本文在第 2.2 节详细阐述基于输入空间复杂度分组的测试生成策略, 在第 2.3 节深入分析面向 RISC-V 架
构的多维度测试分析方法, 在第 2.4 节介绍基于复杂度放大系数的差分测试机制.
高 TVM TVM TVM TVM
CPU
高通道数 大空间维度 计 精度层面 效率层面 内存层面 系统层面
张量数据 算
复 差分测试
杂
中等 中等 度
通道数 空间维度
TFLite TFLite TFLite TFLite
计算参数 低
小通道数 小空间维度 精度层面 效率层面 内存层面 系统层面
深度学习算子 测试数据采样 交叉编译 静态编译算子 算子部署 板上执行 算子输出
图 2 RIVdoo 的测试流程
2.2 基于输入空间复杂度分组的测试生成
传统深度学习算子测试方法通常采用固定参数配置或随机采样策略, 无法有效识别不同计算负载对资源受
限 RISC-V 架构的差异化影响. 仅评估轻负载场景的性能表现难以预测重负载场景的资源瓶颈, 而仅评估重负载
测试可能掩盖轻负载场景的效率问题. 为全面反映深度学习算子在不同计算负载下的性能表现, RIVdoo 设计了一
种基于输入参数复杂度的分组策略. 该策略的核心思想是: 算子的计算量、内存占用与访存开销由关键输入参数
共同决定, 而这些参数在特定硬件资源约束下会引起显著的性能差异. 因此, RIVdoo 从理论层面对参数规模与硬
件资源消耗之间的关系进行分析, 确定参数的高、中、低复杂度区间, 并据此生成不同计算负载的测试配置. 这种
设计既能在有限测试成本下覆盖多层次计算场景, 又能保持在不同算子与平台上的可扩展性和可复现性.
2.2.1 分组依据
深度学习算子的计算复杂度源于多个关键参数的交互组合效应, 这些参数在 RISC-V 平台的资源约束环境下
k
产生显著不同的性能挑战模式. 设算子的参数配置 P 涉及 个关键参数 p 1 , p 2 ,..., p k , 其计算复杂度可表示为
k ∏
P
′
′
C(P) = α· p i , 其中 α 为与算子类型相关的常数. 对于两个参数配置 P 和 , 若 P 的每个参数均不小于 P 对应参
i=1
′
i
数, 即 p ⩾ p i 对所有 成立, 则有:
i
C (P ) k ∏ p ′ i
′
= ⩾ 1.
C (P) p i
i=1

