摘要:BLAS (basic linear algebra subprograms)是最基本、最重要的底层数学库之一. 在一个标准的BLAS库中, BLAS 3级函数涵盖的矩阵-矩阵运算尤为重要, 在许多大规模科学与工程计算应用中被广泛调用. 另外, BLAS 3级属于计算密集型函数, 对充分发挥处理器的计算性能有至关重要的作用. 针对国产SW26010-Pro处理器研究BLAS 3级函数的众核并行优化技术. 具体而言, 根据SW26010-Pro的存储层次结构, 设计多级分块算法, 挖掘矩阵运算的并行性. 在此基础上, 基于远程内存访问 (remote memory access, RMA)机制设计数据共享策略, 提高从核间的数据传输效率. 进一步, 采用三缓冲、参数调优等方法对算法进行全面优化, 隐藏直接内存访问 (direct memory access, DMA)访存开销和RMA通信开销. 此外, 利用SW26010-Pro的两条硬件流水线和若干向量化计算/访存指令, 还对BLAS 3级函数的矩阵-矩阵乘法、矩阵方程组求解、矩阵转置操作等若干运算进行手工汇编优化, 提高了函数的浮点计算效率. 实验结果显示, 所提出的并行优化技术在SW26010-Pro处理器上为BLAS 3级函数带来了明显的性能提升, 单核组BLAS 3级函数的浮点计算性能最高可达峰值性能的92%, 多核组BLAS 3级函数的浮点计算性能最高可达峰值性能的88%.