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 内外区划分