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

孙乔  等:面向异构计算机平台的 HPL 方案                                                         2335


                 3.2   Hetero-HPL操作映射
                    在 Update 阶段,HPL 算法主要涉及 3 种操作:(1) (分布式)行交换;(2)  上三角矩阵更新 dtrsm;(3)  尾子
                 矩阵乘更新 dgemm.而在具有多设备的异构众核平台上,数据在 Host 及 Device 之间数据一致性也需要通过
                 数 据传递 来实 现 . 因此 , 我们 在 MD_Mapping 框架 上实现 了 MD_Primitive 库 .MD_Primitive 层以
                 MD_Mapping 提供的子矩阵描述符为操作对象,调用所有相关协处理器协同(并行)完成施加于目标子矩阵
                 的操作,如数据传递,三角矩阵更新和矩阵乘更新等.另外,MD_Primitive 中的函数调用接口皆为异步接口,
                 可以方便实施多操作重叠执行.在具备 MD_Mapping 框架及 MD_Primitive 库之后,Hetero-HPL 的大致程序
                 结构如图 6 所示,其中,绿色字体代表同步调用,红色字体代表异步调用.
                    在整体算法开始之前 ,MD_Mapping 已经完成了对初始系统 Ax=b 的映射 , 生成映射实例
                 MatrixMapping.由于 Hetero-HPL 主要对 HPL 算法的 Update 阶段进行了重构,因此我们围绕 Update 阶段进
                 行阐述,其伪代码如图 6 左侧所示.通过 MatrixMapping 实例,程序获取两个子矩阵描述符(第 3 行~第 6 行),
                 分别为 NextPanel(下一 Panel)及 TrailingMatrix(尾子矩阵).这两个子矩阵实例的实际数据分布细节被
                 MD_Mapping 框架屏蔽.MD_Mapping 为每个设备预留了数据缓存 L(可进一步划分为 L1 和 L2)用来放置分
                 解完毕的 Panel 数据.各个子矩阵实例可按需要分配属于自身的 Device 端数据缓存 U.数据缓存 L 及 U 将
                 在接下来的步骤中使用,包括行交换(第 11 行及第 18 行),上三角矩阵更新(第 12 行及第 19 行)和矩阵乘更
                 新(第 13 行及第 20 行).这些步骤由 MD_Primitive 库中函数实现.我们将施加于 NextPanel 的所有运算完成
                 之后,开启异步传输(第 15 行),从对应的设备上将 NextPanel 的数据拷贝回 Host 端内存,进而完成下一次
                 Panel 分解操作.与此同时,对 TrailingMatrix 的上三角矩阵更新及矩阵乘更新可以通过异步接口与下一次
                 Panel 分解并行执行,如图 6 右侧所示.























                              Fig.6    Pesudo-code of Hetero-HPL based on MD_Mapping and MD_Primitive
                                 图 6   基于 MD_Mapping 及 MD_Primitive 实现的 Hetero-HPL 伪代码

                 4    面向异构平台的实现及优化

                 4.1   突破锁页内存分配大小限制
                    在现在主流异构平台上,Host 端内存和 Device 端协处理器内存的数据交换主要通过 PCI-e 总线完成.若
                 要尽可能充分地利用 PCI-e 总线的带宽(约 32GB/s,全双工)则需要在 Host 端开辟锁页内存(pinned memory).
                 锁页内存的最大特点是其不会被操作系统换出到硬盘交换区,以便于设备端建立物理地址映射,因此对协处
                 理器来说可以通过 DMA 机制高速访问.相比于以常规方式申请的内存空间来说,锁页内存能够拥有 2~3 倍的
   48   49   50   51   52   53   54   55   56   57   58