| 引用本文: | 胡怡,陈道琨,杨超,刘芳芳,马文静,尹万旺,袁欣辉,林蓉芬.面向SW26010-Pro的1、2级BLAS函数众核并行优化技术.软件学报,2023,34(9):4421-4436 |
| |
|
| |
|
|
| 本文已被:浏览 1724次 下载 4077次 |
 码上扫一扫! |
|
|
| 面向SW26010-Pro的1、2级BLAS函数众核并行优化技术 |
|
胡怡1,2, 陈道琨1,2, 杨超3, 刘芳芳1,2, 马文静1,2, 尹万旺4, 袁欣辉4, 林蓉芬4
|
|
1.中国科学院 软件研究所 并行软件与计算科学实验室, 北京 100190;2.中国科学院大学, 北京 100049;3.北京大学 数学科学学院, 北京 100871;4.国家并行计算机工程技术研究中心, 北京 100190
|
|
| 摘要: |
| BLAS (basic linear algebra subprograms)是高性能扩展数学库的一个重要模块, 广泛应用于科学与工程计算领域. BLAS 1级提供向量-向量运算, BLAS 2级提供矩阵-向量运算. 针对国产SW26010-Pro众核处理器设计并实现了高性能BLAS 1、2级函数. 基于RMA通信机制设计了从核归约策略, 提升了BLAS 1、2级若干函数的归约效率. 针对TRSV、TPSV等存在数据依赖关系的函数, 提出了一套高效并行算法, 该算法通过点对点同步维持数据依赖关系, 设计了适用于三角矩阵的高效任务映射机制, 有效减少了从核点对点同步的次数, 提高了函数的执行效率. 通过自适应优化、向量压缩、数据复用等技术, 进一步提升了BLAS 1、2级函数的访存带宽利用率. 实验结果显示, BLAS 1级函数的访存带宽利用率最高可达95%, 平均可达90%以上, BLAS 2级函数的访存带宽利用率最高可达98%, 平均可达80%以上. 与广泛使用的开源数学库GotoBLAS相比, BLAS 1、2级函数分别取得了平均18.78倍和25.96倍的加速效果. LU分解、QR分解以及对称特征值问题通过调用所提出的高性能BLAS 1、2级函数取得了平均10.99倍的加速效果. |
| 关键词: BLAS 1级 BLAS 2级 访存带宽 SW26010-Pro众核处理器 RMA通信 点对点同步 自适应优化 |
| DOI:10.13328/j.cnki.jos.006527 |
| 分类号: |
| 基金项目:国家重点研发计划(2020YFB0204601) |
|
| Many-core Optimization of Level 1 and Level 2 BLAS Routines on SW26010-Pro |
|
HU Yi1,2, CHEN Dao-Kun1,2, YANG Chao3, LIU Fang-Fang1,2, MA Wen-Jing1,2, YIN Wan-Wang4, YUAN Xin-Hui4, LIN Rong-Fen4
|
|
1.Laboratory of Parallel Software and Computational Science, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China;2.University of Chinese Academy of Sciences, Beijing 100049, China;3.School of Mathematical Sciences, Peking University, Beijing 100871, China;4.National Research Center of Parallel Computer Engineering and Technology, Beijing 100190, China
|
| Abstract: |
| BLAS (basic linear algebra subprograms) is an important module of the high-performance extended math library, which is widely used in the field of scientific and engineering computing. Level 1 BLAS provides vector-vector operation, Level 2 BLAS provides matrix-vector operation. This study designs and implements highly optimized Level 1 and Level 2 BLAS routines for SW26010-Pro, a domestic many-core processor. A reduction strategy among CPEs is designed based on the RMA communication mechanism, which improves the reduction efficiency of many Level 1 and Level 2 BLAS routines. For TRSV and TPSV and other routines that have data dependencies, a series of efficient parallelization algorithms are proposed. The algorithm maintains data dependencies through point-to-point synchronization and designs an efficient task mapping mechanism that is suitable for triangular matrices, which reduces the number of point-to-point synchronizations effectively, and improves the execution efficiency. In this study, adaptive optimization, vector compression, data multiplexing, and other technologies have further improved the memory access bandwidth utilization of Level 1 and Level 2 BLAS routines. The experimental results show that the memory access bandwidth utilization rate of the Level 1 BLAS routines can reach as high as 95%, with an average bandwidth of more than 90%. The memory access bandwidth utilization rate of Level 2 BLAS routines can reach 98%, with an average bandwidth of more than 80%. Compared with the widely used open-source linear algebra library GotoBLAS, the proposed implementation of Level 1 and Level 2 BLAS routines achieved an average speedup of 18.78 times and 25.96 times. With the optimized Level 1 and Level 2 BLAS routines, LQ decomposition, QR decomposition, and eigenvalue problems achieved an average speedup of 10.99 times. |
| Key words: level 1 BLAS level 2 BLAS memory access bandwidth Sunway 26010-Pro many-core processor RMA communication point-to-point synchronization adaptive optimization |
|
|
|
|