摘要

不同于传统的标量数学计算,向量数学库提供的加速比高,能够充分利用飞腾M6678的并行计算能力。文章比较了现有的数学函数库,包括标准C数学函数库和TI公司的MAHLIB函数库的运算性能,发现MATHLIB函数库部分函数向量化程度低,可向量化的空间较大。向量函数库选择级数法实现,为使用飞腾M6678的指令集RCPSP和RSQRSP,引入了牛顿迭代法。以开平方运算为例,文章通过深入分析单次循环体内资源占用的情况,详细说明了如何确定一个函数的计算瓶颈。根据瓶颈的不同,选择对应的SIMD优化方法,以及基于飞腾M6678硬件特性的优化方法,构建了一个高性能的向量数学库。测试结果表明,向量数学库典型函数的性能提升可达150%至700%。