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

刘芳芳  等:国产异构系统上的 HPCG 并行算法及高效实现                                                  2347






















                                               Fig.7    Propagation of dependence
                                                      图 7   依赖传递

                 5    异构部件任务划分

                    国产超级计算机每个节点包括 CPU、GPU 等部件,CPU、GPU 均拥有独立的内存.HPCG 的数据生成
                 部分耗时较多,本文使用 GPU 进行矩阵、向量和其他信息生成,并拷贝回 CPU 进行参考版的计算.所有优
                 化版需要的矩阵、向量等常驻 GPU 设备内存.整个任务划分时需考虑 CPU 和 GPU 的任务分工.由于 GPU
                 拥有比 CPU 更高的访存带宽,更多的计算资源,所以应该尽量把任务放到 GPU 上计算.这样就有两种可能
                 的方案:
                    1.  将所有计算任务全部放到 GPU 上,CPU 不参与计算,只负责通信.
                    2.  将大部分计算任务放到 GPU 上,CPU 并行执行小部分计算任务同时负责通信.
                    第 2 种方案实际执行时需要 CPU 和 GPU 不断地传输新的计算数据,而这种传输开销较大,传输 256×
                 256×256 规模的向量 x 约需 0.035s,而计算一次 SpMV 的时间仅为 0.008 78s,传输开销远大于计算开销,得不偿
                 失.本文采用第 1 种方案,并且通过内外区划分将 CPU 通信与 GPU 内区的计算进行重叠,如图 8 所示,具体介绍
                 见第 7 节.























                                          Fig.8    Partitioning of inner areas and outer areas
                                                     图 8   内外区划分
   60   61   62   63   64   65   66   67   68   69   70