Page 40 - 《软件学报》2021年第8期
P. 40

2322                                   Journal of Software  软件学报 Vol.32, No.8,  August 2021

                 2.2   HPL性能模型.
                    在已有的 CPU HPL 建模分析的基础上          [14,16−19] ,我们提出了适应于处理器-加速器异构架构的 HPL 性能模型.
                 在具体介绍我们的 HPL 性能模型之前,我们先给出一些符号及其含义,大部分符号采取与文献[17]中一致的名称.
                 矩阵 A 是 N×(N+1)的系数矩阵,以 NB×NB 的块大小均匀分布在 P×Q 的二维进程网格中,mp×nq 表示每个进程处理
                 的子矩阵的大小. f fact 表示 panel 分解中浮点操作的比例,P cpu 和 E cpu 分别表示国产处理器双精度浮点峰值性能和浮
                 点操作的效率,P acc 表示国产加速器双精度浮点峰值性能,E dgemm 和 E dtrsm 分别表示国产加速器上 DGEMM 和
                 DTRSM 的效率,网络延迟为 Lat s,带宽为 BW byte/s.对于 panel 分解子过程,我们通过估计子过程中矩阵乘的计算量
                 乘以一个系数来估计整体的浮点计算量,式(2)给出了这一子过程的时间估计.其中需要特别指出的是,我们将 panel
                 分解中大矩阵放到国产加速器上进行计算,这在式(2)的分母中体现了出来.
                                                                 ×
                                                             ×
                                                  T  =  f fact  ×  mp NB NB                           (2)
                                                   fact  P  ×  E
                                                        cpu|acc  cpu|dgemm
                    对于 panel 广播算法的选择,我们实现中采用的是 HPL 软件包中复杂度较低的 Long 算法.它的复杂度为 log
                 级别,体现在式(3)前半部分的系数.每次广播,我们需要传输大小为 NB×NB 的 L 11 和 mp×NB 的 L 12 以及少量索引,
                 这些数据均为双精度类型(8 字节),公式的后半部分给出了每一跳(从一个节点传往下一个节点)的时间估计.式
                 (3)给出了对这一过程的时间估计.
                                        ⎛  log Q  1  ⎞        mp NB×  +  NB NB×  +  NB +  1
                                   T   =    2  + ⎜  +  1 ×  (Lat + ⎟  8×           )                  (3)
                                    bcast
                                        ⎝  2    Q   ⎠                  BW
                    行交换时间的估计方式与 panel 广播的估计方式类似,区别在于采取的算法和传输的数据量不同.出于避免
                 冗余数据传输的目的,行交换采用的是 spread-roll 算法           [11] ,式(4)给出了这一子过程的时间估计.
                                                            ⎛  log P  ⎞      NB
                                       T swap  =  (log P +  2  P −  1) Lat +  ×  ⎜  2  +  2 ×  ⎟  8 nq×  ×  (4)
                                                            ⎝  2     ⎠       BW
                    尾矩阵更新的过程主要是在国产加速器上执行两个 BLAS 库函数 DGEMM 和 DTRSM,其计算量分别是
                 2 mp nq NB×  ×  ×  和 nq NB NB×  ×  .式(5)给出了尾矩阵更新的时间估计.
                                                  2 mp nq NB×  ×  ×  nq NB NB×  ×
                                            T    =             +                                      (5)
                                             update  P ×  E      P ×  E
                                                     acc  dgemm   acc  dtrsm
                    性能模型中参数的值,我们分为两类.一类是可以预知的,比如问题的规模,分块的大小以及硬件的峰值浮
                 点性能等等,对于这一类参数,我们根据系统硬件以及求解问题的实际规模设定好对应的值;另一类是不可以预
                 知的,比如双精度矩阵乘的效率可能和矩阵的规模相关,网络的实际带宽和延迟可能受发送的数据量的影响等
                 等,对于这一类参数,我们通过小规模实际测试给出其实测值.
                    我们用 TOP500 榜单中排名靠前的与国产处理器-国产加速器类似的异构系统,如 Summit                         [20] 、Serria [21] 、
                 ABCI [22] 以及曙光 E 级超算原型机对上述 HPL 性能预测模型进行了检验,结果见表 1                  [17] .在大规模系统 HPL 性
                 能预测的准确性上,最大误差值不到 5%.可以看到,我们建立的国产处理器-国产加速器异构 HPL 性能模型较为
                 准确,可以给将来 E 级机的建造提供参考.
                                       Table 1    TOP500 supercomputer performance prediction
                                              表 1   TOP500 超级计算机性能预测
                                                            网络带宽          峰值性能    实测性能    预测性能
                    TOP 500     超算             节点配置                节点数                            误差
                                                             (Gb/s)       (PFLOPS)  (PFLOPS)  (PFLOPS)
                                           2*IBM POWER AC922
                      v        Summit                         200   4 608  200.8   143.5    140.6  <2%
                                             6*NVIDIA V100
                                           2*IBM POWER AC922
                      2         Sierra                        200   4 320  125.7    94.6    92.8  <2%
                                             4*NVIDIA V100
                                           2*Intel Xeon Gold 6148
                      7         ABCI                          200   1 088   32.6    19.8    20.8  <5%
                                             4*NVIDIA V100
                                              2*国产处理器
                           曙光 E 级超算原型机                        200    512    3.2     2.3     2.2   <5%
                                              1*国产加速器
   35   36   37   38   39   40   41   42   43   44   45