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

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


                 性能耗时包括编码时间        (x264)、单次操作时间     (SQLite3)、运算时间   (KissFFT)、压缩时间    (xz), 数值越小表明性
                 能越优; 数据处理速率       (GNU GSL、Pixman) 以单位时间处理的数据量或性能测试数值衡量, 数值越大表明性能
                 越优.
                    实验采用算能      SG2044  与进迭时空   K1  作为测试平台, SG2044   平台为   64  核心  RISC-V  架构  CPU; K1  平台为
                 8  核心  RISC-V CPU. 两平台均支持丰富的指令集扩展, 包括基础架构与核心扩展                 (RV64I、M、A、F/D、C, 提供
                 核心算术、逻辑运算及内存访问能力)、向量计算扩展                   (V  系列, 包含  V、Zve32f/Zve64d  等向量长度与数据类型
                 配置扩展及     Zvfh/Zvfhmin, 强化并行计算与    AI、图形处理效率)、位操作与内存优化扩展                (Zba/Zbb/Zbc/Zbs、
                 Zicbom/Zicboz、Zawrs, 提升位级运算与内存访问效率)、系统与控制扩展              (Zicsr、Zifencei、Zicntr、Zicond  等, 保
                 障系统稳定性与执行效率)、浮点增强扩展               (Zfa、Zfh/Zfhmin, 优化浮点运算性能)、压缩指令增强          (Zca/Zcb/Zcd,
                 提升压缩指令在特定场景的性能)、安全与特权扩展                 (Svinval、Svnapot 等, 增强系统安全性与内存管理效率) 以及
                 性能监控与调试扩展       (Zihpm, 支持细粒度性能分析与调试). 编译工具采用            llvm-project 的  main  分支  LLVM/Clang,
                 提交号为   2bcdfa198aa511479c46144c5cf95c7c685384ef (提交日期为  2025  年  6  月  19  日), 优化选项为-O3.
                    为验证所提方案的有效性, 两平台上实验均选取                5  种指令集扩展组合作为基准进行对比, 具体如下.
                    ● RV64GCV: 在  RV64GC  基础上增加向量扩展       (V), 用于评估向量指令对计算密集型软件的性能提升效果;
                 其完整   RISC-V  指令为  rv64imafdcv_zicsr_zifencei_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b.
                    ● RV64GV: 通过移除    RV64GCV  中的  C  扩展, 验证  C  扩展在特定场景下的性能影响; 其完整         RISC-V  指令为

                 rv64imafdv_zicsr_zifencei_zve32f_zve32x_zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b.
                    ● RV64GCV+B  扩展: 在  RV64GCV  基础上增加   Zba、Zbb、Zbc、Zbs 位操作扩展, 评估位操作指令与向量指
                 令的协同优化效果; 其完整         RISC-V  指令为  rv64imafdcv_zicsr_zifencei_zba_zbb_zbc_zbs_zve32f_zve32x_
                 zve64d_zve64f_zve64x_zvl128b_zvl32b_zvl64b.
                    ● RVA23  子集: 基于  RISC-V RVA23 Profile 的子集  (包含  rv64imafdcv、Zicbom  等扩展), 验证新指令集标准
                 的性能潜力; 其完整      RISC-V  指令为: rv64imafdcv_zicbom_zicboz_zicntr_zicond_zicsr_zihintntl_zihintpause_
                 zihpm_zawrs_zfa_zfhmin_zca_zcb_zcd_zba_zbb_zbs_zve32f_zve32x_zve64d_zve64f_zve64x_zvfhmin.
                    ● SG2044  和  K1  全指令扩展: 涵盖算能   SG2044  或进迭时空   K1  支持的所有指令扩展, 作为理论性能上限的参
                 考基准. SG2044  平台完整    RISC-V  指令为: rv64imafdcv_zicbom_zicboz_zicntr_zicond_zicsr_zifencei_zihintntl_
                 zihintpause_zihpm_zawrs_ zfa_zfh_zfhmin_zca_zcb_zcd_zba_zbb_zbc_zbs_zve32f_zve32x_zve64d_zve64f_zve64x_
                 zvfh_zvfhmin_sscofpmf_sstc_svinval_svnapot_svpbmt; K1  平台完整的  RISC-V  指令为: rv64imafdcv_zicbom_
                 zicboz_zicntr_zicond_ zicsr_zifencei_zihintpause_zihpm_zfh_zfhmin_zca_zcd_zba_zbb_zbc_zbs_zkt_zve32f_zve32x_
                 zve64d_zve64f_zve64x_zvfh_zvfhmin_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt.
                    通过对比不同指令集扩展组合的性能差异, 可直接反映向量扩展、位操作扩展等指令集特性对软件性能的实
                 际影响. 实验中, 采用多次测试取中位数           (如  KissFFT  重复  11  次) 的方式减少随机误差, 并通过一致性验证确保测
                 试数据的可靠性. 若某指令集扩展组合在目标软件上的性能指标显著优于其他组合                            (如耗时降低或速率提升超过
                 预设阈值), 则表明该组合更适用于此类软件的优化场景.
                  4.3   实验方法
                    本实验以    6  款代表性软件    (x264、GNU GSL、SQLite3、Pixman、KissFFT、xz) 为测试对象, 在算能科技
                 SG2044  平台与进迭时空    K1  上开展性能测试, 重点对比        6  种指令集扩展组合     (RV64GC、RV64GCV、RV64GV、
                 RV64GCV+B  扩展、RVA23 子集、SG2044 和     K1 全指令扩展) 对软件性能的影响. 实验中           x264 [35] 、GNU GSL [36] 、
                 SQLite3 [37] 、KissFFT [38] 使用开源基准测试; Pixman 使用  Pixman 软件包自带的  lowlevel-blt-bench 命令, 具体命令为
                 lowlevel-blt-bench pixbuf; xz 测试方法为压缩  openEuler 24.03 SP1 RISC-V  版中的/usr/lib64/libLLVMRISCVCodeGen.a
                 文件, 该文件大小约      25 MB.
                    采用两种测试路径: 一是直接编译测试, 使用            LLVM/Clang (提交号  2bcdfa198aa511479c46144c5cf95c7c685384ef,
   36   37   38   39   40   41   42   43   44   45   46