图神经网络加速综述: 算法、系统和硬件
共 10842字,需浏览 22分钟
·
2024-04-10 21:16
GNN 在许多任务上实现了最先进的性能,但在处理具有大量数据和严格延迟要求的实际应用程序时,面临可扩展性挑战。为了应对这些挑战,已经进行了许多关于如何加速GNN的研究。这些加速技术涉及GNN的各个方面,从智能训练和推理算法到高效系统和定制硬件。 本综述提供了GNN加速的分类,回顾了现有的方法,并提出了未来的研究方向。
如图1所示,GNN加速技术分为三类:算法、系统和定制硬件。算法包括修改图或样本以缓解节点依赖性,以及剪枝、量化和蒸馏等推理加速技术;系统包括GPU内核加速、用户定义函数优化和可扩展系统设计;定制硬件包括具有不同属性的加速器,支持不同级别的并行化和稀疏性。
图1 GNN加速的分类
2 GNN加速:训练算法GNN训练旨在找到最佳参数𝜃*,使损失最小化。训练延迟主要来自感受野中的消息聚合,对于深度GNN,计算图可能变得巨大。训练加速的总体思路是减少计算图。有两种方法:图修改和采样。图修改分为两步:首先生成一个小图G',然后进行常规GNN训练。采样则是选择节点/边的子集来构建较小的计算图,修改是动态且隐式的。两种方法都能加速训练,但图修改可能会创建新的节点和边,而采样则保证所有节点和边都有机会被覆盖。
2.1 图修改
图修改分两步加速 GNN 训练。图修改方法包括图粗化、图稀疏化和图压缩。这些方法中的每一种都以不同的方式修改图 G 以创建自己的 G ' ,但所有 G ' 都是较小的图,可以加速 GNN 训练。这些图修改方法的说明如图2所示。
图2 图修改方法说明:图粗化方法执行图聚类并将节点簇合并为超级节点。图稀疏化方法删除不太重要的边。图压缩方法使用随机初始化的生成模型生成新的压缩图。对于修改后的图(最右列),黑色节点/边来自原始图,彩色节点/边是新创建的。
图粗化, 是一种减小图大小同时保留其整体结构的技术。通过将相同局部结构中的节点合并为“超级节点”,并将连接超级节点的边合并为“超级边”,可以得到粗图。图粗化的核心步骤是图聚类,通常与图谱相关。一些算法如受限谱近似和逆拉普拉斯,被用于保留一些图属性。黄等人提出了一种使用图粗化来加速GNN训练的通用框架,通过将图划分为K个簇,并设置超级节点特征和标签。还有其他相关工作,如GOREN和GraphZoom,但关注点不同。
图稀疏化, 通过删除冗余边来减少计算图,加速GNN训练。现有方法通常保留原始图的关键属性,如切割总权重、光谱特性和分层结构。稀疏化算法可作为预处理步骤,降低全批次时间复杂度。一些相关工作执行基于GNN的图稀疏化以提高GNN精度或鲁棒性,但通常需要解决额外的优化问题,可能减慢训练速度。剪枝和图稀疏化不同,通常指对神经网络模型的修改。
图压缩, 通过匹配两个GNN的训练梯度来生成一个压缩图,从而减少GNN的计算量和内存占用。 GCond是一种用于生成压缩图的方法,可以在保留原始图训练动态的同时显著减小图的大小。通过在原始图和压缩图上训练两个具有相同架构的GNN,GCond可以生成压缩图,同时保持原始GNN的性能。实验表明,GCond可以在多个图基准上实现小于1%的压缩比,同时保持原始GNN超过95%的准确度。因此,GCond非常适合神经架构搜索等任务。然而,为了加速单个GNN的训练,GCond应该与其他加速方法或更好的压缩策略相结合。
2.2 采样
采样是一种加速GNN训练的技术,通过动态选择节点和边的子集来减小计算图,从而提高训练速度。研究发现,通过采样可以保持模型精度,同时减少时间和内存消耗。需要注意的是,采样与图形修改不同,采样是动态且隐式的,没有中间修改的图形输出。
采样方法分为节点方式、逐层和子图方式三类,图3为不同图采样方法的说明每种方式都有其优缺点。实验表明,逐层采样方法在Reddit数据集上表现更好,子图采样方法在PPI数据集上表现更好。不同采样方法在不同数据集上的性能和运行时间存在差异,如表1所示。
图3 不同图采样方法的说明。节点采样方法对每个计算层的每个节点进行采样,这可能会导致冗余节点(例如,节点E被采样两次)和丢失边(例如,节点C和节点D之间的边丢失);逐层采样方法基于前一层中的节点对每层进行采样。子图采样方法对节点列表及其导出的子图进行采样,然后通过采样子图内的所有边进行消息传递。
节点采样 。节点采样方法应用于每层 𝑙 的每个目标节点 𝑣。采样程序的示例如图 3(a) 所示。
GraphSAGE是通过节点采样来减少节点感受野的开创性工作,对于每一层𝑙,GraphSAGE统一对每个节点的固定数量 (𝑠 (𝑙) 𝑛𝑜𝑑𝑒 )的相邻节点进行采样。GraphSAGE采样算法也可以形式化为矩阵形式,其中 𝑷 (𝑙)𝑯 (𝑙−1) 表示全邻居聚合,𝑷 (𝑙) 𝑯 (𝑙−1) 表示采样聚合。VR-GCN提出在GraphSAGE工作流程中使用历史嵌入来减少嵌入方差并加速训练收敛。除了GraphSAGE和VR-GCN之外,还有许多其他工作在探索节点采样的不同方面。
虽然节点采样方法可以通过减小感受野来缓解大规模GNN训练的可扩展性挑战,并且可以保证每层的每个节点都可以有合理数量的连接邻居来更新其隐藏表示,但仍存在局限性。
逐层采样。 逐层采样方法从同一计算层中的所有节点中选取子集,用于构建计算图。每个节点与下一计算层的直接邻居和后面计算层的第二跳邻居等相连。对于每个节点,其层采样邻域是层采样节点集与原始邻域的交集。每个计算层执行 𝑠 (𝑙) 𝑙𝑎𝑦𝑒𝑟 次采样操作,选取 𝑠 (𝑙) 𝑙𝑎𝑦𝑒𝑟 个邻居节点。最后,当前计算层的采样节点用于构造后面计算层的邻域以进行消息传递。采样程序的示例如图 3(b) 所示。
FastGCN通过分层重要性采样解决节点采样的可扩展性问题,但面临连接性挑战。AS-GCN提出了自适应分层采样方法,以顶层为条件对下层进行采样,并添加正则化减少方差。LADIES在后一层的直接邻域内进行采样,以确保信息传递。
分层采样方法克服了节点采样的指数邻域扩展限制,具有线性时间和内存复杂度。然而,连通性问题依然存在,可能导致模型性能下降。 子图采样。 子图采样方法将整个图作为输入,输出样本子图,用于GNN训练。由于子图通常较小且只表示局部信息,训练时需要添加随机性以提高准确性。这些方法与图修改方法类似,但并非真正修改图,而是动态采样。ClusterGCN将图划分为簇,对每个子图簇进行全批量GNN训练,提高了可扩展性,但聚类结果固定。GraphSAINT提出四种不同的节点采样算法,其中随机游走采样器表现更好。Shadow-GNN对每个目标节点的不同子图进行采样,并设计了将GNN深度与其感受野大小分开的原则。还有许多其他后续工作进行子图采样,如RWT的波纹步行采样器和曾等人的并行化版本。此外,一些分层采样方法可用于构建子图。
子图采样方法不依赖GNN模型和嵌入,可在训练前或并行完成。但仅考虑图结构,未考虑模型训练动态,因此如何将方差减少研究纳入子图采样过程尚待解决。
3 GNN 加速:推理算法
GNN推理加速的目标是构建一个模型~GNN𝜃~,使其在G𝑡𝑒𝑠𝑡上的推理与GNN𝜃*具有相似的精度,但速度更快。与训练加速不同,推理加速更以模型为中心,主要关注模型架构、参数数值精度和参数值。常见的推理加速方法包括剪枝、量化和蒸馏,这些方法广泛用于加速通用DNN,也可应用于图的GNN。主要挑战是如何保存图结构信息并解决消息聚合引起的延迟。
3.1 剪枝
GNN剪枝是一种加速GNN推理的方法,通过选择要剪枝的GNN权重来优化模型。最常见的方法是权重幅度剪枝,即剪枝具有较小权重的神经元连接或降低权重的L1范数。剪枝提供了模型速度和准确性之间的权衡,移除更多权重可能导致模型更快但准确性降低。
Zhou等人提出了一种通道修剪方法,将剪枝问题表述为LASSO回归问题,交替优化可学习的掩码和更新的GNN权重矩阵。 彩票假设( LTH)是一种流行的剪枝研究,表明剪枝后的稀疏神经网络可以重新训练以达到与原始神经网络相似的精度。陈等人通过迭代幅度剪枝(IMP)测试了GNN的LTH,观察到了速度增益和边际精度损失。 剪枝可以加速模型推理,但并不总是加速模型训练。
3.2 量化
量化是一种广泛使用的技术,通过降低模型参数数值精度来加速通用机器学习模型。对于DNN,延迟主要来自矩阵乘法,量化可以减少MAC运算从而加速推理。量化的另一个好处是减少内存访问时间。量化研究的目标是在保持推理精度的同时实现推理加速。量化可以分为训练后量化(PTQ)和量化感知训练(QAT)。PTQ易于使用,可以应用于任何架构,但精度较低。QAT对训练期间的量化误差进行建模,通常可以找到更好的量化模型,但成本是模型训练时间较长,需要数据。现有的量化方法主要用于CNN,GNN的量化有其自身的挑战,需要特殊处理。
SGQuant和Degree-Quant是两种研究GNN量化的方法。SGQuant是一种PTQ方法,主要关注节点表示的量化,通过多粒度量化优化量化效率。Degree-Quant是一种QAT方法,主要量化GNN权重和中间节点表示,通过保护掩模提高权重更新精度。
量化是GNN加速方法中最容易应用的一种,可显著提升速度。与其他加速方法结合,如网络架构搜索(NAS),可进一步提高速度。
3.3 蒸馏
知识蒸馏(KD)是一种将复杂模型压缩为更小、更快的模型的技术。它通过师生方式训练两个模型,教师输出概率向量(软标签),学生模型输出与软标签的距离。通过最小化这种距离,将知识从教师转移到学生。常见的距离度量是Kullback-Leibler (KL) 散度。
大多数情况下,先单独训练教师模型,再固定教师训练学生模型。知识蒸馏损失L𝑖𝐾𝐷仅用于更新学生参数,不适用于教师。KD可应用于半监督环境,通过使用标记数据训练教师并为未标记数据生成软标签来训练学生。KD已广泛用于压缩和加速CNN等DNN,最近扩展到GNN。GNN KD方法主要在两个方面有所不同:1)教师和学生模型是什么?2)KD目标是什么?
LSP、TinyGNN和GLNN是探索KD加速GNN的先驱工作。LSP提出了局部结构保留损失,鼓励学生模型保留与教师模型相似的局部结构。TinyGNN通过添加特殊层 PAM鼓励节点直接交互,提高蒸馏模型精度。GLNN采用纯MLP学生模型,通过 KD实现与教师GNN竞争的性能。这些方法在不同设置下开发,具有不同的适用性和速度增益。KD在GNN上的应用仍处于早期阶段,存在许多有趣的开放性问题。
推理加速技术组合可以实现更好的结果。比如 将量化与蒸馏相结合,逐步量化GNN的权重和激活,最终实现二进制GNN,可在Raspberry Pi 4B上实现2倍加速,仅适度损失精度。
4 GNN 加速:系统
除了高效的GNN训练/推理算法,优化底层系统对于提高GNN的端到端吞吐量至关重要。现有工作从三个方面加速GNN系统:GPU内核加速、用户定义函数(UDF)优化和可扩展训练系统。由于GNN计算遵循消息传递范式,需要高效的稀疏操作,人们提出了各种高效的GNN内核和UDF优化技术。然而,设计一个高效的可扩展GNN训练系统仍然是一个开放研究问题。目前,两个广泛使用的GNN框架是PyG和DGL。
4.1 GPU内核加速
GPU内核是专门针对GPU进行优化的程序,可以大大提高DNN训练和推理的计算速度。尽管GPU在深度学习加速中广泛应用,但由于图形的稀疏性和不规则性,使用GPU加速GNN仍具有挑战性。
近年来,许多研究提出了新的GPU内核以加速GNN工作负载,表2总结了这些工作。 PCGCN通过节点聚集的稀疏模式提高GNN数据局部性,采用双模式计算,利用图聚类可能产生预处理开销。fusionGNN开发了两种GNN聚合工作负载抽象:GAS和GAR,将操作融合以减轻内存流量,支持多GPU场景。FusedMM是可扩展到GPU加速的CPU内核,通过融合相关操作实现内存减少,采用边缘平衡分区保证线程之间的工作负载平衡。TLPGNN通过两级并行性提高性能,实现负载均衡和内核融合。张等人将GNN操作分解为四部分,解决冗余神经算子计算、不一致的线程映射和过多中间数据问题。
表2 GPU内核加速方法总结
总之,工作负载重新排序对于识别GPU友好的处理模式至关重要。大多数工作顺序计算输出节点并并行处理特征,以实现内核融合和合并的内存访问。然而,图结构可能不规则,因此一些工作利用双模式计算和动态工作负载分配来处理不同属性的图。
4.2 用户自定义函数优化
GNN在消息传递范式下成功的关键因素是消息、聚合和更新函数的灵活性。通过使用Python中的张量运算符,用户可以原生表达这些函数并通过系统提供的API执行。这种编程范例称为用户定义函数(UDF),可以提高代码模块化和减少重复。最近开发的工作简化了用户定义的GNN的部署。
FeatGraph、Seastar和Graphiler是深度学习系统的编译器堆栈,提供了灵活的编程接口。FeatGraph支持用户定义函数,Seastar为以顶点为中心的编程接口,Graphiler开发了一种用于分散/聚集相关任务的自动化工具。这些工具正在变得成熟,因为最近提出了几个稀疏深度学习操作的后端,如SparseTIR,可以表示上述Seastar、FeatGraph和Graphier工作支持的运算符。
4.3 可扩展的培训系统
为了支持大规模图 GNN 训练,最近的工作开发了可扩展训练的 GNN 系统。可扩展性分为垂直可扩展性和水平可扩展性。垂直可扩展性利用有限资源处理扩展数据,水平可扩展性通过扩展资源提高效率。
一些工作对分布式 GNN 训练系统进行了总结和分类。我们关注可扩展的 GNN 训练,包括高效的分布式训练和大规模训练。根据数据加载到计算设备上的方法,我们将可扩展 GNN 训练系统分为设备上系统、基于交换的系统和基于采样的系统。图4展示了这些类别的概述,表3为这些类别的比较。
图4 三种可扩展 GNN 训练系统的概述。(a)中的虚线表示来自不同worker的节点之间的依赖关系,而(b)中的灰色节点仅作为子图计算的输入节点。为了获得更好的视觉清晰度,未显示工作人员之间的模型同步
表3 三种可扩展 GNN 训练系统的比较
设备上系统(图 4(a))将图和相关特征分布式存储在计算设备上,主要关注全图聚合以利用计算资源,但存在通信和内存问题;基于交换的系统(图 4(b))将所有数据存储在共享内存中,通过交换中间结果进行计算,但存在工作负载调度和迭代延迟问题;基于采样的系统(图 4(c))将图和特征保存在共享内存中,采用邻居采样进行邻居聚合,面临数据移动瓶颈,通过优化通信和缓存策略来提高性能。总体而言,基于采样的系统在大规模图GNN训练中具有前景。
表4总结了可扩展培训的系统。
表4 可扩展培训系统总结
5 GNN 加速:定制硬件
人们对GNN的兴趣日益浓厚,促使了定制加速器(FPGA或ASIC)的开发,以实现更快的处理速度。GNN与CNN在计算复杂度和通信模式上的差异使得许多CNN加速器不适合GNN。GNN需要矩阵乘法单元,并具有不规则的内存访问。由于聚合和更新阶段的计算和通信模式不同,仅使用密集或稀疏MM单元对于GNN应用效率低下。此外,GNN使用分配给每个节点的向量,与传统图算法不同。这些区别促使研究人员设计专门的硬件模块来有效处理GNN。
5.1 定制硬件设计的挑战
为GNN设计定制加速器需考虑三点:
广泛的GNN层。 除了可能合并图/子图池化层和非线性激活函数之外,GNN模型使用不同的聚合和更新方法,这可能会影响性能和灵活性。支持多种计算模式需要通用性,可能会阻止获得最佳性能。
计算/通信模式和稀疏率差异。 不同步骤的计算和通信要求可能不同, 例如,邻接矩阵超稀疏,权重矩阵稠密,节点嵌入通常密集,但ReLU等激活函数可能产生稀疏矩阵。此外,MLP等多层感知器也产生密集乘法单元。这些差异和访问模式给GNN硬件设计带来挑战, 需要解决图稀疏性、激活算子引入的稀疏性以及模块之间的协调问题 ;
动态输入和网络结构。 GNN的架 构决策高 度依赖于输入图的特征和模型的超参数, 图的大小、稀疏程度和向量 维度等因素对GNN加速器的内存和计算要求有很大影响。 不同尺度和结 构的图可能导致计算资源需求的差异,以及处理节点邻居数量变化时的工作负载不平衡。
5.2 现有定制加速器总结
表5比较了不同定制加速器的五个主要特征,包括图大小、目标GNN、层定制支持、稀疏性处理和并行化级别。 相关工作根据工作量的灵活性进行分类,包括针对多种GNN算法的加速器和专注于GCN操作的加速器。
表5 定制加速器属性
5.3 适用于一般工作负载的加速器
本节概述了设计定制加速器以支持多种GNN算法的工作。这些工作要么创建一个处理所有计算阶段的统一架构,要么为不同计算和通信模式开发专用引擎。
全阶段统一架构。 该架构通过开发一个能够处理这些阶段的单一引擎来加速计算,尽管它们在计算和通信方面有不同的要求。EnGN、Rubik、G-CoS和GCoD等框架致力于优化图神经网络(GNN)的性能和效率。EnGN处理多种GNN,采用神经图形处理单元(NGPU)作为统一架构,并开发了维度感知阶段重新排序策略以减少操作数量。Rubik提出了一种 用于训练GIN和Grap hSage的加速器, 通过预处理器对图进行重新排序,并使用分层加速器架构。 G-CoS是一个自动化框架,包含一次性协同搜索算法和通用加速器搜索空间, 以优化GNN的性能和效率。 GCoD是一个协同设计框架,通过优化算法和硬件加速器来解决GNN推理中的极度稀疏问题。 I-GCN提出了一种称为“孤岛化”的新方法,以提高GNN的数据局部性,其硬件架构包括孤岛定位器和孤岛消费者。
每级专用模块。 该类别为GNN算法的主要计算阶段设计了一个专用引擎,使每个引擎都能根据各阶段需求进行定制,并支持不同阶段的并发执行。 HyGCN加速器将GNN算法分为聚合和组合两个阶段,采用独立的处理引擎以数据流方式处理。FlowGNN是一种通用数据流架构,可支持多种消息传递GNN算法。BlockGNN利用 块循环权重矩阵和FFT/IFFT加速GNN模型更新阶段的计算。DeepBurning-GL是一个自动化框架,用于生成GNN硬件加速器,并提供了三个模板。
5.4 特殊工作负载的加速器
该领域的研究专注于更专业的算法,特别是GCN。第一个子组开发了一个具有自定义层修改的深层管道,而第二个子组则采用固定硬件方法处理所有层。
可分层定制的深层管道。 GCN加速器的基本优化应减少与内存事务相关的费用。为此,构建了一个深度管道,避免了不同GCN层之间的片外内存事务。同时,根据每一层的单独工作负载定制硬件参数。 AWB-GCN 和 StreamGCN 是两种高效的 GCN 加速器架构,旨在利用图卷积网络的稀疏性。 AWB-GCN 提出了自动调整工作负载平衡技术,包括分布平滑、邪恶行重新映射和远程切换,以克服负载不平衡问题。 StreamGCN 则提出了一种高效且灵活的 GCN 加速器,用于从 DRAM、主机 CPU 和网络传输小图,并利用所有可用的稀疏性。 这两种架构都支持层内和层间并行,并且都基于内积矩阵乘法。
全层统一架构。 GCN算法由多个层组成,每层具有不同特征。该类别的研究提出了跨层构建适应性更强的架构,并为所有层使用相同引擎。这些作品专注于特定的工作负载(GCN)而具有更大的定制可能性。 GraphACT 开发了一种用于训练针对 CPUFPGA 异构系统上小图的 GCN 的加速器,通过创建小图和定义三种类型的乘法来加速训练。张等人的方法专注于加速大图的 GCN 推理,通过将输入数据划分为更小的尺寸,应用冗余减少方案和节点重新排序阶段来减少全局内存访问。BoostGCN 提出了一个旨在优化 FPGA 上的 GCN 推理的框架,通过分区为中心的特征聚合和两种类型的特征更新模块来减少内存流量并解决工作负载不平衡问题。
表6回顾了加速器,重点关注验证方法和报告的加速。
表6 定制加速器的性能和验证方法
6 GNN 加速:特殊图和特殊 GNN
本文讨论了针对特殊图类型(异构图和动态图)和特殊GNN架构(异构GNN和注意力GNN)的加速技术。
6.1 异构图上的 GNN 加速
异构图是一种新的数据结构,用于表示现实世界中的复杂图,其中节点和边具有不同类型,彼此具有显着不同的含义。例如,在引文图中,节点可以是作者、地点和论文,边可以表示作者发表的论文、在地点发表的论文等。
许多 GNN 是为异构图设计的,面临可扩展性挑战,需要加速。在异构图上,更好的采样算法应该执行加权采样以包括所有类型的邻居节点。HetGNN 引入了一种新颖的异构邻居采样器,克服了异构图上的特殊挑战。HGT 是一种基于 Transformer 的异构图 GNN,引入了高效的采样器,使模型能够处理具有数十亿条边的 Web 规模图数据。Pigeon 是一种中间表示和代码生成器,用于异构图上的关系图神经网络的端到端训练和推理,通过解耦模型语义、数据布局和特定于操作员的时间表来解决 RGNN 带来的性能挑战。
6.2 动态图上的 GNN 加速
时空数据在科学研究和实际应用中广泛使用,动态图在解决此类问题时表现出色。动态图是随时间变化的图,其学习与推理面临额外挑战。因此,研究人员开发了时空GNN,对空间和动态演化进行联合建模。时空GNN应用于大规模动态系统模拟,面临与静态图上常规GNN类似的可扩展性问题,需要加速。时空GNN加速面临特殊挑战,因为模型训练需要按时间顺序进行,图操作需要同时考虑空间和时间邻居。本节总结了最新的时空GNN加速工作,通常应用于大规模动态图的学习和推理。
TGL提出了一种加速连续时间GNN训练的统一框架,包括时间CSR数据结构、并行采样器和新型随机块调度技术。MTGNN通过图学习模块自动提取节点关系,并应用集群减少内存使用。GraphODE将GNN表达能力与学习动态系统ODE建模相结合,采用自适应ODE求解器和耦合的ODE函数。GN-ETA提出了一种大规模GNN模型,用于实时估计到达时间(ETA),采用基于超路段的加速和MetaGradients方法。
动态图的时空GNN是静态GNN的扩展,对时间方面进行了特殊处理。传统方法采用循环神经网络,但耗时且无法捕获长期依赖性。最新进展如位置编码和神经常微分方程加速了动态GNN。硬件加速器支持各种图形拓扑,但动态图和异构图面临挑战。为解决此问题,可扩展软件-硬件协同设计,包括开发分析器评估图和目标算法的要求,以及转向更通用的设计架构或支持多种专用架构。
7 未来方向
尽管GNN加速研究已取得进展,但仍处于早期阶段,未能跟上图数据扩张速度。近期COTS系统和定制硬件加速开始受到关注,需探索针对异构和动态图的定制加速技术。下面介绍几个值得进一步探索的研究方向。
更好的图修改算法。 提高图修改算法效率,如粗化、稀疏化和压缩,有助于加速GNN训练。在预处理阶段删除冗余邻居可提高效率,稀疏化保留局部性,压缩提高训练效率。早期识别最佳压缩图将使该技术更有用。好的图修改方法有利于GNN架构的自动化设计和调整,简化预处理可显著加速GNN开发。
更好的采样算法。 GNN采样方法未来可改进,如分层采样,利用图的多尺度结构提高效率并捕获多尺度特征,对大规模图特别有用。动态图的采样方法也可进一步研究,如节点和边随时间变化,单独在每个时间戳应用采样效果不佳。
推理加速方法。 如剪枝、量化和蒸馏可以组合使用,以提高速度。例如,可以将权重量化为二进制,同时利用蒸馏。由于推理阶段更灵活,这些方法可以更容易地以各种方式组合,如结合剪枝和量化实现低精度的稀疏模型,或结合剪枝和蒸馏进一步细化蒸馏后的学生模型。
系统。 现有研究主要关注提高GNN的运行时效率,但内存需求仍是瓶颈。可采用重新物化、量化和数据修剪等技术减少内存开销。由于GNN模型不规则计算和数据访问模式,高级训练/推理算法可能对系统不友好,系统友好的GNN算法协同设计有前景。现有文献缺乏GNN系统全栈开发,结合不同级别技术形成超高效GNN系统是研究主题。
定制硬件。 GNN加速的关键在于减少片外存储器的数据获取量。除了数据重用、缓存和优化等技术,还可以探索修剪、量化和压缩等方法。为促进GNN加速器设计,需要开发更先进的自动化设计生成器,如神经架构搜索、基于学习的硬件设计评估模型和智能设计空间探索等技术。