CN115345285B - 基于gpu的时序图神经网络训练方法、系统及电子设备 - Google Patents
基于gpu的时序图神经网络训练方法、系统及电子设备 Download PDFInfo
- Publication number
- CN115345285B CN115345285B CN202211270284.7A CN202211270284A CN115345285B CN 115345285 B CN115345285 B CN 115345285B CN 202211270284 A CN202211270284 A CN 202211270284A CN 115345285 B CN115345285 B CN 115345285B
- Authority
- CN
- China
- Prior art keywords
- training data
- training
- component
- neural network
- gpu
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种基于GPU的时序图神经网络训练方法、系统及电子设备,GPU显存单元的设备内存包括第一组件、第二组件和第三组件,第一组件用于储存第一训练数据,第二组件用于储存第二训练数据,包括:将第一训练数据和第二组件存储的第二训练数据作为当前训练数据,并基于当前训练数据对时序图神经网络进行训练;并且,第三组件存储下一步训练的第二训练数据;当基于当前训练数据训练完成时,将第一训练数据和第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对时序图神经网络进行训练;并且,第二组件存储下一步训练的第二训练数据;重复执行上述步骤直至训练完成。本发明提高了时序图神经网络的训练速度和可扩展性。
Description
技术领域
本发明涉及图神经网络技术领域,尤其是涉及一种基于GPU的时序图神经网络训练方法、系统及电子设备。
背景技术
图是一种高效的信息载体,广泛应用于不同的现实世界应用中,图嵌入也在图分类和节点分类等很多应用中都有使用。常用的图嵌入模型包括:图神经网络通过机器学习技术有效地捕获节点的特征和图的结构,从而获得更好的预测性能。然而,现有的图神经网络大多集中在静态图学习方法上,但是,由于大多数现实世界的图随着时间的推移而发展,并表示为时序图数据,因此,需要通过时序图神经网络对时序图数据进行训练。与静态图神经网络不同,时序图神经网络将时间属性合并到机器学习模型中,并捕获时间信息以及局部结构,现有的一些时序图神经网络模型以循环神经网络(Recurrent Neural Network,RNN)或其变体长短期记忆网络(Long Short-Term Memory,LSTM)和门控循环神经网络(Gate Recurrent Unit,GRU)为核心,以支持高效处理时间属性。但是,现有的时序图神经网络系统在训练速度和可扩展性上依然存在一定的缺陷。
发明内容
有鉴于此,本发明的目的在于提供一种基于GPU的时序图神经网络训练方法、系统及电子设备,以提高了时序图神经网络模型的训练速度和可扩展性。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种基于GPU的时序图神经网络训练方法,图像处理器GPU显存单元的设备内存包括第一组件、第二组件和第三组件;训练数据包括:第一训练数据和第二训练数据;第一组件用于储存第一训练数据;第二组件用于储存第二训练数据;第一训练数据包括神经网络参数和预设间隔的节点嵌入;第二训练数据包括GPU显存单元对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入;方法包括:
将第一训练数据和第二组件存储的第二训练数据作为当前训练数据,并基于当前训练数据对时序图神经网络进行训练;重复执行下述步骤直至训练完成:
当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对时序图神经网络进行训练;并且,第二组件存储下一步训练所需要的第二训练数据;
当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第二组件存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对时序图神经网络进行训练;并且,第三组件存储下一步训练所需要的第二训练数据。
在一种实施方式中,上述方法还包括:将待训练的图划分为多个网格,并将每个网格对应的训练数据存储至对应的GPU显存单元。
在一种实施方式中,将每个网格对应的训练数据保存至对应的GPU显存单元,包括:对于每个网格的训练数据,将第一训练数据存储至GPU显存单元的第一组件;按照时间顺序交替将第二训练数据存储至GPU显存单元的第二组件和第三组件。
第二方面,本发明实施例提供了一种基于GPU的时序图神经网络系统,包括:存储模块和训练模块,存储模块包括多个GPU显存单元,GPU显存单元的设备内存包括第一组件、第二组件和第三组件;第一组件用于储存第一训练数据;第二组件用于储存第二训练数据;第一训练数据包括神经网络参数和预设间隔的节点嵌入;第二训练数据包括GPU显存单元对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入;
训练模块用于将第一训练数据和第二组件存储的第二训练数据作为当前训练数据,并基于当前训练数据对时序图神经网络进行训练;重复执行下述步骤直至训练完成:
当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对时序图神经网络进行训练;并且,第二组件存储下一步训练所需要的第二训练数据;
当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第二组件存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对时序图神经网络进行训练;并且,第三组件存储下一步训练所需要的第二训练数据。
在一种实施方式中,存储模块还包括中央处理器CPU内存单元,用于存储待训练的图。
在一种实施方式中,上述系统还包括网格划分模块,用于将待训练的图划分为多个网格。
在一种实施方式中,上述系统还包括:通信模块,用于CPU内存单元与GPU显存单元之间,以及GPU显存单元之间的数据传输。
在一种实施方式中,通信模块包括:PCIe通信单元和NVLink通信单元;PCIe通信单元用于CPU内存单元与GPU显存单元之间的数据传输;NVLink通信单元用于GPU显存单元之间的数据传输。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面提供的任一项的方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面提供的任一项的方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的上述基于GPU的时序图神经网络训练方法、系统及电子设备,GPU显存单元的设备内存包括第一组件、第二组件和第三组件;训练数据包括:第一训练数据和第二训练数据;第一组件用于储存第一训练数据;第二组件用于储存第二训练数据;第一训练数据包括神经网络参数和预设间隔的节点嵌入;第二训练数据包括GPU显存单元对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入;方法包括:将第一训练数据和第二组件存储的第二训练数据作为当前训练数据,并基于当前训练数据对时序图神经网络进行训练;重复执行下述步骤直至训练完成:当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对时序图神经网络进行训练;并且,第二组件存储下一步训练所需要的第二训练数据;当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第二组件存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对时序图神经网络进行训练;并且,第三组件存储下一步训练所需要的第二训练数据。
上述方法中GPU显存单元的设备内存包括第一组件、第二组件和第三组件,第一组件用于储存第一训练数据,第二组件用于储存第二训练数据,在训练过程中,先将第二组件存储的第二训练数据作为当前训练数据进行训练,训练完成后,将第三组件存储的第二训练数据作为新的当前训练数据进行训练,并且使第二组件存储下一步训练所需要的第二训练数据,重复上述过程,交替将第二组件和第三组件存储的第二训练数据作为当前训练数据进行计算,从而实现多GPU训练,提高时序图神经网络模型的训练速度和可扩展性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于GPU的时序图神经网络训练方法的流程图;
图2为本发明实施例提供的一种基于GPU的时序图神经网络系统的结构示意图;
图3为本发明实施例提供的一种GPU显存单元的结构示意图;
图4为本发明实施例提供的另一种基于GPU的时序图神经网络系统的结构示意图;
图5为本发明实施例提供的另一种基于GPU的时序图神经网络训练方法的流程图;
图6为本发明实施例提供的一种内存管理的示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
图标:
10-存储模块;20-训练模块;30-网格划分模块;40-通信模块;101- GPU显存单元;102-CPU内存单元;1011-第一组件;1012-第二组件;1013-第三组件。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,图神经网络模型的训练主要集中在静态图学习方法上,而不是时序图学习。然而,大多数现实世界的图是随着时间的推移而发展的,并表示为时序图数据,在这些情况下,图中的边将附加时间属性以显示实际应用程序中的时间信息。此外,时序图中边数据采用流式格式,并且系统需要针对新增的边在线训练模型。例如,合著网络附有时间实例,并随着时间的增长会引入新增的边数据,因此,很多时序图神经网络模型,例如EHNA,需要重新训练现有的图数据。此外,还电子商务网络、教育网络、以及社交网络等很多其他领域的网络也随着动态信息而不断新增图数据。
图神经网络通过在每一轮迭代中聚合来自邻居的图特征来工作。典型的图神经网络模型包括:图卷积网络(Graph Convolutional Networks,GCN)、图邻居采样和特征聚合(Graph SAmple and aggreGatE,GraphSAGE)、图注意力网络(Graph Attention Network,GAT)和图同构网络(Graph Isomorphism Network,GIN)。具体来说,在第k+1次迭代中,聚合函数将聚合上一次迭代中每个顶点的邻居特征;聚合后,将使用多层感知器(MultilayerPerceptron,MLP)等神经网络函数将聚合结果与当前点的特征向量结合起来。
与静态图神经网络不同,时序图神经网络将时间属性合并到机器学习模型中,并捕获时间信息以及局部结构,例如从一系列图快照中学习图特征,以提高模型的表达能力。目前,一些时序图神经网络模型已被提出以RNN或其变体LSTM和GRU为核心,以支持高效处理时间属性,这些基于RNN的模型本质上能够处理时间属性。但是,在处理新添加的动态边数据时,现有的工作会随着新边的出现实现增量式训练。动态图神经网络模型(DynamicGraph Neural Networks,DyGNN)是目前最先进的基于RNN的时序图神经网络。DyGNN对时序图的类型没有限制,并且还具有良好的预测性能。DyGNN使用LSTM作为核心来训练时序图,在每一轮训练中,DyGNN扫描整个图并使用所有边进行训练。但是,现有的时序图神经网络系统在训练速度和可扩展性上依然存在一定的缺陷:
(1)训练速度上:现有的时序图神经网络模型,例如动态三元组模型(DynamicTriad)、时序网络嵌入(HTNE)和动态图的参数演化图卷积网络(Evolving GraphConvolutional Networks for Dynamic Graphs,EvolveGCN)等,上述网络在训练时对图的静态快照进行训练,因此,会遭受增量式神经网络更新的高额开销和模型训练的高额开销。一些基于RNN的时序图神经网络模型,例如:DyGNN和JODIE虽然减少了增量式神经网络的更新开销,但仍然存在较大的模型训练的开销。此外,现有的时序图神经网络模型都不支持多图形处理器(Graphics Processing Unit,GPU)训练,从而会导致训练的吞吐量低的问题,例如,现有的模型训练吞吐量(通过将边的数量除以每个epoch的时间来计算)只有34000条边每秒。
(2)可扩展性上:现有的时序图神经网络模型侧重于预测的准确性,而并非多GPU训练的速度和可扩展性,且当前的多GPU训练框架也并没有表现出良好的可扩展性。比如:NeuGraph虽然提出了用图调度策略对图进行分区,但由于数据局部性问题仍然有很大的通信开销问题,不能充分利用快速的GPU-GPU通信;亚马逊开源大规模知识图谱嵌入训练库(DGL-KE)将参数存储在中央处理器(Central Processing Unit,CPU)内存中,并在GPU上通过mini-batch进行同步训练。然而,由于GPU和CPU之间的大量数据传输,DGL-KE的GPU利用率较低(接近10%)。PyTorch-BigGraph将节点划分为一组不相交的部分,并将它们存储在磁盘中,在训练期间,直接将一个或多个分区完全加载到GPU中,以避免频繁的数据从磁盘移动到GPU,但是,磁盘和GPU之间的数据交换依旧会引起GPU利用率较低的问题,其利用率仅为30%;Marius引入了一种缓冲区感知边数据遍历算法,以减少磁盘I/O并提高GPU利用率,但是,这种额外的磁盘I/O和数据移动将导致更长的训练时间,即对于14.6亿条边的Twitter图训练(吞吐量仅 115.9K边/秒),每个epoch需要3.5小时。综上所述,现有的时序图神经网络系统在训练速度和可扩展性上依然存在一定挑战。
基于此,本发明实施例提供的一种基于GPU的时序图神经网络训练方法、系统及电子设备,可以提高时序图神经网络模型的训练速度和可扩展性。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于GPU的时序图神经网络训练方法进行详细介绍,GPU显存单元的设备内存包括第一组件、第二组件和第三组件;训练数据包括:第一训练数据和第二训练数据;第一组件用于储存第一训练数据;第二组件用于储存第二训练数据;第一训练数据包括神经网络参数和预设间隔的节点嵌入;第二训练数据包括GPU显存单元对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入。参见图1所示的一种基于GPU的时序图神经网络训练方法的流程图,示意出该训练方法主要包括以下步骤S101至步骤S103:
步骤S101:将第一训练数据和第二组件存储的第二训练数据作为当前训练数据,并基于当前训练数据对时序图神经网络进行训练;重复执行下述步骤S102至步骤S103直至训练完成。
步骤S102:当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对时序图神经网络进行训练;并且,第二组件存储下一步训练所需要的第二训练数据。
步骤S103:当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第二组件存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对时序图神经网络进行训练;并且,第三组件存储下一步训练所需要的第二训练数据。
在一种实施方式中,每个GPU的设备内存分为三个组件,第一个组件存储神经网络参数和一定间隔的节点嵌入,第二组件存储当前时刻的第二训练数据,包括当前网格的边缘和相应的目标顶点嵌入,第三组件用于存储下一时刻的第二训练数据。在训练过程中,第二个组件可以与第三个组件互换,其工作方式类似于乒乓缓冲区(ping-pong buffer)。也就是说,在完成当前步骤后,第二个组件将指向第三个组件的存储,并继续存储下一步需要的训练数据,而第三个组件将指向第二个组件的存储并充当新的当前时刻的训练数据,即先将第二组件存储的第二训练数据作为当前训练数据进行训练,训练完成后,将第三组件存储的第二训练数据作为新的当前训练数据进行训练,并且使第二组件存储下一步训练所需要的第二训练数据,重复上述过程,直至训练完成。
本发明实施例提供的上述基于GPU的时序图神经网络训练方法中GPU显存单元的设备内存包括第一组件、第二组件和第三组件,第一组件用于储存第一训练数据,第二组件用于储存第二训练数据,在训练过程中,先将第二组件存储的第二训练数据作为当前训练数据进行训练,训练完成后,将第三组件存储的第二训练数据作为新的当前训练数据进行训练,并且使第二组件存储下一步训练所需要的第二训练数据,重复上述过程,交替将第二组件和第三组件存储的第二训练数据作为当前训练数据进行计算,从而实现多GPU训练,提高时序图神经网络模型的训练速度和可扩展性。
在一种实施方式中,在进行训练之前,还需要将待训练的图进行划分,即上述方法还包括:将待训练的图划分为多个网格,并将每个网格对应的训练数据存储至对应的GPU显存单元。
在一种实施方式中,在将每个网格对应的训练数据保存至对应的GPU显存单元时,可以采用包括但不限于以下方式:
对于每个网格的训练数据,首先,将第一训练数据存储至GPU显存单元的第一组件;然后,按照时间顺序交替将第二训练数据存储至GPU显存单元的第二组件和第三组件。
具体的,第二组件可以与第三组件互换,在完成当前步骤后,第二组件将指向第三组件的存储,并继续存储下一步需要的训练数据,而第三组件将指向第二组件的存储并充当新的当前时刻的训练数据(即按照时间顺序交替储存第二训练数据)。
对于前述基于GPU的时序图神经网络训练方法,本发明实施例还提供了一种基于GPU的时序图神经网络系统,参见图2所示的一种基于GPU的时序图神经网络系统的结构示意图,示意出该系统主要包括以下部分:存储模块10和训练模块20,存储模块10包括多个GPU显存单元101。参加图3所示,GPU显存单元101的设备内存包括第一组件1011、第二组件1012和第三组件1013;第一组件1011用于储存第一训练数据;第二组件1012用于储存第二训练数据;第一训练数据包括神经网络参数和预设间隔的节点嵌入;第二训练数据包括GPU显存单元101对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入;
训练模块20用于将第一训练数据和第二组件1012存储的第二训练数据作为当前训练数据,并基于当前训练数据对时序图神经网络进行训练;重复执行下述步骤直至训练完成:
当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第三组件1013存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对时序图神经网络进行训练;并且,第二组件1012存储下一步训练所需要的第二训练数据;
当基于当前训练数据对时序图神经网络的训练完成时,将第一训练数据和第二组件1012存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对时序图神经网络进行训练;并且,第三组件1013存储下一步训练所需要的第二训练数据。
本发明实施例提供的上述基于GPU的时序图神经网络系统中GPU显存单元的设备内存包括第一组件、第二组件和第三组件,第一组件用于储存第一训练数据,第二组件用于储存第二训练数据,在训练过程中,先将第二组件存储的第二训练数据作为当前训练数据进行训练,训练完成后,将第三组件存储的第二训练数据作为新的当前训练数据进行训练,并且使第二组件存储下一步训练所需要的第二训练数据,重复上述过程,交替将第二组件和第三组件存储的第二训练数据作为当前训练数据进行计算,从而实现多GPU训练,提高时序图神经网络模型的训练速度和可扩展性。
参见图4所示的另一种基于GPU的时序图神经网络系统的结构示意图,示意出该系统在图2的基础上还包括:网格划分模块30和通信模块40,存储模块10还包括中央处理器CPU内存单元102。
CPU内存单元102用于存储待训练的图;网格划分模块30用于将待训练的图划分为多个网格;通信模块40用于CPU内存单元与GPU显存单元之间,以及GPU显存单元之间的数据传输,具体的,通信模块40包括PCIe通信单元和NVLink通信单元;PCIe通信单元用于CPU内存单元与GPU显存单元之间的数据传输;NVLink通信单元用于GPU显存单元之间的数据传输。
具体的,PCIe(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,属于高速串行点对点双通道高带宽传输,NVLink是一种总线及其通信协议,NVLink采用点对点结构、串列传输,用于中央处理器与图形处理器之间的连接,也可用于多个图形处理器之间的相互连接。由于两种类型的通信都是通过不同的硬件接口实现的,因此,直接将它们流水线化是可行的。
考虑到,现有的图神经网络的计算框架,例如DGL、AliGraph和PyTorch-BigGraph,均是为分布式GNN环境设计的,需要大量通信;一些为单机GNN系统设计的,例如HyGCN,它采用混合架构(GPU HBM+CPU 内存)。然而,HyGCN只为GNN实现推理,不包括训练,因此缺乏GNN学习系统的最重要功能。同时,HyGCN仅使用单个GPU,并没有提供可以利用NVLink的高效数据加载策略。因此,HyGCN没有充分利用硬件优势。
基于此,本发明实施例提供了一种时序图神经网络系统,使用混合CPU-GPU协同处理架构,同时支持GNN的训练和推理。CPU-GPU协同处理架构将GPU HBM与CPU内存相结合,以解决图数据集和点的特征向量无法完全包含在单个GPU HBM中的问题,其基本思想是将数据分成若干部分,并将它们存储在不同的硬件内存空间中。
进一步,为了优化数据局部性以减少总数据加载开销,本发明实施例中一种高效的内存管理机制来促进计算和通信的流水线执行,从而在隐藏数据通信的同时提高可扩展性。具体的,参见图5所示,网格划分模块30可以对CPU内存单元102中存储的储存待训练的图进行采样和网格划分,并将每个网格的训练数据加载到一个GPU显存单元101中进行多GPU训练。
本发明实施例提供的上述基于GPU的时序图神经网络系统,采用混合CPU-GPU协同处理架构,通过将待训练的图数据进行网格划分,并将每个网格的训练数据保存至GPU显存单元,在模型训练时能够支持多GPU训练,从而提高了时序图神经网络模型的训练速度和可扩展性。
下面对存储模块,即本发明实施例提供的内存管理机制进行详细介绍。如图3所示,GPU显存单元101包括:第一组件1011、第二组件1012和第三组件1013;训练数据包括:第一训练数据和第二训练数据;第一组件1011用于储存第一训练数据,其中,第一训练数据包括:神经网络参数和预设间隔的节点嵌入;第二组件1012和第三组件1013用于按照时间顺序交替储存第二训练数据;其中,第二训练数据包括:GPU显存单元101对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入。
在一种实施方式中,本发明实施例提供的基于GPU的时序图神经网络系统(T-GCN)将每个GPU的设备内存分为三个组件,即将GPU显存单元101分为三个组件。第一个组件(即第一组件1011)存储神经网络参数和一定间隔的节点嵌入;第二个组件(即第二组件1012)存储当前时刻的训练数据,包括当前网格的边缘和相应的目标顶点嵌入。需要注意的是,根据数据的划分,GPU显存单元101将存储一定间隔的源顶点嵌入。为了训练一个网格,需要源顶点和目标顶点的嵌入,其中目标顶点嵌入将通过与其他GPU显存单元数据交换获得;第三个组件(即第三组件1013)用于存储下一时刻的训练数据,其数据格式与第二个组件相同,由任务调度中的任务分配向量确定。
在实际应用中,参见图6所示,第二个组件可以与第三个组件互换,其工作方式类似于乒乓缓冲区(ping-pong buffer)。也就是说,在完成当前步骤后,第二个组件将指向第三个组件的存储,并继续存储下一步需要的训练数据,而第三个组件将指向第二个组件的存储并充当新的当前时刻的训练数据(即按照时间顺序交替储存第二训练数据)。因此,模型训练和数据传输可以在没有任何数据竞争的情况下进行流水线化,同时,流水线是为多GPU设计的通用方法,适用于不同的GPU配置。
现有技术中神经网络参数存储在GPU内存中,通过PCIe从CPU传输到GPU的数据将与神经网络参数竞争设备内存,此外,点的特征向量还将与图数据集和神经网络参数竞争设备内存。基于此,本发明实施例中提供的上述基于GPU的时序图神经网络系统,通过将每个GPU的设备内存分为三个组件来避免数据竞争内存的问题。第一个组件存储神经网络参数和一定间隔的节点嵌入;第二个组件存储当前时刻的训练数据;第三个组件存储下一时刻的训练数据,因此,通过PCIe从CPU传输到GPU的数据将存储在第二个组件和第三个组件中,避免与第一个组件中的神经网络参数竞争设备内存。
在一种实施方式中,训练模块可以由三个单元组成,即交互单元、更新单元和合并单元,下面以DyGNN作为典型用例来对模型训练过程进行详细介绍:
(1)交互单元:对于每条边e=(v s ,v g ,t),DyGNN从节点信息中生成e的交互信息,并记为e(t)。和分别是源节点v s 和目标节点v g 在时间t-的特征,t-无限接近t,但在t之前。W 1、W 2和b e 是神经网络的参数。act()是一个激活函数,具体可以是sigmoid或tanh函数,生成的交互信息e(t)计算为:。
(2)更新单元:更新单元将从交互单元生成的交互信息e(t)应用到参与交互的节点。该单元使用LSTM的两种变体,它们是用时间的间隔信息来控制遗忘的幅度,从而分别更新v s 和v g 。其中一种LSTM变体为S-Update,当节点v是当前边的源节点时,其只更新节点v对应的神经网络信息,即节点v的神经网络单元和隐藏状态。另一种LSTM变体为G-Update,其只在节点v是e(t)的汇节点时更新v的神经网络信息。S-Update和G-Update具有相同的网络结构,但具有不同的参数。如下公式显示了S-Update和G-Update的更新逻辑。是源节点v s 在时间t-的神经网络单元的输出, 是源节点v s 的隐藏状态。Deltat是等于[t-(t-)]的时间间隔,Update()函数表示神经网络的计算:
(3)合并单元:对于源节点的信息v s ,从S-Update的输出中可以得到两个隐藏状态,即和;同样,对于目标节点的信息v g ,从G-Update的输出中得到:和。在这种情况下,合并单元从S-Update中获取隐藏状态来为v s 生成新的特征向量,并且从G-Update中获取隐藏状态来为v g 生成新的特征向量。如下公式分别显示了v s 和v g 的合并逻辑,其中,Ws、Wg和B是可训练的参数:
本发明实施例中提供的上述基于GPU的时序图神经网络系统,与DyGNN和JODIE相比,由于DyGNN和JODIE仅支持单个GPU,在1个和8个GPU上对T-GCN进行基准测试,可以显示其良好的可扩展性,具体的,结果表T-GCN明显优于DyGNN和JODIE,在支持的单GPU上,T-GCN运行速度比DyGNN快2.6~5.1倍,比JODIE快2.8~7.9倍。T-GCN比DyGNN和JODIE的几何平均加速分别为3.3倍和4.6倍。需要注意的是,虽然GPU在三个相对较小的数据集(即Flickr、Lastfm和Reddit)上没有得到充分利用,然而,在最大的Twitter数据集上,T-GCN在9237.4秒内完成了训练,而DyGNN和JODIE都失败了,因为它们的内存分配效率低下和缺乏有效的采样策略导致了GP 内存不足的错误。对于吞吐量,DyGNN和JODIE分别只有34K边/秒和60.5K边/秒,而T-GCN的吞吐量是815.7K边/秒,这是因为T-GCN可以支持具有良好可扩展性的多GPU训练,而DyGNN和JODIE不支持。此外,DyGNN和JODIE的运行速度仍然比本发明实施例提供的T-GCN慢很多倍。
本发明实施例中提供的上述基于GPU的时序图神经网络系统,是一个高性能的时序图神经网络系统,用于在时间感知时序图上加速图神经网络的学习,同时保持良好的预测准确性。T-GCN采用混合CPU-GPU协同处理架构,并提出了高效的内存管理和流水线化方法,减少了GPU-GPU通信,并提高了可扩展性。对于单个V100 GPU训练,依靠这些优化,T-GCN在端到端性能方面比当前工作快了7.9倍。在具有8个V100 GPU NVIDIA DGX服务器上运行时,T-GCN在8个GPU上的训练速度比T-GCN在一个GPU上的训练速度快5.2倍,展示了良好的可扩展性。
本发明实施例所提供的系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被处理器运行时执行如上实施方式的任一项所述的方法。
图7为本发明实施例提供的一种电子设备的结构示意图,该电子设备100包括:处理器70,存储器71,总线72和通信接口73,所述处理器70、通信接口73和存储器71通过总线72连接;处理器70用于执行存储器71中存储的可执行模块,例如计算机程序。
其中,存储器71可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口73(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线72可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器71用于存储程序,所述处理器70在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器70中,或者由处理器70实现。
处理器70可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器70中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器70可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器71,处理器70读取存储器71中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种基于GPU的时序图神经网络训练方法,其特征在于,图像处理器GPU显存单元的设备内存包括第一组件、第二组件和第三组件;训练数据包括:第一训练数据和第二训练数据;所述第一组件用于储存第一训练数据;所述第二组件用于储存第二训练数据;所述第一训练数据包括神经网络参数和预设间隔的节点嵌入;所述第二训练数据包括所述GPU显存单元对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入;所述方法包括:
将所述第一训练数据和所述第二组件存储的第二训练数据作为当前训练数据,并基于所述当前训练数据对时序图神经网络进行训练;重复执行下述步骤直至训练完成:
当基于当前训练数据对所述时序图神经网络的训练完成时,将所述第一训练数据和所述第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对所述时序图神经网络进行训练;并且,所述第二组件存储下一步训练所需要的第二训练数据;
当基于当前训练数据对所述时序图神经网络的训练完成时,将所述第一训练数据和所述第二组件存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对所述时序图神经网络进行训练;并且,所述第三组件存储下一步训练所需要的第二训练数据;
所述方法还包括:将待训练的图划分为多个网格,并将每个所述网格对应的训练数据存储至对应的所述GPU显存单元;
将每个所述网格对应的训练数据保存至对应的GPU显存单元,包括:对于每个所述网格的训练数据,将所述第一训练数据存储至所述GPU显存单元的第一组件;按照时间顺序交替将所述第二训练数据存储至所述GPU显存单元的第二组件和第三组件。
2.一种基于GPU的时序图神经网络系统,其特征在于,包括:存储模块和训练模块,所述存储模块包括多个GPU显存单元,所述GPU显存单元的设备内存包括第一组件、第二组件和第三组件;所述第一组件用于储存第一训练数据;所述第二组件用于储存第二训练数据;所述第一训练数据包括神经网络参数和预设间隔的节点嵌入;所述第二训练数据包括所述GPU显存单元对应网格的边信息、目标顶点嵌入和预设间隔的源顶点嵌入;
所述训练模块用于将所述第一训练数据和所述第二组件存储的第二训练数据作为当前训练数据,并基于所述当前训练数据对时序图神经网络进行训练;重复执行下述步骤直至训练完成:
当基于当前训练数据对所述时序图神经网络的训练完成时,将所述第一训练数据和所述第三组件存储的第二训练数据作为新的当前训练数据,以及基于新的当前训练数据对所述时序图神经网络进行训练;并且,所述第二组件存储下一步训练所需要的第二训练数据;
当基于当前训练数据对所述时序图神经网络的训练完成时,将所述第一训练数据和所述第二组件存储的第二训练数据作为新的当前训练数据,并基于新的当前训练数据对所述时序图神经网络进行训练;并且,所述第三组件存储下一步训练所需要的第二训练数据;
所述系统还包括网格划分模块,用于将待训练的图划分为多个网格;其中,每个所述网格对应的训练数据存储在对应的所述GPU显存单元中;对于每个所述网格的训练数据,将所述第一训练数据存储至所述GPU显存单元的第一组件,并按照时间顺序交替将所述第二训练数据存储至所述GPU显存单元的第二组件和第三组件。
3.根据权利要求2所述的基于GPU的时序图神经网络系统,其特征在于,所述存储模块还包括中央处理器CPU内存单元,用于存储待训练的图。
4.根据权利要求3所述的时序图神经网络系统,其特征在于,所述系统还包括:通信模块,用于所述CPU内存单元与所述GPU显存单元之间,以及所述GPU显存单元之间的数据传输。
5.根据权利要求4所述的时序图神经网络系统,其特征在于,所述通信模块包括:PCIe通信单元和NVLink通信单元;
所述PCIe通信单元用于所述CPU内存单元与所述GPU显存单元之间的数据传输;
所述NVLink通信单元用于所述GPU显存单元之间的数据传输。
6.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1所述的方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211270284.7A CN115345285B (zh) | 2022-10-18 | 2022-10-18 | 基于gpu的时序图神经网络训练方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211270284.7A CN115345285B (zh) | 2022-10-18 | 2022-10-18 | 基于gpu的时序图神经网络训练方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115345285A CN115345285A (zh) | 2022-11-15 |
CN115345285B true CN115345285B (zh) | 2023-02-03 |
Family
ID=83957470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211270284.7A Active CN115345285B (zh) | 2022-10-18 | 2022-10-18 | 基于gpu的时序图神经网络训练方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115345285B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115759233B (zh) * | 2022-11-24 | 2023-10-20 | 北京百度网讯科技有限公司 | 模型的训练方法、图数据处理方法、装置及电子设备 |
CN116151308A (zh) * | 2023-02-22 | 2023-05-23 | 上海科技大学 | 基于非易失内存的深度神经网络checkpoint优化系统以及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021057186A1 (zh) * | 2019-09-24 | 2021-04-01 | 华为技术有限公司 | 训练神经网络的方法、数据处理方法和相关装置 |
CN114781610A (zh) * | 2022-04-20 | 2022-07-22 | 华为技术有限公司 | 一种数据的处理方法、神经网络的训练方法以及相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378472A (zh) * | 2019-07-24 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种深度神经网络模型的数据并行训练方法、装置及设备 |
US20210312258A1 (en) * | 2020-04-01 | 2021-10-07 | Sony Corporation | Computing temporal convolution networks in real time |
CN113515674B (zh) * | 2021-06-10 | 2022-10-25 | 清华大学 | 时序图随机游走的采样方法及装置 |
-
2022
- 2022-10-18 CN CN202211270284.7A patent/CN115345285B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021057186A1 (zh) * | 2019-09-24 | 2021-04-01 | 华为技术有限公司 | 训练神经网络的方法、数据处理方法和相关装置 |
CN114781610A (zh) * | 2022-04-20 | 2022-07-22 | 华为技术有限公司 | 一种数据的处理方法、神经网络的训练方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115345285A (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115345285B (zh) | 基于gpu的时序图神经网络训练方法、系统及电子设备 | |
KR102258414B1 (ko) | 처리 장치 및 처리 방법 | |
US10872290B2 (en) | Neural network processor with direct memory access and hardware acceleration circuits | |
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
US10169084B2 (en) | Deep learning via dynamic root solvers | |
WO2017185387A1 (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
CN109478144A (zh) | 一种数据处理装置和方法 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
US20190138373A1 (en) | Multithreaded data flow processing within a reconfigurable fabric | |
CN111310904A (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
CN107766292B (zh) | 一种神经网络处理方法及处理系统 | |
CN113449839A (zh) | 一种分布式训练方法、梯度通信方法、装置以及计算设备 | |
EP4071619A1 (en) | Address generation method, related device and storage medium | |
WO2023071238A1 (zh) | 计算图的编译、调度方法及相关产品 | |
CN111399911B (zh) | 一种基于多核异构计算的人工智能开发方法及装置 | |
CN113642734A (zh) | 一种深度学习模型的分布式训练方法、装置以及计算设备 | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN116468078A (zh) | 面向人工智能芯片的智能引擎处理方法和装置 | |
CN116402091A (zh) | 面向人工智能芯片的混合引擎智能计算方法和装置 | |
CN116303219A (zh) | 一种网格文件的获取方法、装置及电子设备 | |
CN111966399B (zh) | 指令处理方法、装置及相关产品 | |
US12112043B2 (en) | Data flow control device in streaming architecture chip | |
US20230051344A1 (en) | Optimization of memory use for efficient neural network execution | |
CN114692847B (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 |