CN116910568B - 图神经网络模型的训练方法及装置、存储介质及电子装置 - Google Patents
图神经网络模型的训练方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN116910568B CN116910568B CN202311174100.1A CN202311174100A CN116910568B CN 116910568 B CN116910568 B CN 116910568B CN 202311174100 A CN202311174100 A CN 202311174100A CN 116910568 B CN116910568 B CN 116910568B
- Authority
- CN
- China
- Prior art keywords
- graph
- sub
- node
- target
- cxl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 192
- 238000003062 neural network model Methods 0.000 title claims abstract description 155
- 238000003860 storage Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 77
- 239000013598 vector Substances 0.000 claims abstract description 302
- 238000000547 structure data Methods 0.000 claims abstract description 135
- 238000005070 sampling Methods 0.000 claims abstract description 84
- 238000012545 processing Methods 0.000 claims description 159
- 230000005540 biological transmission Effects 0.000 claims description 49
- 230000006870 function Effects 0.000 claims description 39
- 230000002776 aggregation Effects 0.000 claims description 16
- 238000004220 aggregation Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000002360 preparation method Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 102000004169 proteins and genes Human genes 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000013341 scale-up Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种图神经网络模型的训练方法及装置、存储介质及电子装置,其中,该方法包括:在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,目标图的拓扑结构数据存储在单机系统的CXL设备的第一内存中;在CXL设备上基于目标图的拓扑结构对每个目标节点分别执行邻居抽样操作,得到一组子图,每个子图的子图节点集合包含一个目标节点以及一个目标节点的至少一个邻居节点;获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据;使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种图神经网络模型的训练方法及装置、存储介质及电子装置。
背景技术
GNN(Graph Neural Networks,图神经网络)模型的输入数据是图(Graph),在单机系统上对GNN模型进行模型训练时,首先将用于训练的图数据存储到单机系统的内存,然后再进行计算和训练。目前,图数据的规模正在变得越来越大,以期在更大的图数据上获得更好的训练和推理效果。
然而,单机系统的内存容量和带宽有限,通常是几十或者上百GB,可以用于GNN模型训练的图数据受限,导致训练出的图神经网络模型的模型效果较差。由此可见,相关技术中的图神经网络模型的训练方法,存在由于用于GNN模型训练的图数据受限导致训练出的图神经网络模型的模型效果差的问题。
发明内容
本申请实施例提供了一种图神经网络模型的训练方法及装置、存储介质及电子装置,以至少解决相关技术中的图神经网络模型的训练方法存在由于用于GNN模型训练的图数据受限导致图神经网络模型的模型效果差的问题。
根据本申请的一个实施例,提供了一种图神经网络模型的训练方法,包括:在单机系统上对待训练的所述图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,所述目标图的拓扑结构数据存储在所述单机系统的计算快速链路CXL设备的第一内存中,所述目标图的拓扑结构数据用于指示所述目标图的拓扑结构;在所述CXL设备上基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点;获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据;使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,其中,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构。
根据本申请的另一个实施例,提供了一种图神经网络模型的训练装置,包括:确定单元,用于在单机系统上对待训练的所述图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,所述目标图的拓扑结构数据存储在所述单机系统的计算快速链路CXL设备的第一内存中,所述目标图的拓扑结构数据用于指示所述目标图的拓扑结构;执行单元,用于在所述CXL设备上基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点;获取单元,用于获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据;训练单元,用于使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,其中,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构。
根据本申请的又一个实施例,提供了一种单机系统,包括:中央处理器,计算快速链路CXL设备,模型训练部件,其中,所述中央处理器,用于在所述单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,所述目标图的拓扑结构数据存储在所述CXL设备的第一内存中,所述目标图的拓扑结构数据用于指示所述目标图的拓扑结构;所述中央处理器或者所述CXL设备,还用于基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点;所述中央处理器或者所述CXL设备,还用于获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据;所述模型训练部件,用于使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,其中,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构。
根据本申请的又一个实施例,提供了一种计算快速链路CXL设备,包括:第一内存,所述第一内存中存储有目标图的拓扑结构数据,其中,所述CXL设备,用于在所述CXL设备所在的单机系统上对待训练的图神经网络模型进行模型训练的情况下,基于所述目标图的拓扑结构对目标图中的一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构,所述每个子图的拓扑结构数据和所述每个子图的特征向量数据用于对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,所述每个子图的特征向量数据包括所述每个子图的子图节点集合中的每个节点的节点特征向量。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用通过CXL(Compute Express Link,计算快速链路)设备进行内存扩展的方式,通过在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,目标图的拓扑结构数据存储在单机系统的CXL设备的第一内存中,目标图的拓扑结构数据用于指示目标图的拓扑结构;在CXL设备上基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,一组子图中的每个子图的子图节点集合包含一组目标节点中的一个目标节点以及一个目标节点的至少一个邻居节点;获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据;使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型,其中,每个子图的拓扑结构数据用于指示每个子图的拓扑结构,由于使用CXL设备对单机系统进行内存扩展,可以使用更大规模的图数据对图神经网络模型进行模型训练,从而实现通过扩大内存容量降低对于图数据规模的限制的目的,达到提升图神经网络模型的模型效果的技术效果,进而解决了相关技术中的图神经网络模型的训练方法存在由于用于GNN模型训练的图数据受限导致图神经网络模型的模型效果差的问题。
附图说明
图1是根据本申请实施例的一种图神经网络模型的训练方法的服务器的硬件结构框图;
图2是根据本申请实施例的一种图神经网络模型的训练方法的流程示意图;
图3是根据本申请实施例的一种可选的GNN训练设备的架构图;
图4是根据本申请实施例的一种可选的GNN训练流程的示意图;
图5是根据本申请实施例的另一种可选的GNN训练流程的示意图;
图6是根据本申请实施例的一种可选的CXL type3设备数据流转的示意图;
图7是根据本申请实施例的一种可选的CXLtype3设备实现内联函数的示意图;
图8是根据本申请实施例的另一种可选的GNN训练设备的架构图;
图9是根据本申请实施例的又一种可选的GNN训练设备的架构图;
图10是根据本申请实施例的一种可选的模型训练过程的示意图;
图11是根据本申请实施例的一种可选的流水线并行训练的示意图;
图12是根据本申请实施例的一种图神经网络模型的训练装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器、移动终端、计算机终端或者类似的运算装置中执行。以运行在服务器上为例,图1是根据本申请实施例的一种图神经网络模型的训练方法的服务器的硬件结构框图。如图1所示,服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的图神经网络模型的训练方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个NIC(NetworkInterface Controller,网络适配器),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为RF(Radio Frequency,射频)模块,其用于通过无线方式与互联网进行通讯。
根据本申请实施例的一个方面,提供了一种图神经网络模型的训练方法,以由服务器来执行本实施例中的图神经网络模型的训练方法为例,图2是根据本申请实施例的一种图神经网络模型的训练方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S202,在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点。
本实施例中的图神经网络的训练方法可以应用到对GNN模型进行模型训练的场景中,GNN模型是基于图神经网络的模型,GNN模型的模型输入是图,图神经网络是指使用神经网络来学习图结构,提取和发掘图结构中的特征和模式,满足聚类、分类、预测、分割、生成等图学习任务需求的算法总称。不同于图像模型或者语言模型的输入,输入GNN模型的图是非结构化的,实际应用中图结构的数据的种类众多,例如,社交网络、蛋白质网络等,因此GNN可以广泛应用于各个领域,例如,推荐系统、医药领域(蛋白质分类)、图像分割等。为了将GNN模型应用到不同的领域,需要基于不同领域的特点进行GNN模型设计,并使用训练数据对GNN模型进行模型训练,以提高GNN模型在不同领域的模型性能。
对GNN模型进行模型训练可以是在单机系统上执行的,单机系统可以对应于一个单独装置,其上可以包含多个设备,例如,CPU(Central Processing Unit,中央处理单元)或其他处理器、与CPU相连的系统内存、GPU(Graphics Processing Unit,图形处理单元)、与GPU相连的显存(GPU显存)、通信总线等,系统内存可以是DRAM(Dynamic Random AccessMemory,动态随机存取存储器),例如DDR(Double Data Rate,双倍数据速率)DRAM,显存可以是GDDR(Graphics Double Date Rate,图形双倍数据速率),通过单机系统中不同设备之间的交互,可以实现对GNN模型的训练。
输入GNN模型的图可以通过图数据表示,其可以包括图结构数据和节点特征向量数据两种,其中,图结构数据又称拓扑结构数据,其用于表示图的拓扑结构,而节点特征向量数据包含图的拓扑结构中的各个节点的节点特征向量。对应地,GNN模型的训练数据包括图结构数据和节点特征向量数据两种。在本实施例中,对待训练的GNN模型进行模型训练所使用的图为目标图,在数据准备阶段,可以通过对目标图进行处理,以获取目标图的一组子图,从而可以将每个子图的图数据分别作为训练数据对GNN模型进行训练。对于不同领域的GNN模型,进行模型训练所使用的目标图可以是不同的。
这里,对于目标图和每个子图,其均可用图来表示,V表示G的节点集
合,E表示G的边集合,每个节点具有对应的节点特征向量,一个节点的节点特征向量的维度
为D,维度D取决于网络中的节点的语义。对于图结构数据,由于图中的边的大小是节点的几
十倍,对于稠密图,边的大小甚至可能是节点的成百上千倍,因此,图结构数据的存储开销
取决于图中边的数量。而节点特征向量数据的大小取决于实际网络中节点的语义。例如,在
社交网络中,节点表示社交账户,社交帐户的特征维度可能达到成千上万甚至更多。图结构
数据的存储开销和节点特征向量数据的存储开销之间的比值为:。在节
点维度较小时,图结构数据的存储空间会大于节点的特征向量数据的存储空间,而在更大
规模的图结构数据的图上,网络更加稠密,平均度更大(即,平均每个节点的边的数量更
大)。
为了获得更好的训练和推理效果,用于GNN模型训练的图的规模越来越大,即,模型训练的输入数据所占用的存储空间比较大,几百亿条边的图存储的规模达到了几百GB的级别(50B条边的图数据需要400GB内存),一般GPU显存的容量是达不到的,因此对GNN模型进行模型训练所使用的框架通常是把输入的图数据存储在内存中的:在进行模型训练时,可以从系统内存(或者其它存储设备上)传输到GPU显存中,GPU显存中只存储模型相关的数据。
然而,单机系统上的内存容量往往是几十GB到上百GB,无法达到几百GB,而网络节点数可以达到几百亿的级别,图存储所需的内存容量达到了几百GB,而单机系统中的可扩展的内存容量是有限的,不足以存下大规模图的数据,因此无法进行大规模图上的训练,in-memory(“内存内”)计算的方式出现了内存瓶颈。对此,可以通过额外的扩展设备来进行GNN模型的scale-up(网络向上扩展)的训练。例如,在单机系统的内存容量不够时,可以在硬盘设备上开辟一片缓存区域,进行内存补充。然而,硬盘作为存储介质的性能比内存的DRAM更低,会降低整个训练系统的性能。
以SSD(Solid State Drive,固态硬盘)为例,SSD为主要硬盘,可以采用基于SSD存储介质进行存储空间扩展的方案,可以将图结构数据存放在SSD上,特征向量数据存放在本地系统内存的DRAM上。但是,SSD属于慢设备,其性能较低,其速度会比DRAM慢几个数量级,且SSD无法提供按字节寻址的机制,因此,处理器无法直接访问SSD上的数据,需要先将数据放在系统内存中,然后再进行计算,从而对整体的训练性能有损耗,导致训练性能下降。
为了至少解决部分上述问题,在本实施例中,可以使用CXL设备进行内存扩展:至少将图结构数据存储在CXL设备的内存(即,CXL-MEM)中,相对于SSD等硬盘,CXL设备作为存储介质的性能更高,从而在数据准备阶段提高数据读取等操作的效率,提升整体的训练性能。
这里,CXL是一种开放性的、用于处理器、内存扩展和加速器的高速缓存一致性互连协议。CXL技术能够使得CPU内存空间和附加设备上的内存之间保持一致性,这允许资源共享以获得更高的性能,减少软件堆栈的复杂性,并降低整体系统成本,从而可以使得用户能够简单地关注目标工作负载,而不是加速器中多余的内存管理硬件。
CXL协议包括以下3个子协议:CXL.IO(Input/Output,输入/输出)协议,即,CXL输入输出协议;CXL.CACHE(高速缓冲)协议,即,CXL高速缓冲协议,CXL.MEM(memory)协议,即,CXL内存协议,基于不同的CXL子协议组合的设备有3种类型,本实施例中所使用的可以是基于CXL.IO和CXL.MEM两个子协议的CXL设备,例如,CXL type3设备。除了CXL type3设备以外,其他可以用于进行内存扩展(即,存储图结构数据)的CXL设备,同样可以应用到本实施例中。
在本实施例中,对于在单机系统上对待训练的图神经网络模型进行模型训练的场景,单机系统包括CXL设备,这里,CXL设备为支持至少部分CXL协议的设备(例如,支持3个子协议中的至少一种子协议的设备),其可以是一个单独的设备,也可以是集成到另一个设备内或者外接到另一个设备上的设备,在此不做限定,只要可以能够支持部分CXL协议的设备,均可认为是一种CXL设备。示例性地,单机系统中的CXL设备可以是CXL type3设备,CXL设备可以具有第一内存,可以将目标图的拓扑结构数据存储到第一内存中,这里的目标图的拓扑结构数据用于指示目标图的拓扑结构,即,目标图中的多个节点(例如,多个预设节点)之间的拓扑关系。这里,单机系统可以是GNN训练设备上的系统,其所包含的设备是GNN训练设备中配置的设备。
例如,为解决GNN模型在大规模图上的扩展训练问题,可以使用CXL type3设备来进行内存扩展,从而能够在单机系统上训练更大规模的图,获得更好的模型效果。基于CXL内存扩展的GNN训练设备可以如图3所示,GNN训练设备可以包括CPU、与CPU相连的系统DRAM内存以及PCIe(Peripheral Component Interconnect Express,高速外围设备互连总线标准)总线,在PCIe总线上挂接了GPU设备和CXL type3设备,GPU设备上连接有显存,CXL-MEM是指CXL设备中的内存,存储介质可以是PMEM(Persistent Memory,持久性内存),也可以是DRAM。CXL-MEM中存储有图的数据结构,即,图结构数据。此外,在PCIe总线上还可以挂载SSD等。
在数据准备阶段,可以从目标图中选取出一组子图,并使用一组子图作为训练数据对图神经网络模型进行训练,这里,一组子图中包含的子图的数量可以是一个或多个。可选地,可以对图神经网络模型进行多轮训练,每轮训练可以是使用一个批次的一组子图作为训练数据执行的,每个批次的一组子图可以采用类似的方式进行获取并采用类似的方式对图神经网络模型进行训练,在部分实施例中虽然是以一个批次的一组子图为例进行说明的,但所描述的处理方式同样适用于其他批次的一组子图。
在本实施例中,为了获取一组子图,可以首先确定目标图中的一组目标节点,每个目标节点可以用于获取一个子图,确定一组目标节点可以是由单机系统的中央处理器执行的。这里,中央处理器的内存(例如,DRAM)中可以存储有目标图中包含的多个预设节点的节点信息,从而可以基于多个预设节点的节点信息从多个预设节点中抽取出一组目标节点。对于多轮训练的场景,可以分别确定每个批次的一组目标节点,多个批次的一组目标节点可以是一次性分配的。
例如,CPU可以在开始训练前可以一次性分配好多个批次的一组目标节点,对于100个节点的网络,可以分成10个batch(批次)训练,一个batch的目标节点规模可以为10个。
步骤S204,基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图。
对于一组目标节点中的每个目标节点,可以与目标图的拓扑结构数据所指示的目标图的拓扑结构,对每个目标节点分别执行邻居抽样操作,得到与每个目标节点对应的子图,从而获取到一组子图。这里,对于一个目标节点,邻居抽样操作是指从目标图中抽取出该目标节点的至少一个邻居节点,这里的邻居节点可以是一阶邻居节点,也可以是多阶邻居节点,对于每阶邻居节点,抽取的可以是全部的同阶邻居节点,也可以是其中的部分邻居节点,例如,随机抽取的部分邻居节点,本实施例中对此不做限定,只要能够抽取出该目标节点的至少部分邻居节点即可。与一个目标节点对应的子图可以包含该目标节点,以及抽取出的该目标节点的邻居节点。
可选地,邻居抽样操作可以是由中央处理器执行的,也可以是直接在CXL设备上执行的,对于由中央处理器执行的场景,可以直接访问CXL设备中的图结构数据(即,目标图的拓扑结构数据),并在目标图上进行邻居抽样的操作。对于由直接在CXL设备上执行的场景,则可以由CXL设备直接在目标图上进行邻居抽样的操作。这里,由CPU侧控制执行邻居抽样操作比较简单,但需要频繁访问CXL设备上的图结构数据。
步骤S206,获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
目标图中的每个预设节点的节点特征向量可以配置有对应的节点特征向量,其可以通过节点特征向量数据进行保存,即,节点特征向量数据包含每个预设节点的节点特征向量。对于每个子图,获取分别获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,这里,每个子图的子图节点集合包含每个子图中的所有节点,而每个子图的特征向量数据包含每个子图的子图节点集合中的每个节点的节点特征向量。
对于一个子图,在获取其中的一个节点的节点特征向量,可以在节点特征向量数据进行查找,将查找到的节点特征向量作为该节点的节点特征向量,这里,查找可以是基于节点的节点标识执行的,或者基于目标图的图标识和节点的节点标识执行的,本实施例中对此不做限定,只要能够唯一标识出对应的节点即可。节点特征向量可以存储在系统内存中,也可以保存在CXL设备的内存中,还可以保存在单机系统的其他存储部件中,本实施例中对此不做限定。
例如,可以将图结构数据存放在CXL type3设备的内存上,节点特征向量数据(节点的嵌入向量数据)存放在与CPU相连的系统内存(即,DRAM内存)上。对于一个目标节点,得到的邻居节点集合可以直接用于在系统内存上查找节点对应的嵌入向量(即,节点特征向量)。
步骤S208,使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型。
对于每个子图,可以将其作为训练数据对对图神经网络模型进行训练,每个子图可以包括对应的拓扑结构数据和特征向量数据,可以使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型。这里,每个子图的拓扑结构数据用于指示每个子图的拓扑结构,即,每个子图包含的节点以及不同节点之间的拓扑关系。
例如,如图4所示,GNN的训练过程可以包括两个阶段:数据准备阶段,模型训练阶段。其中,在数据准备阶段对图数据进行邻居抽样操作和特征查询操作,从而得到GNN模型的训练数据;在模型训练阶段,使用得到的训练数据对GNN模型进行训练,从而得到最终结果。这里,数据准备阶段的操作是由CPU执行的,模型训练阶段的操作可以是由GPU或者其他的处理单元执行。
使用不同子图的拓扑结构数据和特征向量数据对图神经网络模型进行训练可以是串行执行的,即,使用不同子图的拓扑结构数据和特征向量数据依次对图神经网络模型进行训练,使用上一个子图的拓扑结构数据和特征向量数据对图神经网络模型进行训练后得到的图神经网络模型可以作为下一个子图的拓扑结构数据和特征向量数据进行训练所训练的图神经网络模型。
可选地,在使用多个批次的一组子图对同一图神经网络模型进行训练的场景,使用每个批次的一组子图对该图神经网络模型进行训练可以是串行执行的,即,使用上一个批次的一组子图对该图神经网络模型进行训练得到的图神经网络模型可以作为使用下一个批次的一组子图进行训练所训练的图神经网络模型,在满足训练结束条件之后,所得到的图神经网络模型为最终的图神经网络模型。这里,模型训练是按照预设规则对模型参数进行更新的过程,具体的训练过程可以参考相关技术,本实施例中对此不做限定。
例如,GNN的训练往往是以batch为单位的,在节点分类任务中,一个batch的训练数据往往包含少量的目标节点(在大的图中,数量在几千左右),在数据准备阶段,可以从整个图中找出目标节点所在的邻居节点,然后查询的所有目标节点的邻居节点的节点特征向量,最后使用查询的特征向量数据进行模型训练。
通过上述步骤,在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,目标图的拓扑结构数据存储在单机系统的计算快速链路CXL设备的第一内存中,目标图的拓扑结构数据用于指示目标图的拓扑结构;基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,一组子图中的每个子图的子图节点集合包含一组目标节点中的一个目标节点以及一个目标节点的至少一个邻居节点;获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据;使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型,其中,每个子图的拓扑结构数据用于指示每个子图的拓扑结构,可以解决相关技术中的图神经网络模型的训练方法存在由于用于GNN模型训练的图数据受限导致图神经网络模型的模型效果差的问题,提高了图神经网络模型训练的模型效果。
在一个示范性实施例中,在CXL设备上基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,包括:
S11,基于目标图的拓扑结构对每个目标节点分别进行k阶邻居节点遍历,得到与每个目标节点对应的子图。
在本实施例中,对于每个目标节点,在执行邻居抽样操作时,可以基于目标图的拓扑结构对每个目标节点分别进行k阶邻居节点遍历,这里的k为大于或者等于1的正整数,k阶邻居遍历可以是遍历一次遍历该目标节点的1阶邻居节点至k阶邻居节点,从而得到与每个目标节点对应的子图,这里,与每个目标节点对应的子图的子图节点集合包含每个目标节点以及遍历到的每个目标节点的邻居节点,也可以包含每个目标节点以及从遍历到的每个目标节点的所有邻居节点中抽样出的邻居节点,抽样出的邻居节点的数量可以为一个或多个,本实施例中对此不做限定。
例如,在数据准备阶段,需要从整个图中找出目标节点所在的k阶邻居节点,然后查询所有目标节点的k阶邻居节点的向量数据。k阶邻居的搜索过程需要以目标节点为中心向外遍历k层,当k=1时,直接基于边数据即可获得邻居节点。因此,CPU可以先读取存在CXL-MEM中的图结构数据,然后根据目标节点进行k阶遍历,最后在找到的邻居节点中进行抽样。
通过本实施例,通过对目标节点进行k阶邻居遍历,并对遍历到的邻居节点进行抽样,从而得到作为GNN模型的训练数据的子图,可以提高数据准备的合理性。
在一个示范性实施例中,基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,包括:
S21,在CXL设备上基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图。
相比于基于SSD设备的内存扩展方案,基于CXL设备的内存扩展方案具有一定的性能优势。但是,如果由中央处理器控制执行邻居抽样操作,对于基于SSD设备的内存扩展方案,如果把在图结构数据上进行的邻居抽样操作放在SSD上,则会使得整个系统的性能降低,虽然CXL设备相对于SSD时延要低,但由于CXL设备内存的访问时延比本地内存的时延高,因此在执行邻居抽样操作时,中央处理器与CXL设备之间的数据传输量仍会比较高,因此,存在CXL内存访问时延大的问题。
为了提高整个系统的性能,在本实施例中,可以在CXL设备上基于目标图的拓扑结构直接对每个目标节点分别执行邻居抽样操作,得到一组子图,这里,邻居抽样操作可以是由CXL设备上集成的邻居抽样处理单元执行的,而不需要不用CPU频繁访问CXL设备上的图结构数据,进而降低了CPU与CXL设备之间的数据传输量,提高了整个系统的性能。
例如,如图5所示,邻居抽样操作可以是在CXL type3设备上执行的,而特征查询操作可以是由CPU执行的,而CPU和CXL type3设备分别负责的数据流转过程如图6所示,其中,CPU可以向CXL type3设备发送目标节点集合(一组目标节点),CXL type3设备接收到目标节点集合之后,通过邻居抽样处理单元执行邻居抽样操作,抽样后的邻居节点可以返给至CPU,并存储到系统内存中。
通过本实施例,通过在CXL设备上直接执行邻居抽样操作,可以降低CPU与CXL设备之间的数据传输量,提高整个系统的性能。
在一个示范性实施例中,在CXL设备上基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图,包括:
S31,在CXL设备上使用预设的第一内联函数基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图。
在本实施例中,可以在CXL设备上实现一个内联(inline)函数(第一内联函数),将邻居抽样操作集成进去,集成后的CXL设备可以直接执行邻居抽样操作,还可以使得抽样后得到的邻居节点集合传输到DRAM或者其他的存储控件中。对应地,在CXL设备上可以使用第一内联函数基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图。
例如,在CXL type3设备上可以实现一个inline函数,将邻居抽样的操作集成进去,从而可以利用CXL type3设备定制化inline函数实现大规模图上的邻居抽样操作。CXLtype3设备内联函数的实现方式可以如图7所示,CPU通过Flex bus(多功能外部总线接口控制器总线)与CXL Type3设备连接,Flex bus可以通过并行总线提供存储器扩展(即,CXLType3设备)。
参见图7,在CXL Type3设备包括:控制与状态寄存器,inline AFU(AcceleratorFunction Unit,加速器功能单元),一致性代理,其中,inline AFU中集成有数据流抽样处理单元,控制与状态寄存器可以按照CXL.IO协议通过Flex bus与CPU进行数据交互,而一致性代理可以按照CXL.MEM协议通过Flex bus与CPU进行数据交互。此外,inline AFU上还可以连接有如DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器)等存储介质。
通过本实施例,通过将邻居抽样操作集成到CXL设备的内联函数中,可以提高邻居抽样操作执行的便捷性。
在一个示范性实施例中,在CXL设备上基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作之后,上述方法还包括:
S41,通过CXL设备将每个子图的拓扑结构数据传递给单机系统的中央处理器;
S42,通过中央处理器按照每个子图的拓扑结构数据从单机系统的动态随机存取存储器中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
在本实施例中,目标图的图结构数据可以存在的第一内存中,而其节点特征向量数据(包含目标图中的每个节点的节点特征向量)可以存储在单机系统的动态随机存取存储器中,即,DRAM中,例如,节点向量数据存储在如图3所示的DRAM中。在此情况下,特征查询操作可以是由中央处理器执行的。在此情况下,在得到每个子图的拓扑结构数据之后,CXL设备可以将每个子图的拓扑结构数据传递给中央处理器,由中央处理器执行后续的特征查询操作。
中央处理器在接收到每个子图的拓扑结构数据之后,可以查找每个子图的子图节点集合中的每个节点的节点特征向量:可以从动态随机存取存储器中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,上述查找可以是基于节点标识所执行的查找,也可以是基于目标图的图标识和对应节点的节点标识所执行的查找,本实施例中对此不做限定。
例如,抽样后得到的邻居节点会在系统内存(即,DRAM)上进行嵌入特征向量(即,节点特征向量)的查询,比如,CXL type3设备使用实现好的内联函数进行邻居抽样的计算,然后将抽样出来的子图节点集合发送给CPU侧,进行相应的节点特征向量查询。
通过本实施例,由中央处理器在系统内存进行节点特征向量查询,可以降低对CXL设备的要求,提高节点特征向量查询的适用性。
在一个示范性实施例中,通过CXL设备将每个子图的拓扑结构数据传递给单机系统的中央处理器,包括:
S51,通过CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内;
S52,通过中央处理器根据指定存放地址从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
在本实施例中,中央处理器和CXL设备之间可以通过指定存储空间进行每个子图的拓扑结构数据的传输。这里,指定存储空间可以是到指定存放地址所指定的地址空间,指定存放地址可以是默认配置的,也可以是由中央处理器或者其他处理器对CXL设备进行参数配置所配置的。
在执行完邻居抽样操作之后,CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内,而中央处理器可以根据指定存放地址从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据,从而完成每个子图的拓扑结构数据在CXL设备与中央处理器之间的传递。
这里,中央处理器获取每个子图的拓扑结构数据可以是基于CXL设备的触发执行的,也可以是基于默认配置执行的,即,中央处理器可以控制CXL设备执行邻居抽样操作,并在至少间隔指定时间段之后,从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
例如,CPU可以对CXL Type3设备数据流抽样处理单元进行参数配置,包括抽样后数据的存放地址等,然后向CXL Type3设备提交包含目标节点集合的数据,数据流抽样处理单元按照预先配置的参数对实时传输的数据内容进行在线抽样处理,处理后的数据被存放在指定的地址空间,CPU通过访问对应地址即可获取抽样后的邻居节点。
通过本实施例,通过使用指定存放地址所指定的地址空间完成每个子图的拓扑结构数据在CXL设备与中央处理器之间的传递,可以提高数据传输的效率。
在一个示范性实施例中,在通过CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之后,上述方法还包括:
S61,通过CXL设备按照CXL输入输出协议向中央处理器发送中断请求,其中,中断请求用于指示每个子图的拓扑结构数据已存放到指定存放地址所指定的地址空间内。
在本实施例中,中央处理器获取每个子图的拓扑结构数据可以是基于CXL设备的触发执行的,CXL设备可以向中央处理器发送中断请求,该中断请求用于指示每个子图的拓扑结构数据已存放到指定存放地址所指定的地址空间内。这里,中断请求可以是按照CXL输入输出协议执行的。
例如,数据流抽样处理单元在将处理后的数据存放到指定的地址空间之后,通过CXL.IO协议向CPU发送中断,CPU收到中断后,通过访问对应地址即可获取抽样后的邻居节点。
通过本实施例,CXL设备按照CXL.IO向中央处理器发送中断请求,以触发CPU获取抽样后的邻居节点,可以提高数据获取的效率。
在一个示范性实施例中,通过中央处理器根据指定存放地址从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据,包括:
S71,通过中央处理器根据指定存放地址按照CXL内存协议从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
在本实施例中,中央处理器从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据可以是按照CXL内存协议执行的。这里,在上行方向上,CXL内存协议可以用于向CPU传输抽样后的邻居节点。
例如,对于如图7中所示的CXL.MEM协议,在上行方向上,CXL Type3设备的一致性代理单元可以与Flex总线之间基于CXL.MEM协议进行抽样后的邻居节点传输。对于CPU,CPU收到中断之后,可以通过CXL.MEM访问对应地址即可获取抽样后的邻居节点。此外,在下行方向上,CPU可以通过CXL.MEM向CXL Type3设备提交包含目标节点集合的数据。
通过本实施例,中央处理器按照CXL内存协议从指定存放地址所指定的地址空间内获取数据,CXL.MEM协议支持的数据传输的数据量不是很大,能够充分利用CXL协议的优势,提高数据传输的效率。
在一个示范性实施例中,在通过CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之前,上述方法还包括:
S81,通过CXL设备接收单机系统的中央处理器按照CXL输入输出协议发送的参数配置信息,其中,参数配置信息用于指示每个子图的拓扑结构数据的指定存放地址。
在本实施例中,指定存放地址可以是由中央处理器通过参数配置信息进行指定的。CXL设备可以接收单机系统的中央处理器发送的参数配置信息,该参数配置信息用于指示每个子图的拓扑结构数据的指定存放地址,这里,参数配置信息可以是按照CXL输入输出协议发送的。
例如,CPU通过CXL.IO对数据流抽样处理单元进行参数配置,包括抽样后数据的存放地址等。如图7所示,在上行方向上,CXL Type3设备可以向CPU传输处理单元运行状态,即,数据流抽样处理单元,在下行方向上,CPU可以通过CXL.IO向CXL Type3设备发送处理单元参数配置。
通过本实施例,由中央处理器按照CXL.IO协议向CXL设备进行参数配置,以指定抽样后数据的存放地址,可以提高数据传输的可靠性,同时提高数据存放的灵活性。
在一个示范性实施例中,获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,包括:
S91,在CXL设备上将每个子图的拓扑结构数据传输至CXL设备的第二内存,其中,节点特征向量数据存储在第二内存中;
S92,在CXL设备上按照每个子图的拓扑结构数据从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,其中,节点特征向量数据包含多个预设节点中的每个预设节点的节点特征向量。
在本实施例中,可以将每个子图的拓扑结构数据存储在CXL设备的第二内存中,在得到每个子图的拓扑结构数据之后,CXL设备可以将从第一内存中得到的每个子图的拓扑结构数据传输至第二内存,并按照每个子图的拓扑结构数据,从第二内存中存储的节点特征向量数据中查找每个子图的子图节点集合中的每个节点的节点特征向量。这种情况下,CPU侧只需负责启动模型训练,调度各个模块的计算等,极大地释放了CPU侧的算力。
可选地,在单机系统中引入CXL 交换机设备后,可以将在CXL Switch设备上连接更多的内存设备,进而进行更大规模的图上的GNN模型的有效训练。例如,如8所示,在引入CXL switch之后,可以在CXL Switch上连接多个内存设备,即,CXL-MEM1和CXL-MEM2,将每个节点的向量数据存储到CXL-MEM1上,将由CXL-MEM2通过抽样得到的邻居节点传输至CXL-MEM1,可以通过inline函数实现邻居抽样和节点向量查找的功能,而查询到节点向量后,直接通过CXL设备传输到GPU上,
通过本实施例,通过将每个子图的拓扑结构数据存储到CXL设备的内存中,并在CXL设备上查找节点的节点特征向量,可以减少CPU的运算量,提高模型训练的效率。
通过本实施例,通过信道层判断VPP点灯信号和SGPIO点灯信号切换的时机,可以在不同的时间区间内,交替使用时分复用信道传输VPP点灯信号和SGPIO点灯信号,可以提高信号传输的效率。
在一个示范性实施例中,在CXL设备上按照每个子图的拓扑结构数据从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,包括:
S101,在CXL设备上使用预设的第二内联函数按照每个子图的拓扑结构数据,从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
在本实施例中,可以利用CXL设备定制化内联函数实现节点向量查询操作:CXL设备可以使用预设的第二内联函数按照每个子图的拓扑结构数据,从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。这里,第二内联函数与第一内联函数可以是同一内联函数,也可以是不同的内联函数。
这里,存储节点特征向量数据的CXL设备可以使用实现好的inline函数进行不同节点的节点特征向量的查询(即,查找),只要该inline函数实现节点向量查找功能即可,这里的节点向量查找功能即从节点特征向量数据查找预设节点的节点特征向量的功能。以CXL type3设备为例,CXL type3设备可以使用定制化内联函数实现节点向量查询操作。
通过本实施例,使用内联函数实现节点特征向量的查找,可以提高节点特征向量查找的便捷性。
在一个示范性实施例中,在使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练之前,上述方法还包括:
S111,通过CXL设备将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,以由图形处理单元使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练。
为了对图神经网络模型进行训练之前,CXL设备可以将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,这里,与前述实施例中类似的,图神经网络模型存储在图形处理单元的显存中(即,GNN模型数据存储在显存中),例如,CPU或者CXL设备可以查询后的特征向量数据通过PCIe总线传输到GPU显存中。图形处理单元可以是使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练。
每个子图的拓扑结构数据和每个子图的特征向量数据可以是一起传输给图形处理单元,也可以是分别传输给图形处理单元,每个子图的拓扑结构数据和每个子图的特征向量数据可以直接由CXL设备通过连接CXL设备和图形处理单元的通信总线直接传输给图形处理单元,也可以是由CXL设备先将每个子图的拓扑结构数据和每个子图的特征向量数据中的全部或者部分先传输至单机系统的其他设备(例如,DRAM),再由其他设备传输给图形处理单元。本实施例中对此不做限定。
通过本实施例,通过CXL设备将训练数据传输给图形处理单元,以由图形处理单元进行模型训练,可以数据传输的可靠性和灵活性。
在一个示范性实施例中,通过CXL设备将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,包括:
S121,在图形处理单元与CXL设备连接到同一CXL交换机上的情况下,通过CXL设备采用点对点传输的方式经由CXL交换机将每个子图的拓扑结构数据和每个子图的特征向量数据传输至图形处理单元。
单机系统的不同设备之间可以通过PCIe总线进行数据传输,例如,单机系统的各个设备可以连接到同一PCIe总线上,通过连接的PCIe总线,可以进行不同设备之间的数据传输。在本实施例中,可以在单机系统中引入CXL switch(交换机)设备,引入CXL switch设备之后的系统架构可以如图8所示,CXL设备通过一个CXL交换机连接到单机系统的PCIe总线上。在此情况下,CXL设备将每个子图的拓扑结构数据和每个子图的特征向量数据传输至图形处理单元的传输方式与图形处理单元是否在CXL交换机下有关,即,与图形处理单元是否能集成CXL协议相关。
对于图形处理单元与CXL设备连接到同一CXL交换机上的场景,可以通过P2P(Point to Point,点对点)传输的方式直接传输:CXL设备采用点对点传输的方式经由CXL交换机将每个子图的拓扑结构数据和每个子图的特征向量数据传输至图形处理单元。
例如,如图9所示,在引入CXL switch之后,如果GPU在CXL交换机下,在数据准备阶段所需准备的训练数据均可以在CXL type3设备内完成,而不需要CPU的干预,不仅节省了PCIe总线的带宽,并且引入CXL switch之后可以连接更多的内存设备,进而进行更大规模的图上的GNN模型的有效训练。
通过本实施例,通过引入CXL交换机,当图形处理单元与CXL设备连接到同一CXL交换机上时,通过点对点传输的方式将训练数据直接传输给图形处理单元,不仅节省了PCIe总线的带宽,也增加了允许连接的内存设备的数量,提高了模型训练的有效性。
在一个示范性实施例中,通过CXL设备将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,包括:
S131,在图形处理单元与CXL设备未连接到同一CXL交换机上的情况下,通过CXL设备将每个子图的特征向量数据传输至单机系统的动态随机存取存储器进行存储;
S132,通过动态随机存取存储器将存储的每个子图的特征向量数据传输至图形处理单元。
在本实施例中,对于图形处理单元与CXL设备未连接到同一CXL交换机上的场景,CXL设备可以将每个子图的特征向量数据传输至单机系统的动态随机存取存储器进行存储:CXL设备将每个子图的特征向量数据传输中央处理器,由中央处理器每个子图的特征向量数据存储至中央处理器的动态随机存取存储器。这里,每个子图的拓扑结构数据也可以采用类似的方式传输至动态随机存取存储器进行存储。
动态随机存取存储器中存储的每个子图的特征向量数据可以被传输至图形处理单元:中央处理器控制将动态随机存取存储器中存储的每个子图的特征向量数据传输至图形处理单元,与前述类似的,每个子图的拓扑结构数据也可以采用类似的方式传输至图形处理单元。
这里,同一子图的拓扑结构数据和特征向量数据可以是一起进行传输的,也可以是分别进行传输的,不同子图的拓扑结构数据和特征向量数据可以是一起进行传输的,也可以是分别进行传输的,此外,每个子图的拓扑结构数据也可以由CXL设备直接传输给图形处理单元,本实施例中对于拓扑结构数据和特征向量数据的传输方式不做限定。
例如,如图8所示,如果GPU不在CXL交换机下,节点向量数据可以采用正常的方式,先传输到系统内存DRAM,然后再向GPU传输。
通过本实施例,当图形处理单元与CXL设备未连接到同一CXL交换机上时,经由动态随机存取存储器将节点向量数据传输给图形处理单元,可以兼顾已有的数据传输方式,提高数据传输的可靠性。
在一个示范性实施例中,在本实施例中,CXL设备可以通过一个CXL交换机连接到单机系统的PCIe总线上,PCIe总线上还连接有动态随机存取存储器。对应地,对于图形处理单元与CXL设备未连接到同一CXL交换机上的场景,通过CXL设备将每个子图的特征向量数据传输至单机系统的动态随机存取存储器进行存储,包括:
S141,通过CXL设备将每个子图的特征向量数据依次经由CXL交换机和PCIe总线传输至动态随机存取存储器进行存储。
CXL设备可以将每个子图的特征向量数据先传输给CXL交换机,由CXL交换机通过PCIe总线将每个子图的特征向量数据传输至动态随机存取存储器进行存储:CXL交换机通过PCIe总线将每个子图的特征向量数据传输至中央处理器,中央处理器将CXL交换机传输的每个子图的特征向量数据存储至动态随机存取存储器中。
通过本实施例,在CXL设备和动态随机存取存储器之间经由CXL交换机和PCIe总线进行数据传输,可以保证数据传输可靠性的同时,提高PCIe总线带宽的利用率。
在一个示范性实施例中,通过动态随机存取存储器将存储的每个子图的特征向量数据传输至图形处理单元,包括:
S151,通过动态随机存取存储器将存储的每个子图的特征向量数据通过直接内存访问的方式传输至图形处理单元。
在本实施例中,考虑到查询后的节点特征向量的存储规模比较大,为了提高传输效率,减少CXL协议的开销,节点特征向量通过DMA(Direct Memory Access, 直接内存访问)的传输方式传输给GPU:CPU可以将查询出来的节点特征向量(即,每个子图的特征向量数据)通过DMA(对于CXL.IO协议支持的情况)的方式传输给GPU,GPU可以使用接收到的节点特征向量进行GNN模型训练。
在本实施例中,对于动态随机存取存储器存储每个子图的特征向量数据的场景,可以动态随机存取存储器可以将存储的每个子图的特征向量数据通过直接内存访问的方式传输至图形处理单元:CPU将动态随机存取存储器中存储的每个子图的特征向量数据通过直接内存访问的传输方式传输至图形处理单元。
通过本实施例,通过直接内存访问的传输方式将节点特征向量传输给GPU,可以减少CXL协议的开销,提高数据传输的效率。
在一个示范性实施例中,在CXL设备上基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作之后,上述方法还包括:
S161,通过CXL设备将每个子图的拓扑结构数据通过直接内存访问的方式传输至图形处理单元。
在本实施例中,每个子图的拓扑结构数据可以是由CXL设备直接传输给图形处理单元,例如,通过PCIe总线直接传输给图形处理单元,而不需要向存储到动态随机存取存储器,再由动态随机存取存储器传输给图形处理单元。
这里,CXL设备可以按照多种协议将每个子图的拓扑结构数据传输至图形处理单元,例如,CXL设备可以按照CXL.IO协议将每个子图的拓扑结构数据传输至图形处理单元。考虑到通常每个子图的拓扑结构数据的数据量较大,也可以将每个子图的拓扑结构数据通过直接内存访问的方式传输至图形处理单元,从而减少CXL协议的开销,已经进行过说明的,再次不做赘述。
例如,CXL type3设备可以进行邻居抽样的计算,将抽样出的子图节点集合发送给CPU侧,进行相应的节点特征向量查询;同时,该子图的拓扑结构数据通过DMA(CXL.MEM协议支持,因为此时CXL type3设备的内存可以看成是主存的一部分)的方式传输给GPU。
通过本实施例,通过直接内存访问的传输方式将子图的拓扑结构数据传输给GPU,可以减少CXL协议的开销,提高数据传输的效率。
作为一种可选示例,参见图10,GNN模型的模型训练过程可以涉及3个组件,即,CPU、GPU和CXL type3设备,其流程可以包括以下步骤:
步骤1,CPU将邻居抽样所需的一个batch的目标节点通过CXL.MEM协议发送给CXLtype3设备。
步骤2,CXL type3设备使用实现好的内联函数进行邻居抽样的计算,然后将抽样出来的子图节点集合发送给CPU侧,进行相应的节点特征向量查询;
步骤3,CPU将查询出来的节点特征向量通过DMA的方式传输给GPU,GPU进行GNN训练。
此时,一个batch的GNN训练已经完成,接下来开启下一个batch的训练,直到模型收敛,或者满足训练结束条件。
通过本可选示例,提出使用CXL type3设备来扩大单机系统上可训练的GNN模型,设计了一套GNN训练的系统架构,从训练数据和模型容量上进行scale-up,使得在尽量不降低性能的情况下,单机系统上使用更多更大的图数据进行训练,从而提高GNN模型的训练和推理效果。
在一个示范性实施例中,在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,包括:
S171,在单机系统上对待训练的图神经网络模型进行模型训练的情况下,从目标节点集合中分多次选取指定数量的目标节点,得到多个批次的一组目标节点,其中,多个批次的一组目标节点以流水线并行的方式依次对图神经网络模型进行训练。
在本实施例中,为了提高图神经网络模型的模型效果,可以使用多个批次的一组目标节点依次对图神经网络模型进行模型训练,对应地,可以从目标节点集合中分多次选取指定数量的目标节点,得到多个批次的一组目标节点,这里的目标节点集合可以包括多个预设节点中的全部或者部分。这里,多个批次的目标节点可以是从目标节点集合中分多次选取的指定数量的目标节点,每次选取的目标节点的数量可以相同,也可以不同,本实施例中对此不作限定。
在使用多个批次的一组目标节点在对图神经网络进行训练的过程中,由于整个的训练过程涉及到数据准备阶段和模型训练阶段,为了提高整体的GNN训练效率,可以从单机系统的多个设备的协作方式上,组织batch维度的流水线并线的方式进行训练。例如,如图11所示,不同的线型对应不同的batch。
上述以流水线并行的方式是指单机系统与模型训练相关的多个设备按照模型训练的流程基于多个批次的一组目标节点并行执行本设备所需执行的操作,从而缩短模型训练中后一个等待前一个设备执行处理操作所需的时间。例如,CXL设备、中央处理器和图形处理单元以流水线的形式并行执行对应的操作,以完成对GNN模型的模型训练,这里,CXL设备对应的操作为邻居抽样操作,中央处理器对应的操作为特征查询操作,图形处理单元对应的操作为模型训练操作。对于其他的处理逻辑,例如,由中央处理器或者CXL设备执行邻居抽样操作和特征查询操作,由图形处理单元执行模型训练操作,可以采用类似的处理逻辑,在此不做赘述。
通过本实施例,通过将多个批次的目标节点中的每个批次的目标节点依次作为一组目标节点,以流水线并行的方式对图神经网络模型进行训练,可以减少图神经网络模型的训练时间,提高图神经网络模型的训练效率。
在一个示范性实施例中,使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型,包括:
S181,通过图神经网络模型按照每个子图的拓扑结构数据对每个子图的子图节点集合中除了目标节点以外的其他节点的节点特征向量执行聚合操作、并将聚合后的节点特征向量与每个子图的子图节点集合的目标节点的节点特征向量执行合并操作,对图神经网络模型的模型参数进行更新,得到已训练的图神经网络模型。
GNN模型的训练可以包括邻居节点向量聚合和向量合并两个步骤,其中,邻居节点向量聚合指的是按照每个子图的拓扑结构数据对每个子图的子图节点集合中除了目标节点以外的其他节点的节点特征向量执行聚合操作,聚合操作可以是通过聚合函数对除了目标节点以外的其他节点的节点特征向量进行聚合,得到聚合后的节点特征向量,对于不同类型的聚合函数,聚合后的节点特征向量可以为除了目标节点以外的其他节点的节点特征向量的平均值、最小值、最大值、和或者其他值。
向量合并指的是将聚合后的节点特征向量与每个子图的子图节点集合的目标节点的节点特征向量执行合并操作,以对每个子图节点集合的目标节点的节点特征向量进行更新。
在不同的GNN模型中,在邻居节点向量聚合和向量合并两个步骤上可以有不同的设计,例如,GAT(graph attention networks,图注意力网络)模型在邻居节点向量聚合步骤中加入了注意力机制,GCN(Graph Convolutional Network,图卷积神经网络)在邻居节点向量聚合步骤中使用了卷积操作。
可选地,邻居节点向量聚合和向量合并两个步骤和一般的模型训练过程一样可以在GPU上完成,也可以通过CXL type3设备的内存扩展来进行大规模图神经网络模型的有效训练,以显著提升模型的训练效果。
通过上述聚合操作和合并操作,可以对图神经网络模型的模型参数进行更新,得到已训练的图神经网络模型,这里,对图神经网络模型的模型参数进行更新可以是对图神经网络模型中与生成节点的节点特征向量相关的模型参数进行更新,也可以是对图神经网络模型中其他与节点相关的模型参数进行更新,本实施例中对比不做限定。
需要说明的是,在问题类型层面,GNN可以被用于节点分类和图分类,节点分类是通过模型预测图中每个节点的类别,图分类是在给定图的节点和关系特征情况下,通过模型预测单个图在图级别的类别,用于节点分类的应用场景通常比图分类更多,本实施例中的已训练的图神经网络模型可以用于对每个节点的节点特征向量进行更新,属于节点分类。
可选地,GraphSage(一种图神经网络算法)是一个被广泛使用的工业级的基于图神经网络模型的推荐算法,作为PinSage(基于 GraphSAGE 实现的召回算法),被成功应用于Pinterest(一种图片分享APP(Application,应用程序)),在部分实施例中,可以以GraphSage算法作为优化加速的算法原型和基础。
通过本实施例,通过执行聚合操作和合并操作,对图神经网络模型进行模型训练,得到已训练的图神经网络模型,可以提高图神经网络模型训练的可靠性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的又一方面,还提供了一种图神经网络模型的训练装置,该装置用于实现上述实施例中所提供的图神经网络模型的训练方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图12是根据本申请实施例的一种图神经网络模型的训练装置的结构框图,如图12所示,该装置包括:
确定单元1202,用于在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,目标图的拓扑结构数据存储在单机系统的计算快速链路CXL设备的第一内存中,目标图的拓扑结构数据用于指示目标图的拓扑结构;
执行单元1204,用于基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,一组子图中的每个子图的子图节点集合包含一组目标节点中的一个目标节点以及一个目标节点的至少一个邻居节点;
获取单元1206,用于获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据;
训练单元1208,用于使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型,其中,每个子图的拓扑结构数据用于指示每个子图的拓扑结构。
通过上述模块,在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,目标图的拓扑结构数据存储在单机系统的计算快速链路CXL设备的第一内存中,目标图的拓扑结构数据用于指示目标图的拓扑结构;基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,一组子图中的每个子图的子图节点集合包含一组目标节点中的一个目标节点以及一个目标节点的至少一个邻居节点;获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据;使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型,其中,每个子图的拓扑结构数据用于指示每个子图的拓扑结构,可以解决相关技术中的图神经网络模型的训练方法存在由于用于GNN模型训练的图数据受限导致图神经网络模型的模型效果差的问题,提高了图神经网络模型训练的模型效果。
在一个示范性实施例中,执行单元包括:
遍历模块,用于基于目标图的拓扑结构对每个目标节点分别进行k阶邻居节点遍历,得到与每个目标节点对应的子图,其中,与每个目标节点对应的子图的子图节点集合包含每个目标节点以及从遍历到的每个目标节点的所有邻居节点中抽样出的邻居节点,k为大于或者等于1的正整数。
在一个示范性实施例中,执行单元包括:
第一执行模块,用于在CXL设备上基于目标图的拓扑结构对每个目标节点分别执行邻居抽样操作,得到一组子图。
在一个示范性实施例中,执行单元包括:
第二执行模块,用于在CXL设备上使用预设的第一内联函数基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图。
在一个示范性实施例中,上述装置还包括:
传递单元,用于在CXL设备上基于目标图的拓扑结构对每个目标节点分别执行邻居抽样操作之后,通过CXL设备将每个子图的拓扑结构数据传递给单机系统的中央处理器;
查找单元,用于通过中央处理器按照每个子图的拓扑结构数据从单机系统的动态随机存取存储器中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,其中,节点特征向量数据包含目标图中的每个节点的节点特征向量。
在一个示范性实施例中,传递单元包括:
存储模块,用于通过CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内;
获取模块,用于通过中央处理器根据指定存放地址从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
在一个示范性实施例中,上述装置还包括:
第一发送单元,用于在通过CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之后,通过CXL设备按照CXL输入输出协议向中央处理器发送中断请求,其中,中断请求用于指示每个子图的拓扑结构数据已存放到指定存放地址所指定的地址空间内。
在一个示范性实施例中,获取模块包括:
获取子模块,用于通过中央处理器根据指定存放地址按照CXL内存协议从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
在一个示范性实施例中,上述装置还包括:
第二发送单元,用于在通过CXL设备将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之前,通过CXL设备接收单机系统的中央处理器按照CXL输入输出协议发送的参数配置信息,其中,参数配置信息用于指示每个子图的拓扑结构数据的指定存放地址。
在一个示范性实施例中,获取单元包括:
第一传输模块,用于在CXL设备上将每个子图的拓扑结构数据传输至CXL设备的第二内存,其中,节点特征向量数据存储在第二内存中;
查找模块,用于在CXL设备上按照每个子图的拓扑结构数据从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,其中,节点特征向量数据包含目标图中的每个节点的节点特征向量。
在一个示范性实施例中,查找模块包括:
查找子模块,用于在CXL设备上使用预设的第二内联函数按照每个子图的拓扑结构数据,从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
在一个示范性实施例中,上述装置还包括:
第一传输单元,用于在使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练之前,通过CXL设备将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,以由图形处理单元使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,其中,图形处理单元的显存中存储有图神经网络模型。
在一个示范性实施例中,第一传输单元包括:
第二传输模块,用于在图形处理单元与CXL设备连接到同一CXL交换机上的情况下,通过CXL设备采用点对点传输的方式经由CXL交换机将每个子图的拓扑结构数据和每个子图的特征向量数据传输至图形处理单元。
在一个示范性实施例中,第一传输单元包括:
第三传输模块,用于在图形处理单元与CXL设备未连接到同一CXL交换机上的情况下,通过CXL设备将每个子图的特征向量数据传输至单机系统的动态随机存取存储器进行存储;
第四传输模块,用于通过动态随机存取存储器将存储的每个子图的特征向量数据传输至图形处理单元。
在一个示范性实施例中,CXL设备通过一个CXL交换机连接到单机系统的高速外围设备互连总线标准PCIe总线上,PCIe总线上还连接有动态随机存取存储器;对应地,第三传输模块包括:
第一传输子模块,用于在图形处理单元未连接到CXL交换机上的情况下,通过CXL设备将每个子图的特征向量数据依次经由CXL交换机和PCIe总线传输至动态随机存取存储器进行存储。
在一个示范性实施例中,第四传输模块包括:
第二传输子模块,用于通过动态随机存取存储器将存储的每个子图的特征向量数据通过直接内存访问的方式传输至图形处理单元。
在一个示范性实施例中,上述装置还包括:
第二传输单元,用于在CXL设备上基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作之后,通过CXL设备将每个子图的拓扑结构数据通过直接内存访问的方式传输至图形处理单元。
在一个示范性实施例中,确定单元包括:
选取模块,用于在单机系统上对待训练的图神经网络模型进行模型训练的情况下,从目标节点集合中分多次选取指定数量的目标节点,得到多个批次的一组目标节点,其中,多个批次的一组目标节点以流水线并行的方式依次对图神经网络模型进行训练。
在一个示范性实施例中,训练单元包括:
第三执行模块,用于通过图神经网络模型按照每个子图的拓扑结构数据对每个子图的子图节点集合中除了目标节点以外的其他节点的节点特征向量执行聚合操作、并将聚合后的节点特征向量与每个子图的子图节点集合的目标节点的节点特征向量执行合并操作,对图神经网络模型的模型参数进行更新,得到已训练的图神经网络模型。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。可选地,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一方面,还提供了一种单机系统,该单机系统用于实现上述实施例中所提供的图神经网络模型的训练方法,已经进行过说明的不再赘述。尽管以下实施例所描述的单机系统较佳地以硬件来实现,但是软件,或者软件和硬件的组合的实现也是可能并被构想的。
在一个示例性实施例中,上述单机系统可以包括:中央处理器,CXL设备,模型训练部件,其中,
中央处理器,用于在单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,目标图的拓扑结构数据存储在CXL设备的第一内存中,目标图的拓扑结构数据用于指示目标图的拓扑结构;
中央处理器或者CXL设备,还用于基于目标图的拓扑结构对一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,一组子图中的每个子图的子图节点集合包含一组目标节点中的一个目标节点以及一个目标节点的至少一个邻居节点;
中央处理器或者CXL设备,还用于获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据;
模型训练部件,用于使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,得到已训练的图神经网络模型,其中,每个子图的拓扑结构数据用于指示每个子图的拓扑结构。
在一个示范性实施例中,中央处理器或者CXL设备,还用于基于目标图的拓扑结构对每个目标节点分别进行k阶邻居节点遍历,得到与每个目标节点对应的子图,其中,与每个目标节点对应的子图的子图节点集合包含每个目标节点以及从遍历到的每个目标节点的所有邻居节点中抽样出的邻居节点,k为大于或者等于1的正整数。
在一个示范性实施例中,邻居抽样操作由CXL设备执行,CXL设备,还用于使用预设的第一内联函数基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图。
在一个示范性实施例中,CXL设备,还用于在基于目标图的拓扑结构对每个目标节点分别执行邻居抽样操作之后,将每个子图的拓扑结构数据传递给中央处理器;
中央处理器,还用于按照每个子图的拓扑结构数据从单机系统的动态随机存取存储器中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,其中,节点特征向量数据包含目标图中的每个节点的节点特征向量。
在一个示范性实施例中,CXL设备,还用于将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内;
中央处理器,还用于根据指定存放地址从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
在一个示范性实施例中,CXL设备,还用于在将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之后,按照CXL输入输出协议向中央处理器发送中断请求,其中,中断请求用于指示每个子图的拓扑结构数据已存放到指定存放地址所指定的地址空间内。
在一个示范性实施例中,中央处理器,还用于根据指定存放地址按照CXL内存协议从指定存放地址所指定的地址空间内获取每个子图的拓扑结构数据。
在一个示范性实施例中,CXL设备,还用于在将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之前,接收中央处理器按照CXL输入输出协议发送的参数配置信息,其中,参数配置信息用于指示每个子图的拓扑结构数据的指定存放地址。
在一个示范性实施例中,CXL设备,还用于将每个子图的拓扑结构数据传输至CXL设备的第二内存,其中,节点特征向量数据存储在第二内存中;按照每个子图的拓扑结构数据从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,其中,节点特征向量数据包含目标图中的每个节点的节点特征向量。
在一个示范性实施例中,CXL设备,还用于使用预设的第二内联函数按照每个子图的拓扑结构数据,从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
在一个示范性实施例中,CXL设备,还用于在使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练之前,将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,以由图形处理单元使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,其中,图形处理单元的显存中存储有图神经网络模型,模型训练部件为图形处理单元。
在一个示范性实施例中,CXL设备,还用于在图形处理单元与CXL设备连接到同一CXL交换机上的情况下,采用点对点传输的方式经由CXL交换机将将每个子图的拓扑结构数据和每个子图的特征向量数据传输至图形处理单元。
在一个示范性实施例中,单机系统还包括:动态随机存取存储器,其中,
CXL设备,还用于在图形处理单元与CXL设备未连接到同一CXL交换机上的情况下,将每个子图的特征向量数据传输至动态随机存取存储器进行存储;
动态随机存取存储器,用于将存储的每个子图的特征向量数据传输至图形处理单元。
在一个示范性实施例中,CXL设备通过一个CXL交换机连接到单机系统的高速外围设备互连总线标准PCIe总线上,PCIe总线上还连接有动态随机存取存储器;
CXL设备,还用于在图形处理单元未连接到CXL交换机上的情况下,将每个子图的特征向量数据依次经由CXL交换机和PCIe总线传输至动态随机存取存储器进行存储。
在一个示范性实施例中,动态随机存取存储器,还用于将存储的每个子图的特征向量数据通过直接内存访问的方式传输至图形处理单元。
在一个示范性实施例中,CXL设备,还用于在基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作之后,将每个子图的拓扑结构数据通过直接内存访问的方式传输至图形处理单元。
在一个示范性实施例中,中央处理器,还用于在单机系统上对待训练的图神经网络模型进行模型训练的情况下,从目标节点集合中分多次选取指定数量的目标节点,得到多个批次的一组目标节点,其中,多个批次的一组目标节点以流水线并行的方式依次对图神经网络模型进行训练。
在一个示范性实施例中,模型训练部件,还用于通过图神经网络模型按照每个子图的拓扑结构数据对每个子图的子图节点集合中除了目标节点以外的其他节点的节点特征向量执行聚合操作、并将聚合后的节点特征向量与每个子图的子图节点集合的目标节点的节点特征向量执行合并操作,对图神经网络模型的模型参数进行更新,得到已训练的图神经网络模型。
根据本申请实施例的又一方面,还提供了一种CXL设备,该CXL设备用于实现上述实施例中所提供的图神经网络模型的训练方法,已经进行过说明的不再赘述。尽管以下实施例所描述的单机系统较佳地以硬件来实现,但是软件,或者软件和硬件的组合的实现也是可能并被构想的。
在一个示例性实施例中,CXL设备可以包括:第一内存,第一内存中存储有目标图的拓扑结构数据,其中,
CXL设备,用于在CXL设备所在的单机系统上对待训练的图神经网络模型进行模型训练的情况下,基于目标图的拓扑结构对目标图中的一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,一组子图中的每个子图的子图节点集合包含一组目标节点中的一个目标节点以及一个目标节点的至少一个邻居节点,每个子图的拓扑结构数据用于指示每个子图的拓扑结构,每个子图的拓扑结构数据和每个子图的特征向量数据用于对图神经网络模型进行训练,得到已训练的图神经网络模型,每个子图的特征向量数据包括每个子图的子图节点集合中的每个节点的节点特征向量。
在一个示例性实施例中,CXL设备,还用于获取每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
在一个示范性实施例中,CXL设备,还用于基于目标图的拓扑结构对每个目标节点分别进行k阶邻居节点遍历,得到与每个目标节点对应的子图,其中,与每个目标节点对应的子图的子图节点集合包含每个目标节点以及从遍历到的每个目标节点的所有邻居节点中抽样出的邻居节点,k为大于或者等于1的正整数。
在一个示范性实施例中,CXL设备,还用于使用预设的第一内联函数基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作,得到一组子图。
在一个示范性实施例中,CXL设备,还用于在基于目标图的拓扑结构对每个目标节点分别执行邻居抽样操作之后,将每个子图的拓扑结构数据传递给中央处理器。
在一个示范性实施例中,CXL设备,还用于将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内。
在一个示范性实施例中,CXL设备,还用于在将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之后,按照CXL输入输出协议向中央处理器发送中断请求,其中,中断请求用于指示每个子图的拓扑结构数据已存放到指定存放地址所指定的地址空间内。
在一个示范性实施例中,CXL设备,还用于在将每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之前,接收中央处理器按照CXL输入输出协议发送的参数配置信息,其中,参数配置信息用于指示每个子图的拓扑结构数据的指定存放地址。
在一个示范性实施例中,CXL设备,还用于将每个子图的拓扑结构数据传输至CXL设备的第二内存,其中,节点特征向量数据存储在第二内存中;按照每个子图的拓扑结构数据从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据,其中,节点特征向量数据包含目标图中的每个节点的节点特征向量。
在一个示范性实施例中,CXL设备,还用于使用预设的第二内联函数按照每个子图的拓扑结构数据,从第二内存中存储的节点特征向量数据查找出每个子图的子图节点集合中的每个节点的节点特征向量,得到每个子图的特征向量数据。
在一个示范性实施例中,CXL设备,还用于在使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练之前,将每个子图的拓扑结构数据和每个子图的特征向量数据传输给单机系统的图形处理单元,以由图形处理单元使用每个子图的拓扑结构数据和每个子图的特征向量数据对图神经网络模型进行训练,其中,图形处理单元的显存中存储有图神经网络模型。
在一个示范性实施例中,CXL设备,还用于在图形处理单元与CXL设备连接到同一CXL交换机上的情况下,采用点对点传输的方式经由CXL交换机将将每个子图的拓扑结构数据和每个子图的特征向量数据传输至图形处理单元。
在一个示范性实施例中,CXL设备,还用于在图形处理单元与CXL设备未连接到同一CXL交换机上的情况下,将每个子图的特征向量数据传输至动态随机存取存储器进行存储。
在一个示范性实施例中,CXL设备通过一个CXL交换机连接到单机系统的PCIe总线上,PCIe总线上还连接有动态随机存取存储器;CXL设备,还用于在图形处理单元未连接到CXL交换机上的情况下,将每个子图的特征向量数据依次经由CXL交换机和PCIe总线传输至动态随机存取存储器进行存储。
在一个示范性实施例中,CXL设备,还用于在基于目标图的拓扑结构对每个目标节点分别进行邻居抽样操作之后,将每个子图的拓扑结构数据通过直接内存访问的方式传输至图形处理单元。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (23)
1.一种图神经网络模型的训练方法,其特征在于,包括:
在单机系统上对待训练的所述图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,所述目标图的拓扑结构数据存储在所述单机系统的计算快速链路CXL设备的第一内存中,所述目标图的拓扑结构数据用于指示所述目标图的拓扑结构;
基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点;
获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据;
使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,其中,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构;
其中,基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,包括:在所述CXL设备上基于所述目标图的拓扑结构对所述每个目标节点分别执行邻居抽样操作,得到所述一组子图。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,包括:
基于所述目标图的拓扑结构对所述每个目标节点分别进行k阶邻居节点遍历,得到与所述每个目标节点对应的子图,其中,与所述每个目标节点对应的子图的子图节点集合包含所述每个目标节点以及从遍历到的所述每个目标节点的所有邻居节点中抽样出的邻居节点,k为大于或者等于1的正整数。
3.根据权利要求1所述的方法,其特征在于,所述在所述CXL设备上基于所述目标图的拓扑结构对所述每个目标节点分别执行邻居抽样操作,得到所述一组子图,包括:
在所述CXL设备上使用预设的第一内联函数基于所述目标图的拓扑结构对所述每个目标节点分别进行邻居抽样操作,得到所述一组子图。
4.根据权利要求1所述的方法,其特征在于,在所述CXL设备上基于所述目标图的拓扑结构对所述每个目标节点分别执行邻居抽样操作之后,所述方法还包括:
通过所述CXL设备将所述每个子图的拓扑结构数据传递给所述单机系统的中央处理器;
通过所述中央处理器按照所述每个子图的拓扑结构数据从所述单机系统的动态随机存取存储器中存储的节点特征向量数据查找出所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据,其中,所述节点特征向量数据包含所述目标图中的每个节点的节点特征向量。
5.根据权利要求4所述的方法,其特征在于,所述通过所述CXL设备将所述每个子图的拓扑结构数据传递给所述单机系统的中央处理器,包括:
通过所述CXL设备将所述每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内;
通过所述中央处理器根据所述指定存放地址从所述指定存放地址所指定的地址空间内获取所述每个子图的拓扑结构数据。
6.根据权利要求5所述的方法,其特征在于,在所述通过所述CXL设备将所述每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之后,所述方法还包括:
通过所述CXL设备按照CXL输入输出协议向所述中央处理器发送中断请求,其中,所述中断请求用于指示所述每个子图的拓扑结构数据已存放到所述指定存放地址所指定的地址空间内。
7.根据权利要求5所述的方法,其特征在于,所述通过所述中央处理器根据所述指定存放地址从所述指定存放地址所指定的地址空间内获取所述每个子图的拓扑结构数据,包括:
通过所述中央处理器根据所述指定存放地址按照CXL内存协议从所述指定存放地址所指定的地址空间内获取所述每个子图的拓扑结构数据。
8.根据权利要求4所述的方法,其特征在于,在所述通过所述CXL设备将所述每个子图的拓扑结构数据存储到指定存放地址所指定的地址空间内之前,所述方法还包括:
通过所述CXL设备接收所述单机系统的中央处理器按照CXL输入输出协议发送的参数配置信息,其中,所述参数配置信息用于指示所述每个子图的拓扑结构数据的所述指定存放地址。
9.根据权利要求1所述的方法,其特征在于,所述获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据,包括:
在所述CXL设备上将所述每个子图的拓扑结构数据传输至所述CXL设备的第二内存,其中,所述节点特征向量数据存储在所述第二内存中;
在所述CXL设备上按照所述每个子图的拓扑结构数据从所述第二内存中存储的节点特征向量数据查找出所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据,其中,所述节点特征向量数据包含所述目标图中的每个节点的节点特征向量。
10.根据权利要求9所述的方法,其特征在于,所述在所述CXL设备上按照所述每个子图的拓扑结构数据从所述第二内存中存储的节点特征向量数据查找出所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据,包括:
在所述CXL设备上使用预设的第二内联函数按照所述每个子图的拓扑结构数据,从所述第二内存中存储的所述节点特征向量数据查找出所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据。
11.根据权利要求9所述的方法,其特征在于,在所述使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练之前,所述方法还包括:
通过所述CXL设备将所述每个子图的拓扑结构数据和所述每个子图的特征向量数据传输给所述单机系统的图形处理单元,以由所述图形处理单元使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,其中,所述图形处理单元的显存中存储有所述图神经网络模型。
12.根据权利要求11所述的方法,其特征在于,所述通过所述CXL设备将所述每个子图的拓扑结构数据和所述每个子图的特征向量数据传输给所述单机系统的图形处理单元,包括:
在所述图形处理单元与所述CXL设备连接到同一CXL交换机上的情况下,通过所述CXL设备采用点对点传输的方式经由所述CXL交换机将所述每个子图的拓扑结构数据和所述每个子图的特征向量数据传输至所述图形处理单元。
13.根据权利要求11所述的方法,其特征在于,所述通过所述CXL设备将所述每个子图的拓扑结构数据和所述每个子图的特征向量数据传输给所述单机系统的图形处理单元,包括:
在所述图形处理单元与所述CXL设备未连接到同一CXL交换机上的情况下,通过所述CXL设备将所述每个子图的特征向量数据传输至所述单机系统的动态随机存取存储器进行存储;
通过所述动态随机存取存储器将存储的所述每个子图的特征向量数据传输至所述图形处理单元。
14.根据权利要求13所述的方法,其特征在于,所述CXL设备通过一个CXL交换机连接到所述单机系统的高速外围设备互连总线标准PCIe总线上,所述PCIe总线上还连接有所述动态随机存取存储器;
所述在所述图形处理单元与所述CXL设备未连接到同一CXL交换机上的情况下,通过所述CXL设备将所述每个子图的特征向量数据传输至所述单机系统的动态随机存取存储器进行存储,包括:
在所述图形处理单元未连接到所述CXL交换机上的情况下,通过所述CXL设备将所述每个子图的特征向量数据依次经由所述CXL交换机和所述PCIe总线传输至所述动态随机存取存储器进行存储。
15.根据权利要求13所述的方法,其特征在于,所述通过所述动态随机存取存储器将存储的所述每个子图的特征向量数据传输至所述图形处理单元,包括:
通过所述动态随机存取存储器将存储的所述每个子图的特征向量数据通过直接内存访问的方式传输至所述图形处理单元。
16.根据权利要求13所述的方法,其特征在于,在所述CXL设备上基于所述目标图的拓扑结构对所述每个目标节点分别进行邻居抽样操作之后,所述方法还包括:
通过所述CXL设备将所述每个子图的拓扑结构数据通过直接内存访问的方式传输至所述图形处理单元。
17.根据权利要求1所述的方法,其特征在于,所述在单机系统上对待训练的所述图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,包括:
在所述单机系统上对待训练的所述图神经网络模型进行模型训练的情况下,从目标节点集合中分多次选取指定数量的目标节点,得到多个批次的所述一组目标节点,其中,多个批次的所述一组目标节点以流水线并行的方式依次对所述图神经网络模型进行训练。
18.根据权利要求1至17中任一项所述的方法,其特征在于,所述使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,包括:
通过所述图神经网络模型按照所述每个子图的拓扑结构数据对所述每个子图的子图节点集合中除了目标节点以外的其他节点的节点特征向量执行聚合操作、并将聚合后的节点特征向量与所述每个子图的子图节点集合的目标节点的节点特征向量执行合并操作,对所述图神经网络模型的模型参数进行更新,得到已训练的所述图神经网络模型。
19.一种图神经网络模型的训练装置,其特征在于,包括:
确定单元,用于在单机系统上对待训练的所述图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,所述目标图的拓扑结构数据存储在所述单机系统的计算快速链路CXL设备的第一内存中,所述目标图的拓扑结构数据用于指示所述目标图的拓扑结构;
执行单元,用于基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点;
获取单元,用于获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据;
训练单元,用于使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,其中,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构;
其中,所述执行单元包括:第一执行模块,用于在所述CXL设备上基于所述目标图的拓扑结构对所述每个目标节点分别执行邻居抽样操作,得到所述一组子图。
20.一种单机系统,其特征在于,包括:中央处理器,计算快速链路CXL设备,模型训练部件,其中,
所述中央处理器,用于在所述单机系统上对待训练的图神经网络模型进行模型训练的情况下,确定目标图中的一组目标节点,其中,所述目标图的拓扑结构数据存储在所述CXL设备的第一内存中,所述目标图的拓扑结构数据用于指示所述目标图的拓扑结构;
所述中央处理器或者所述CXL设备,还用于基于所述目标图的拓扑结构对所述一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点;
所述中央处理器或者所述CXL设备,还用于获取所述每个子图的子图节点集合中的每个节点的节点特征向量,得到所述每个子图的特征向量数据;
所述模型训练部件,用于使用所述每个子图的拓扑结构数据和所述每个子图的特征向量数据对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,其中,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构;
其中,所述CXL设备,还用于基于所述目标图的拓扑结构对所述每个目标节点分别执行邻居抽样操作,得到所述一组子图。
21.一种计算快速链路CXL设备,其特征在于,包括:第一内存,所述第一内存中存储有目标图的拓扑结构数据,其中,
所述CXL设备,用于在所述CXL设备所在的单机系统上对待训练的图神经网络模型进行模型训练的情况下,基于所述目标图的拓扑结构对目标图中的一组目标节点中的每个目标节点分别执行邻居抽样操作,得到一组子图,其中,所述一组子图中的每个子图的子图节点集合包含所述一组目标节点中的一个目标节点以及所述一个目标节点的至少一个邻居节点,所述每个子图的拓扑结构数据用于指示所述每个子图的拓扑结构,所述每个子图的拓扑结构数据和所述每个子图的特征向量数据用于对所述图神经网络模型进行训练,得到已训练的所述图神经网络模型,所述每个子图的特征向量数据包括所述每个子图的子图节点集合中的每个节点的节点特征向量;
其中,所述CXL设备,还用于基于所述目标图的拓扑结构对所述每个目标节点分别执行邻居抽样操作,得到所述一组子图。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至18任一项中所述的方法的步骤。
23.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至18任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311174100.1A CN116910568B (zh) | 2023-09-12 | 2023-09-12 | 图神经网络模型的训练方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311174100.1A CN116910568B (zh) | 2023-09-12 | 2023-09-12 | 图神经网络模型的训练方法及装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116910568A CN116910568A (zh) | 2023-10-20 |
CN116910568B true CN116910568B (zh) | 2024-01-26 |
Family
ID=88351472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311174100.1A Active CN116910568B (zh) | 2023-09-12 | 2023-09-12 | 图神经网络模型的训练方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116910568B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118410859B (zh) * | 2024-06-27 | 2024-10-01 | 苏州元脑智能科技有限公司 | 一种模型并行训练方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113657577A (zh) * | 2021-07-21 | 2021-11-16 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型训练方法及计算系统 |
CN115865911A (zh) * | 2021-09-24 | 2023-03-28 | 英特尔公司 | 用于跨分布式一致边缘计算系统共享存储器的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220124543A1 (en) * | 2021-06-30 | 2022-04-21 | Oner Orhan | Graph neural network and reinforcement learning techniques for connection management |
-
2023
- 2023-09-12 CN CN202311174100.1A patent/CN116910568B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113657577A (zh) * | 2021-07-21 | 2021-11-16 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型训练方法及计算系统 |
CN115865911A (zh) * | 2021-09-24 | 2023-03-28 | 英特尔公司 | 用于跨分布式一致边缘计算系统共享存储器的方法和装置 |
Non-Patent Citations (1)
Title |
---|
高效图神经网络加速研究:算法与架构;黄林勇;中国博士学位论文全文数据库 信息科技辑 (月刊)(第02期);正文第70-90页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116910568A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102225822B1 (ko) | 인공지능 수행을 위한 학습 데이터 생성장치 및 방법 | |
WO2018176385A1 (en) | System and method for network slicing for service-oriented networks | |
CN111258978B (zh) | 一种数据存储的方法 | |
WO2015078238A1 (en) | Dispatching map matching tasks by cluster server in internet of vehicles | |
US11501160B2 (en) | Cloud computing data compression for allreduce in deep learning | |
EP4293965A1 (en) | Information processing method, apparatus, system, electronic device and storage medium | |
CN116910568B (zh) | 图神经网络模型的训练方法及装置、存储介质及电子装置 | |
CN111881358B (zh) | 一种对象推荐系统、方法、装置、电子设备和存储介质 | |
JP7527716B2 (ja) | データ処理方法、装置、電子機器、及びコンピュータプログラム | |
CN110719320B (zh) | 公有云配置调整信息的生成方法和设备 | |
WO2022057310A1 (zh) | 一种图神经网络训练的方法、装置及系统 | |
CN112256653B (zh) | 一种数据采样方法和装置 | |
CN114187300A (zh) | 图像处理方法、系统以及存储介质 | |
CN114238012A (zh) | 监测模型生成方法、装置、设备及存储介质 | |
CN115687233A (zh) | 通信方法、装置、设备及计算机可读存储介质 | |
CN106933882B (zh) | 一种大数据增量计算方法和装置 | |
CN112860506A (zh) | 监控数据的处理方法、装置、系统和存储介质 | |
CN115879543A (zh) | 一种模型训练方法、装置、设备、介质及系统 | |
WO2022063157A1 (zh) | 参数配置方法及相关系统 | |
US20210004658A1 (en) | System and method for provisioning of artificial intelligence accelerator (aia) resources | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114490458A (zh) | 数据传输方法、芯片、服务器以及存储介质 | |
CN110955497B (zh) | 一种基于任务分割的分布式图计算系统 | |
US20240005075A1 (en) | Graphic neural network acceleration solution with customized board for solid-state drives | |
CN112272237B (zh) | 一种云桌面的镜像管理方法以及镜像管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |