Page 79 - 《软件学报》2026年第6期
P. 79

2398                                                       软件学报  2026  年第  37  卷第  6  期


                 的测试偏差, 确保在每个复杂度层级内获得具有统计代表性的性能评估结果. 同时, 该策略能够发现区间边界附近
                 的性能突变现象, 识别可能导致          RISC-V  平台性能急剧变化的临界参数配置, 为算子优化和平台调优提供精确的
                 参数敏感性分析数据. 此外, RIVdoo       还能够模拟真实深度学习应用中算子参数的多样性分布特征, 使得测试结果
                 具备更好的泛化性和实用指导价值, 避免因参数配置过于规整而产生的性能评估失真问题.
                  2.3   面向  RISC-V  架构的多维度测试分析
                    RIVdoo  将影响深度学习算子在基于         RISC-V  架构的平台上运行质量的因素映射到软硬结合的多个核心层面.
                 现有的深度学习算子测试方法主要通过验证算子输出与预期结果的一致性来判断质量, 这种功能正确性测试仅从
                 纯软件视角考虑算子实现的逻辑正确性, 无法识别算子与特定硬件架构交互过程中的适配问题. RISC-V                              作为新兴
                 的精简指令集架构, 在编译工具链成熟度、指令集优化程度、内存管理机制和系统调用处理等方面都与成熟的
                 x86  和  ARM  架构存在显著差异, 这些差异会在软硬件交互的多个层面影响算子运行质量, 而传统的单一功能测试
                 无法全面评估这些潜在问题.
                    为全面评估深度学习算子在           RISC-V  平台上的表现, RIVdoo   构建了涵盖精度、效率、内存和系统这              4  个层
                 面的度量指标体系: 精度层面度量对应            RISC-V  在编译工具链和运行环境方面的特殊性, 通过评估算子输出正确
                 性和执行稳定性来保障评估基础的可靠性; 效率层面度量对应                     RISC-V  精简指令集特征, 从指令级微观角度评估
                 算子在基础指令层面的适配质量; 内存层面度量对应                 RISC-V  的内存容量限制和简化内存管理机制, 从存储子系
                 统角度评估算子的资源利用效率; 系统层面度量对应                 RISC-V  在多核协调和系统调用处理方面的简化特征, 从操
                 作系统级宏观角度评估算子的系统协调能力. 这                4  个层面具有高度互补性和完整性, 覆盖了从纯软件逻辑到软硬
                 件交互的完整评估链条, 相互独立又相互补充, 避免了传统单一功能测试的评估盲区, 这些指标从不同维度刻画算
                 子在  RISC-V  架构下的适配质量, 为后续的差分测试分析提供多元化的量化基础.
                  2.3.1    精度层面
                    精度层面度量主要评估算子在            RISC-V  架构上的数值计算正确性表现, 重点关注交叉编译、静态链接等
                 RISC-V  特有部署方式对计算准确性的潜在影响. RIVdoo           采用算子精度损失来衡量深度学习算子部署到                 RISC-V
                 架构时在精度层面的表现, 通过比较算子在              RISC-V  环境下的输出结果与开发环境基准的一致性进行评估, 采用
                 均方根误差作为精度偏差的度量标准:

                                                       v
                                                       t
                                                        1  n ∑(        ) 2
                                                 Loss i =    O RISC-V  −O x86  ,
                                                                     ( j)
                                                              ( j)
                                                        n
                                                          j=1
                                       i
                 其中,  Loss i  表示复杂度层级   的部署损失,    n 为算子输出张量的元素总数,         O RISC-V   和  O x86   分别为第  j 个输出元素在
                                                                           ( j)    ( j)
                 RISC-V  部署平台和开发平台的计算结果, 能够有效捕获算子在跨架构部署过程中的数值精度变化. 在                            RISC-V  的
                 交叉编译环境中, 编译器优化过程可能引入计算逻辑偏差, 静态链接过程中数学库函数实现存在细微差异, 而
                 RISC-V  浮点单元的精度特性也可能导致数值计算偏差. 当算子精度损失超出预期范围时, 通常反映算子实现在
                 RISC-V  编译或运行环境下存在功能层面的适配问题.
                  2.3.2    效率层面
                    效率层面采用      CPU  时间作为核心度量指标, 重点评估算子在            RISC-V  架构上的执行效率表现, 主要关注算子
                 实现的时间性能和稳定性特征. CPU          时间直接反映算子在        RISC-V  平台上的计算效率水平, 该指标以毫秒为单位
                 记录算子执行过程中消耗的          CPU  时间. 算子实现对    RISC-V  指令集特性利用不充分、编译优化策略不当导致的
                 指令级效率损失, 以及算法实现复杂度过高而不适应                 RISC-V  资源约束环境都会导致      CPU  时间延长.
                  2.3.3    内存层面
                    内存层面采用常驻内存和缺页率作为核心度量指标, 主要评估算子的内存资源管理表现, 重点关注                                 RISC-V
                 有限内存环境下的适配质量.
                    常驻内存用于刻画算子执行过程中的常驻内存峰值特征, 通过监控                      RSS  的最大值进行统计, 该指标以        MB  为
                 单位记录算子执行过程中常驻内存的峰值大小. 内存分配策略设计不当导致的资源浪费、临时数据生命周期管理
   74   75   76   77   78   79   80   81   82   83   84