APP下载

异构HPL算法中CPU端高性能BLAS库优化∗

2021-11-09孙成国杜朝晖刘子行康梦博李双双

软件学报 2021年8期
关键词:指令优化

蔡 雨,孙成国,杜朝晖,刘子行,康梦博,李双双

(信息技术有限公司,江苏 苏州 215000)

BLAS(basic linear algebra subprograms)是基本线性代数子程序的缩写,是目前应用广泛的核心线性代数数学库.随着不断的发展完善,BLAS 在高性能计算、科学和工程领域都得到了广泛的应用.由于不同厂商、不同体系结构下的CPU 差异较大,通用BLAS 函数库不能达到很好的性能.因此,在大规模矩阵运算时,针对不同CPU 的架构特点来优化BLAS,可以充分发挥处理器的计算性能,从而使计算效率大大提升.目前主流的BLAS分为专用和通用两种.专用型BLAS 是由特定的CPU 公司开发,针对特定平台芯片进行代码优化,极大地提高了性能,Intel 的MKL 和AMD 的ACML 就是此种类型.通用BLAS 由非盈利机构开发,不同平台都可以对开源代码进行优化,最具代表性的是ATLAS[1]、GotoBLAS[2,3]和OpenBLAS[4,5].

BLIS(BLAS-like library instantiation software)数学库是美国Texas 大学超算中心高性能组开发的开源架构,是在GotoBLAS 的基础上进行了改写和优化,具有可移植性、易用性和模块化设计易于开发的特点,支持混合类型矩阵存储和多线程[6].文献[7]提出了BLIS 架构,并做了全面的介绍;文献[8]研究了如何使用BLIS 在通用、低功耗和多核架构中实现高效的level-3 级BLAS 函数;文献[9]系统地探讨了矩阵乘法算法在BLIS 五层循环中并行化的机会.BLIS 具有的这些特性使其更容易针对具体平台进行BLAS 优化开发.BLAS 包含三级函数,分别为第1 级向量与向量计算,第2 级向量与矩阵计算,第3 级矩阵与矩阵的计算,其中第3 级函数DGEMM 计算量最大,可以达到理论计算量的95%以上[10],因此三级函数的优化是性能……

登录APP查看全文

猜你喜欢

指令优化
听我指令:大催眠术
超限高层建筑结构设计与优化思考
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
由“形”启“数”优化运算——以2021年解析几何高考题为例
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
杀毒软件中指令虚拟机的脆弱性分析
基于低碳物流的公路运输优化