OpenBLAS:龙芯3A CPU的高性能BLAS库
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%。
科学计算 数学库 单线程优化 汇编指令重排 通用CPU
张先轶 王茜 张云泉
中国科学院软件研究所 并行软件与计算科学实验室,北京 100190 中国科学院研究生院,北京 100190 中国科学院软件研究所 并行软件与计算科学实验室,北京 100190 中国科学院 计算机科学国家重点实验室,北京 100190
国内会议
2011年全国高性能计算学术年会(HPC china2011)
济南
中文
1-9
2011-10-26(万方平台首次上网日期,不代表论文的发表时间)