Page 74 - 《软件学报》2025年第9期
P. 74

软件学报 ISSN 1000-9825, CODEN RUXUEW                                        E-mail: jos@iscas.ac.cn
                 2025,36(9):3985−4005 [doi: 10.13328/j.cnki.jos.007360] [CSTR: 32375.14.jos.007360]  http://www.jos.org.cn
                 ©中国科学院软件研究所版权所有.                                                          Tel: +86-10-62562563



                                                                            *
                 面向    RISC-V     向量扩展的高性能算法库优化方法

                 韩柳彤  1,2 ,    张洪滨  1,2 ,    邢明杰  1 ,    武延军  1 ,    赵    琛  1


                 1
                  (中国科学院 软件研究所, 北京 100190)
                 2
                  (中国科学院大学, 北京 100049)
                 通信作者: 武延军, E-mail: yanjun@iscas.ac.cn

                 摘 要: 高性能算法库可以通过向量化的方式高效地利用单指令多数据                        (SIMD) 硬件的能力, 从而提升其在        CPU
                 上的执行性能. 其中, 向量化的实现需要使用目标 SIMD 硬件的特定编程方法, 而不同                      SIMD  扩展的编程模型和编
                 程方法均存在较大差异. 为了避免优化算法在不同平台上的重复实现, 提高算法库的可维护性, 在高性能算法库的
                 开发过程中通常需要引入硬件抽象层. 由于目前主流                  SIMD  扩展指令集均被设计为具有固定长度的向量寄存器,
                 多数硬件抽象层也是基于定长向量的硬件特性而设计, 无法包含                     RISC-V  向量扩展所引入的可变向量寄存器长度
                 的硬件特性. 而若将      RISC-V  向量扩展视作定长向量扩展引入现有硬件抽象层设计中, 会产生不必要的开销, 造成
                 性能损失. 为此, 提出了一种面向可变长向量扩展平台和固定长度                    SIMD  扩展平台的硬件抽象层设计方法. 基于此
                 方法, 重新设计和优化了        OpenCV  算法库中的通用内建函数, 使其在兼容现有             SIMD  平台的基础上, 更好地支持
                 RISC-V  向量扩展设备. 将采用优化方法的         OpenCV  算法库与原版算法库进行性能比较, 实验结果表明, 运用该方
                 法设计的通用内建函数能够将           RISC-V  向量扩展高效地融入算法库的硬件抽象层优化框架中, 并在核心模块中获
                 得  3.93  倍的性能提升, 显著优化了高性能算法库在          RISC-V  设备上的执行性能, 从而验证了该方法的有效性. 此外,
                 工作已经开源并被       OpenCV  社区集成到其源代码之中, 证明了方法的实用性和应用价值.
                 关键词: RISC-V 向量扩展; 数据级并行; 高性能库优化; 开源计算机视觉算法库                  (OpenCV)
                 中图法分类号: TP316

                 中文引用格式: 韩柳彤,  张洪滨,  邢明杰,  武延军,  赵琛.  面向RISC-V向量扩展的高性能算法库优化方法.  软件学报,  2025,  36(9):
                 3985–4005. http://www.jos.org.cn/1000-9825/7360.htm
                 英文引用格式: Han LT, Zhang HB, Xing MJ, Wu YJ, Zhao C. Optimization Method for High-performance Libraries Targeting RISC-V
                 Vector  Extension.  Ruan  Jian  Xue  Bao/Journal  of  Software,  2025, 36(9): 3985–4005  (in  Chinese).  http://www.jos.org.cn/1000-9825/
                 7360.htm

                 Optimization Method for High-performance Libraries Targeting RISC-V Vector Extension
                            1,2             1,2           1          1          1
                 HAN Liu-Tong , ZHANG Hong-Bin , XING Ming-Jie , WU Yan-Jun , ZHAO Chen
                 1
                 (Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)
                 2
                 (University of Chinese Academy of Sciences, Beijing 100049, China)
                 Abstract:  The  performance  acceleration  of  high-performance  libraries  on  CPUs  can  be  achieved  by  leveraging  SIMD  hardware  through
                 vectorization.  Implementing  vectorization  requires  programming  methods  tailored  to  the  target  SIMD  hardware,  which  vary  significantly
                 across  different  SIMD  extensions.  To  avoid  redundant  implementations  of  algorithm  optimizations  on  various  platforms  and  enhance  the
                 maintainability  of  algorithm  libraries,  a  hardware  abstraction  layer  (HAL)  is  often  introduced.  However,  most  existing  HAL  designs  are
                 based  on  fixed-length  vector  registers,  aligning  with  the  fixed-length  nature  of  conventional  SIMD  extension  instruction  sets.  This  design


                 *    基金项目: 中国科学院战略性先导科技专项 (A   类) (XDA0320200)
                  本文由“RISC-V  系统软件及软硬协同技术”专题特约编辑武延军研究员、谢涛教授、侯锐研究员、张科正高级工程师、宋威副研究
                  员、邢明杰高级工程师推荐.
                  收稿时间: 2024-08-26; 修改时间: 2024-10-15, 2024-11-20; 采用时间: 2024-11-26; jos 在线出版时间: 2024-12-10
                  CNKI 网络首发时间: 2025-05-30
   69   70   71   72   73   74   75   76   77   78   79