EPCC实验室投递的论文"BLAD: Adaptive Load Balanced Scheduling and Operator Overlap Pipeline For Accelerating The Dynamic GNN Training"被高性能计算,体系结构领域顶级会议The International Conference for High Performance Computing, Networking, Storage, and Analysis (SC 2023)录用。今年SC收到376篇投稿,接收90篇,录用率为23.9%。
距离正式会议交流和论文公布还有一段时间,我们在这里提前放出内容前瞻,对接受论文进行介绍。
论文标题: BLAD: Adaptive Load Balanced Scheduling and Operator Overlap Pipeline For Accelerating The Dynamic GNN Training
作者: Kaihua Fu, Yuzhuo Yang, Quan Chen, Jiuchen Shi, Chao Li, Minyi Guo.
工作简介:
图神经网络(GNN)广泛应用于基于图的智能应用(例如推荐系统、流量预测)。由于图结构在现实生活中通常会随着时间的推移而演变,研究人员已经开发了许多动态 GNN(例如 LRGCN、TGCN、A3TGCN)来编码和分析时间关系数据。主流的工业 GNN 框架也开始支持在时间演化图数据上训练动态 GNN 模型。但根据调研,我们发现,由于通信开销、长时间同步和资源利用率低,之前训练这些网络的工作效率低下。
我们的调研表明,动态图的训练效率低下的原因主要有3点。其一,GPU设备之间频繁的通信导致较高的开销。其二,动态图快照通常被分组以在分布式GPU集群中提供可扩展的训练。当前的快照分区方法使用静态策略进行分区,其中每个 GPU 处理相同数量的快照。该解决方案忽略了由于不同快照之间的工作负载变化而产生的性能差异。这导致不同的GPU中训练快照负载所需的时间不均衡。其三,先前的工作以顺序方式运行 GNN 模型拓扑。然而,动态 GNN 模型中的顺序执行可能会导致 GPU 利用率较低。这是因为动态 GNN 模型包含计算敏感的基于 NN 的运算符和具有不规则随机访问模式的内存密集型图运算符。当运算符依次执行时,流式多处理器(SM)或 GPU 的全局内存带宽在训练期间处于空闲状态。
面对以上问题,我们提出了一个名为BLAD的运行时方案。它包括一个两级负载调度程序和一个重叠感知拓扑管理器。在BLAD中,每个 GPU 上启动两个进程来处理快照组,以实现并发重叠算子执行。在这种情况下,负载调度器会分析每个待处理快照组的负载,并将快照组分配给GPU。对于每个GPU,它进一步将每个组中的快照分配给其进程。拓扑管理器调整 GNN 中图操作和神经网络操作的执行顺序,以最大化来自不同进程的图操作和神经网络操作的重叠。我们同时证明,调整算子的顺序时,训练结果不会受到影响。 我们的实验表明,BLAD能够有效提升动态图模型在多GPU集群中的训练效率。与最先进的动态图训练方案相比,BLAD有效地将训练动态 GNN 模型的吞吐量提高了27.2%,并且不影响最终的训练精度。