摘要

低精度浮点数常用于深度学习加速,目前申威平台缺乏对低精度浮点数的支持,数学库的设计往往需要结合数据类型与处理器特点定制算法才能发挥出最大优势,旨在为申威1621平台设计一套支持半精度计算的超越函数。通过分析各类浮点数特性,结合申威1621的结构特点提出一种基于回乘取余查表算法。首先,对函数的定义域进行归约,生成精简的数据表;然后将回乘取余后的数值按照sign、exponent、mantissa三部分拆分计算索引;最后,查表返回结果。测试结果表明,使用回乘取余查表算法实现的半精度超越函数,相较于基于多项式近似、移位相加等算法的申威数学库及GLIBC开源数学库,性能分别提升了116%和215%。在精度需求不高的应用中既保证了正确性又大幅度提升了数学函数计算效率。