与图像和文本等结构化数据不同,图表示由顶点和边组成的多功能数据结构,能够有效捕捉不规则数据中的复杂关系。图神经网络(GNN)是专门为图数据设计的深度学习模型,能够直接处理图结构信息。因此,GNN在社交网络[33]、推荐系统[47]、知识图谱[52]、图像处理[30]和电子设计自动化[27]等领域得到了广泛应用。此外,GNN还可以与其他技术(如强化学习[21]和Transformers[50])结合,以进一步扩大其应用范围和发展潜力。
随着数据规模的快速增长,传统的GNN训练方法面临可扩展性挑战。尽管一些方法试图通过操作符级别的优化[13]、[14]、[15]、[16]、[17]、[18]、[19]、[20]、[21]、[22]、[23]、[24]、[25]、[26]、[27]、[28]、[29]、[30]、[31]、[32]、[33]、[34]、[35]来提高计算效率,但大规模图的计算和内存需求往往超出单个设备的容量[51]。分布式GNN通过利用多个设备,将大型图划分为较小的子图进行并行处理,从而克服了这些限制,提高了训练效率。根据不同的计算资源,分布式GNN训练系统可以分为四种类型[32]:(a) 单机多GPU系统、(b) GPU集群系统、(c) CPU集群系统和(d) 无服务器和边缘设备系统。其中,单机多GPU系统由于其高性能、简单性和成本效益而在实践中被广泛使用。
分布式GNN训练方法主要包括全批量[7]和小批量[9]。小批量训练使用图采样来减少内存消耗并扩展到大型图。然而,它引入了计算开销,存在丢失全局信息的风险,并且缺乏理论上的收敛保证[14]。相比之下,全批量训练保留了全局图信息,提供了稳定的梯度,并实现了更高的准确性[55],尽管代价是增加了通信和同步开销。
然而,图结构中的固有依赖性为高效的分布式GNN训练带来了额外的挑战[32]。例如,在以顶点为中心的分区下,一个晕圈顶点可能会出现在多个分区中,这需要跨分区通信来交换其特征,从而导致由于重复访问而产生的冗余通信。此外,大量的边界顶点和高维的顶点特征加剧了通信开销。此外,由于顶点分布不均,负载不平衡问题也会出现,现有的图划分方法未能解决这个问题,因为它们只关注平衡顶点数量而不考虑GPU性能差异。
为了解决这些挑战,我们提出了
CaPGNN,这是一种高效的
缓存和
划分框架,用于在单服务器上使用多GPU进行并行全批量GNN训练。我们引入了一种新的联合缓存策略来减少与边界顶点相关的通信冗余,并提出了一种考虑GPU性能差异的资源感知图划分算法,旨在减少通信和同步开销。我们的主要贡献总结如下:
•为了全面了解使用CPU和GPU进行的大规模GNN训练问题,我们进行了系统的研究。我们分享了我们的分析发现和思考,特别是关于边界顶点(即晕圈顶点)对并行GNN训练的影响。此外,我们以三个主要研究观察结果的形式总结了我们的发现,这些结果激发了这项工作。
•为了减少来自边界顶点的通信开销,我们提出了一种联合自适应缓存算法(JACA)。具体来说,我们利用CPU和GPU内存作为两级缓存,以最小化冗余的顶点通信,并优先缓存由分析模型评估的高重要性顶点。通过固定内存调度、轻量级缓存更新、预取和容错管道进一步优化了性能。
•为了最小化通信开销和同步成本,我们提出了一种资源感知划分算法(RAPA)。它结合了直观的指标来模拟GPU的通信和计算能力,并考虑了内存可用性。受图稀疏化的启发,它在图划分过程中调整晕圈顶点的规模,以减少通信开销同时保持准确性。
•为了全面评估所提出的CaPGNN,我们进行了广泛的实验。理论分析和实验结果都证实了CaPGNN的有效性。结果表明,CaPGNN显著提高了训练效率。我们进一步将CaPGNN扩展到了多机器多GPU环境,证明了其在分布式环境中的适用性。
本文的结构如下。第2节分析了相关工作。第3节解释了我们的动机。第4节详细描述了所提出的联合缓存策略和图划分算法。第5节描述了实验设置和比较研究。第6节我们分享了对于当前工作的局限性和未来探索方向的思考。最后,第7节总结了本文。