摘要
BLAS库作为高性能计算中最基本的数学库,对高性能计算机平台上的数值计算、人工智能等领域应用都起着重要作用。BLAS3级函数GEMM是整个BLAS库性能的核心指标。目前,还没有能够充分发挥申威1621平台优势的高性能BLAS库。针对上述问题,在申威1621平台上,实现了GotoBLAS的移植与优化。提出了一种使用SIMD向量化进行核心代码优化的算法实现,为满足向量优化的算法实现分别进行了数据重排、计算数据块选择、浮点寄存器分配、向量化指令改写等优化技术。分别比较了SGEMM和DGEMM在Micro-kernel中使用cache行和使用向量化优化的最优数据块选择方案。实验结果表明,优化后最佳分块下的SGEMM单核性能比GotoBLAS单核单精度浮点数平均加速52.09倍,DGEMM单核性能比GotoBLAS单核双精度浮点数平均加速32.75倍。
- 单位