论文部分内容阅读
BLAS是科学计算中最基础的数学库之一,各CPU厂商都推出了针对各自CPU的优化的BLAS库。龙芯CPU是中科院计算所自主研制的通用CPU,目前已推出了龙芯3号系列。本文介绍了我们发起的基于GotoBLAS 2-1.13 BSD版的开源项目OpenBLAS,针对龙芯3A CPU的优化工作。在BLAS 3级函数的单线程优化上,运用了分块,手工核心汇编,使用龙芯3号128 bits访存指令和预取指令,汇编指令重排等技术。BLAS 3级函数平均性能高于GotoBLAS和ATLAS 75%和17%,其中,双精度函数高于GotoBLAS和ATLAS 103%和36%。在BLAS 3级函数并行化方面,采用数据缓冲区交错布局等技术,减少多线程对共享L2 Cache的争抢。 OpenBLAS BLAS 3级函数的4线程并行加速比达到3.47。 4线程BLAS 3级函数平均性能高于GotoBLAS和ATLAS 69%和34%,其中,双精度函数高于GotoBLAS和ATLAS 89%和55%。