Page 22 - 《软件学报》2021年第8期
P. 22
2304 Journal of Software 软件学报 Vol.32, No.8, August 2021
DGEMV 性能对整体性能的影响也仅次于 DGEMM.图 15 左侧为 DGEMV 性能,优化的 HBLIS 比 MKL 提升了
约 62%,比原 BLIS 提升了约 65%.图 15 右侧为 DTRSV 函数时间统计,原 BLIS 性能与 MKL 差距较大,经过优化
后的 BLIS 性能超过了 MKL.因为 DTRSV 计算量较小,在总时间中占比也相对很小.
Fig.15 Performance comparison of DGEMV and DTRSV calling different math libraries in heterogeneous HPL
图 15 异构 HPL 中调用不同数学库的 DGEMV 和 DTRSV 的性能对比
如图 16 所示为 DTRSM 和 IDMAX 函数性能对比.原生 BLIS 算法库中的三角矩阵求解 DTRSM 性能较差,
优化后的 DTRSM 性能与 MKL 基本一致.在 pfact 第 106 步~第 141 步的性能是超过 MKL 的,而在 panel 分解
最后段,MKL 运算更快,原因是 DTRSM 在切换到小 kernel 的 threshold 和动态多线程的 threshold 时,需要做进
一步的调整,以适应运算量的变化.IDMAX 函数主要是用于选主元操作,计算量可以忽略不计.
Fig.16 Performance comparison of DTRSM and IDAMAX calling different math libraries in heterogeneous HPL
图 16 异构 HPL 中调用不同数学库的 DTRSM 和 IDAMAX 的性能对比
如图 17 所示,Level-1 级 BLAS 函数 DSCAL 和 DCOPY 优化后的性能基本与 Intel MKL 一致.其中,DSCAL
优化后的性能比原生 BLIS 有大幅度提升,但在 panel 分解后段的性能还是略低于 MKL,原因是 MKL 使用的多
线程库 IOMP 比开源的 GOMP 在多线程启动、调度和动态多线程的切换上更加高效.而 DCOPY 代码实现简单,
优化空间非常有限,硬件平台性能直接决定了其时间开销,故可以看到三者 DCOPY 的性能基本一致.DAXPY 运
算只在回代(back substitution)过程中调用一次,性能影响可以忽略,故未列出详细对比.
Fig.17 Performance comparison of DSCAL and DCOPY calling different math libraries in heterogeneous HPL
图 17 异构 HPL 中调用不同数学库的 DSCAL 和 DCOPY 的性能对比