计算机工程与科学 ›› 2023, Vol. 45 ›› Issue (09): 1532-1543.
李飞,郭绍忠,周蓓,宋广辉,郝江伟,许瑾晨
LI Fei,GUO Shao-zhong,ZHOU Bei,SONG Guang-hui,HAO Jiang-wei,XU Jin-chen
摘要: 基础数学库作为计算机系统最基础的软件库之一,其性能是影响上层应用执行效率的主要因素之一。现有的RISC-V基础数学库虽然可以实现正确计算,但其源码中存在大量访存指令和冗余指令,导致函数性能不高;同时RISC-V数学函数的汇编代码量大,分支判断复杂,增加了直接优化的难度。针对上述问题,遵循从局部到整体的优化思路,提出了RISC-V数学函数的关键路径自动检测方法,重点解决对关键分支进行优化时其他分支寄存器依赖易被改变的问题。依据队列式寄存器分配策略,对同一路径内寄存器进行再分配,提高了寄存器利用率,最大限度地减少了访存指令数。此外,还对冗余指令进行了组合功能重构。实验结果表明,67个RISC-V数学函数由平均144个时钟周期优化为85个时钟周期,性能平均提升了29.61%。