System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种对图神经网络进行自动调优的方法及装置制造方法及图纸_技高网

一种对图神经网络进行自动调优的方法及装置制造方法及图纸

技术编号:41283218 阅读:3 留言:0更新日期:2024-05-11 09:32
本申请实施例提供一种对图神经网络进行自动调优的方法及装置,所述方法包括:在第i次计算图优化阶段:从与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中选择至少一组待融合算子;将所述每组待融合算子替换为一个融合算子节点,得到与所述待优化图神经网络对应的第i计算图优化模型;在第i次算子优化阶段:确定所述第i计算图优化模型中的第一算子满足裂变条件,则在核函数生成过程中将所述第一算子裂变为多个算子,得到第i算子优化模型;通过数据映射将所述第i算子优化模型中的所有裂变得到的算子映射至对应的硬件单元以完成相应核函数编写,并对i进行自增操作。通过本申请实施例在降低图神经网络训练、推理过程的延迟的同时,减少浮点运算量、中间结果和访存次数。

【技术实现步骤摘要】

本申请涉及图神经网络领域,具体而言本申请实施例涉及一种对图神经网络进行自动调优的方法及装置


技术介绍

1、图神经网络(gnn)在学习图结构数据方面的有效性,使得它们在各种领域中均引起了较大影响。与传统的稠密神经网络一样,图神经网络的性能优化也成为了工业领域和科研领域的关注热点。但是由于真实世界图数据的非规则性,没有一种通用的稀疏算子优化手段能在任何图数据上都取得性能提升;另一方面,图数据的非规则性对算子融合等计算图优化手段的效果也有显著的影响,这些问题都为图神经网络的性能优化带来了挑战。

2、为了追求更高的性能,近期出现了许多gnn框架。最近的研究倾向于分别在计算图层面和算子层面研究性能优化。图优化和算子优化对于实现gnn的高效和高性能起着至关重要的作用。然而,现有的方法一般首先重写计算图,然后设计算子实现,这导致了两个优化级别之间的分离。此外,目前的图优化和算子优化策略主要是固定的,严重依赖于人工专业知识,并且局限于有限的搜索空间。例如,许多算子融合策略是基于经验确定预定义的融合模式并进行替换的。由于这些潜在因素,最近的gnn框架的性能往往达不到最优水平,并对包括图和gnn在内的多样化输入表现出敏感性,进而导致基于这种方式得到的图神经网络在硬件实现时存在运行速度慢等技术缺陷。


技术实现思路

1、本申请实施例的目的在于提供一种对图神经网络进行自动调优的方法及装置,通过本申请实施例中提出的基于规则的计算图和算子协同优化技术,保证每个算子的执行效率(可以通过算子的执行时间、吞吐量等性能指标描述)来取得gnn推理、训练过程的性能提升,有效减少冗余计算,减少gpu非必要访存,从而提升性能。

2、第一方面,本申请实施例提供一种对图神经网络进行自动调优的方法,所述方法包括:在第i次计算图优化阶段:从与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中选择至少一组待融合算子,其中,每组待融合算子均包括多个连续的算子节点,每个算子节点属于低开销稠密算子或属于稀疏算子;将所述每组待融合算子替换为一个融合算子节点,得到与所述待优化图神经网络对应的第i计算图优化模型;在第i次算子优化阶段:确定所述第i计算图优化模型中的第一算子满足裂变条件,则在核函数生成过程中将所述第一算子裂变为多个算子,得到第i算子优化模型,其中,所述第i算子优化模型用于下一次计算图优化阶段的输入;通过数据映射将所述第i算子优化模型中的所有裂变得到的算子映射至对应的硬件单元以完成相应核函数编写,并对i进行自增操作,其中,所述硬件单元包括gpu处理器上的相应计算单元,一个子算子对应一个分裂算子;重复上述过程,直至得到与所述图神经网络模型的对应的目标算子模型并得到与目标算子模型对应的代码;其中,i为大于或等于1的整数,所述原始算子模型、所述第i计算图优化模型以及所述第i算子优化模型均采用细粒度计算图,所述细粒度计算图中包括与每个算子对应的算子运算模式、算子状态描述、以及算子数学属性,所述算子状态描述用于描述对应算子属于下列算子中的一种:原始算子、融合算子或者分裂算子。

3、本申请的一些实施例提出了一种支持跨图和算子层面的协同优化策略,并直接从图和模型生成高性能的gnn代码,为了实现协同优化,提升了硬件处理速度。

4、在一些实施例中,所述算子运算模式包括:scatter,applyedge,gather和applyvertex;所述算子数学属性用于描述相应算子是否具有结合性、交换性和/或分配性。

5、在一些实施例中,所述从与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中选择至少一组待融合算子,包括:从所述与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中选择至少一个起点算子;从所述起点算子进行第一方向传播和/或第二方向传播,得到与各起点算子对应的待融合算子,其中,所述第一方向为后继算子方向,所述后继算子方向是由在所述第i图神经网络模型中位于所述起点算子之后的算子所限定的方向,所述第二方向属于前驱算子方向,所述前驱算子方向是由在所述第i图神经网络模型中位于所述起点算子之前的算子所限定的方向。

6、本申请的一些实施例以选取的起始算子为起点向前后搜索所有可融合的算子,提升计算图优化的技术效果。

7、在一些实施例中,所述起点算子属于稠密算子,其中,所述稠密算子属于输出数据和输入数据均是顶点或边数据的算子。

8、本申请的一些实施例通过选择稠密算子作为起点算子,是由于稠密算子的输入输出数据都是顶点或边数据,融合这样的算子不影响新算子的输入输出位置信息,但是可以减少中间结果,进而使得融合算子的实现既能实现被融合算子的语义,又避免了非必要的gpu全局内存访问,提高了硬件执行效率。

9、在一些实施例中,所述从所述起点算子进行第一方向传播和/或第二方向传播,得到与各起点算子对应的待融合算子,包括:至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合算子。

10、本申请的一些实施例通过算子的运算模式来确定是否可以融合两个算子,将满足这些规则的算子融合可以在保证融合后算子在高效利用硬件计算资源的前提下,减少对gpu全局内存的访问,进一步提升性能。

11、在一些实施例中,所述至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合算子,包括:若第m算子属于与第k起点算子的第一方向上且所述第m算子与所述第k起点算子相邻,则进一步确认所述第m算子与所述第k起点算子具有相同运算模式后,将所述第m算子作为与所述第k起点算子对应组的待融合算子。

12、本申请的一些实施例优先将具有相同运算模式的算子进行融合,作为计算图优化的规则之一,提升计算图优化的技术效果。

13、在一些实施例中,所述至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合算子,包括:若确认第m算子位于第k起点算子的第二方向上并确认所述第m算子与所述第k起点算子具有不同运算模式,则根据待评估算子的运算性能分析结果确认是否将所述第m算子作为与所述第k起点算子对应组的待融合算子。

14、本申请的一些实施例针对具有不同运算模式的算子还可以进一步通过比较待评估算子的运算性能确定是否融合相应算子。

15、在一些实施例中,所述确定所述第i计算图优化模型中的第一算子满足裂变条件,包括:若确认在生成所述任意一个算子的代码过程中采用多个核函数性能满足设定标准,则确认所述任意一个算子满足执行算子分裂的裂变条件。

16、本申请的一些实施例针对算子优化阶段提供了算子裂变的优化策略。

17、在一些实施例中,所述通过数据映射将所本文档来自技高网...

【技术保护点】

1.一种对图神经网络进行自动调优的方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1所述的方法,其特征在于,所述从与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中选择至少一组待融合算子,包括:

4.如权利要求3所述的方法,其特征在于,所述起点算子属于稠密算子,其中,所述稠密算子属于输出数据和输入数据均是顶点或边数据的算子。

5.如权利要求3所述的方法,其特征在于,所述从所述起点算子进行第一方向传播和/或第二方向传播,得到与各起点算子对应的组待融合算子,包括:

6.如权利要求5所述的方法,其特征在于,所述至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合算子,包括:

7.如权利要求3所述的方法,其特征在于,所述至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合算子,包括:

8.如权利要求1所述的方法,其特征在于,所述确定所述第i计算图优化模型中的第一算子满足裂变条件,包括:

9.如权利要求1所述的方法,其特征在于,所述通过数据映射将所述第i算子优化模型中的所有裂变得到的算子映射至对应的硬件单元以完成相应核函数编写,包括:

10.如权利要求9所述的方法,其特征在于,所述构建与待裂变算子对应的核函数的稀疏核函数的调度策略,包括:

11.如权利要求9所述的方法,其特征在于,所述基于所述核函数骨架和所述稀疏核函数的调度策略自动完成所述第一核函数代码编写,包括:

12.一种对图神经网络进行自动调优的装置,其特征在于,所述装置包括:

13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1-11中任意一项权利要求所述的方法。

14.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如权利要求1-11中任意一项权利要求所述的方法。

...

【技术特征摘要】

1.一种对图神经网络进行自动调优的方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,

3.如权利要求1所述的方法,其特征在于,所述从与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中选择至少一组待融合算子,包括:

4.如权利要求3所述的方法,其特征在于,所述起点算子属于稠密算子,其中,所述稠密算子属于输出数据和输入数据均是顶点或边数据的算子。

5.如权利要求3所述的方法,其特征在于,所述从所述起点算子进行第一方向传播和/或第二方向传播,得到与各起点算子对应的组待融合算子,包括:

6.如权利要求5所述的方法,其特征在于,所述至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合算子,包括:

7.如权利要求3所述的方法,其特征在于,所述至少根据与待优化图神经网络模型对应的原始算子模型或者从经上一次算子优化阶段得到的算子优化模型中的相关算子的算子运算模式得到所述待融合...

【专利技术属性】
技术研发人员:李鸣一肖俊敏谭光明曹连雨
申请(专利权)人:中科弘云科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1