当前位置: 首页 > 专利查询>之江实验室专利>正文

一种用于神经网络计算的图优化方法和装置制造方法及图纸

技术编号:34645736 阅读:21 留言:0更新日期:2022-08-24 15:22
本发明专利技术公开了一种用于神经网络计算的图优化方法和装置,包括以下步骤:步骤S1:转换计算图;步骤S2:分配寄存器;步骤S3:定义关于重定义变量的路由选择器;步骤S4:求解关于重定义变量的路由选择器;步骤S5:定义关于重定义变量的路由选择器插入节点的准则;步骤S6:分析关于重定义变量节点的支配边集合;步骤S7:插入关于重定义变量的路由选择器;步骤S8:重命名关于重定义变量。本发明专利技术解决了编译期计算图中包含重定义变量的节点流经多路计算流时所对应的关于重定义变量的正确定义的路由选择问题,减少数据流中张量变量所需的内存开销,降低了大模型对于硬件内存资源的要求,推动了深度神经网络模型落地应用的发展。动了深度神经网络模型落地应用的发展。动了深度神经网络模型落地应用的发展。

【技术实现步骤摘要】
一种用于神经网络计算的图优化方法和装置


[0001]本专利技术涉及一种基于特定计算模型的计算机
,尤其涉及一种用于神经网络计算的图优化方法和装置。

技术介绍

[0002]随着人工智能产业化应用的快速发展,用于深度神经网络模型计算的图优化技术越来越成为学术界和工业界的研究热点。
[0003]为此,我们提出了一种用于神经网络计算的图优化方法和装置。

技术实现思路

[0004]本专利技术的目的在于提供一种用于神经网络计算的图优化方法和装置,用于神经网络计算的计算图中的多个节点包含重定义变量时,所述重定义变量面对多路计算流图时所对应的关于重定义变量的正确定义的选择依赖于计算图运行阶段执行流所流经的路径。为了在计算图执行之前优化包含重定义变量的计算图,本专利技术提供了一种图优化的全局单节点定义模式的计算图中间表示,提出了关于重定义变量的正确定义的路由选择器的插入准则和分析方法。本专利技术解决了编译期计算图中包含重定义变量的节点流经多路计算流时所对应的关于重定义变量的正确定义的路由选择问题。本专利技术通过简化计算图中节点的重定义变量的特性,简化了用于神经网络计算的图优化过程,获得了更好的优化结果。研究人员和工程应用者开发算法模型的过程中,利用本专利技术简化了用于神经网络计算的计算图的数据流,减少数据流中张量变量所需的内存开销,降低了大模型对于硬件内存资源的要求,推动了深度神经网络模型落地应用的发展。
[0005]本专利技术采用的技术方案如下:一种用于神经网络计算的图优化方法,包括以下步骤:步骤S1:转换计算图,将用于神经网络计算的神经网络计算图转换为全局单节点定义模式的计算图;步骤S2:分配寄存器:为所述计算图节点处的变量分配寄存器;步骤S3:定义关于重定义变量的路由选择器,根据所述计算图运行阶段执行流所流经的路径选择所述计算图节点处重定义变量的正确定义;步骤S4:求解关于重定义变量的路由选择器;步骤S5:定义关于重定义变量的路由选择器插入节点的准则;步骤S6:分析关于重定义变量节点的支配边集合;步骤S7:插入关于重定义变量的路由选择器;步骤S8:重命名关于重定义变量。
[0006]进一步地,所述步骤S1具体包括以下子步骤:步骤S11:记录关于所有变量所在用于神经网络计算的神经网络计算图起始节点处定义的变量的名称;
步骤S12:根据所述用于神经网络计算的神经网络计算图的拓扑顺序遍历所述用于神经网络计算的神经网络计算图,每当存在后继节点重新定义所述变量时,则为所述变量产生一个新的名称,得到全局单节点定义模式的计算图。
[0007]进一步地,所述步骤S2具体包括以下子步骤:步骤S21:分析所述计算图节点处的变量的生命周期;步骤S22:根据所述生命周期为所述变量分配寄存器,当所述变量对应的所述生命周期不冲突,则不冲突的所述生命周期的所述变量复用同一个寄存器。
[0008]进一步地,所述步骤S3中在所述计算图中间表示中,当重定义变量面对多路计算流时所对应的正确路由的选择时,则在所述重定义变量的多路计算流的汇合处插入路由选择器,利用所述路由选择器匹配所述重定义变量的正确定义。
[0009]进一步地,所述步骤S3定义关于重定义变量的路由选择器包括以下定义:定义插入路由选择器的条件;定义所述计算图的支配属性;定义严格的所述计算图。
[0010]进一步地,所述定义插入路由选择器的条件具体为:当存在所述计算图的多路计算流的汇合节点的前驱节点构成两个或两个以上的不同子图,并且不同所述子图中各自均包含重定义变量的定义节点,则同时满足条件一和条件二,在所述计算图的重定义变量的定义节点处插入重定义变量的路由选择器;所述条件一为不同所述子图与所述计算图的多路计算流的汇合节点均存在连边,且所述连边存在唯一的共同节点为所述计算图的多路计算流的汇合节点;所述条件二为在一次所述计算图执行流中,所述计算图的多路计算流的汇合节点不会同时流经不同所述子图与所述计算图的多路计算流的汇合节点的连边,只能选择其中一条连边。
[0011]进一步地,所述定义所述计算图的支配属性具体为:所述计算图执行流从所述计算图的根结点流向节点的过程中所有路径都会经过所述计算图的多路计算流的汇合节点。
[0012]进一步地,所述定义严格的所述计算图具体为:对于没有所述路由选择器的节点,前驱节点中一定存在所述重定义变量的定义支配所述节点;对于有所述路由选择器的节点,一定存在所述重定义变量的多个定义,关于所述重定义变量对应的定义支配所述路由选择器的节点对应的前驱节点。
[0013]进一步地,所述步骤S4具体包括以下子步骤:步骤S41:在所述计算图的非关键边上插入重定义变量的正确定义的拷贝节点:在所述计算图的非关键边上插入路由选择器的输出变量接管重定义变量的正确定义的拷贝节点;步骤S42:分解所述计算图的关键边:在所述计算图的关键边上添加空节点;步骤S43:在所述计算图的关键边上插入重定义变量的正确定义的拷贝节点:在所述步骤S42所述空节点的前驱节点的位置插入路由选择器的输出变量接管重定义变量的正确定义的拷贝节点;步骤S44:移除所述计算图中多路计算流的汇合处所插入的路由选择器的节点:当
所述重定义变量的正确定义的路由选择器被所述步骤S42和所述步骤S43解构,则将重定义变量的正确定义节点插入到所述多路计算流的汇合节点对应的前驱节点中。
[0014]进一步地,所述步骤S5具体包括以下子步骤:步骤S51:定义节点V1严格支配节点V2:节点V1支配节点V2,且节点V1是节点V2的前驱节点,V1≠V2;步骤S52:定义节点V1的支配边:所述支配边包含满足以下条件的所有节点V
i
的集合:节点V1支配节点V
i
的前驱节点,且节点V1不严格支配节点V
i

[0015]进一步地,所述步骤S6具体包括以下子步骤:步骤S61:分析包含重定义变量的起始节点的支配边:关于任意节点处的重定义变量的路由选择器的插入位置为节点的支配边集合;步骤S62:迭代起始节点的后继节点,直到没有节点需要关于重定义变量的路由选择器。
[0016]进一步地,所述步骤S7具体包括:当节点包含任意一个重定义变量的正确定义时,则在所述任意一个重定义变量的支配边上的任何节点处都插入一个关于重定义变量的路由选择器。
[0017]进一步地,所述步骤S8具体包括:对所述插入关于重定义变量的路由选择器输出的变量进行重命名。
[0018]本专利技术还提供一种用于神经网络计算的图优化装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例任一项所述的一种用于神经网络计算的图优化方法。
[0019]本专利技术还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例任一项所述的一种用于神经网络计算的图优化方法。
[0020]本专利技术的有益效果是:本专利技术用于神经网络计算的计算图中的多个节点所包含的重定义变量面对多路计算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于神经网络计算的图优化方法,其特征在于,包括以下步骤:步骤S1:转换计算图,将用于神经网络计算的神经网络计算图转换为全局单节点定义模式的计算图;步骤S2:分配寄存器:为所述计算图节点处的变量分配寄存器;步骤S3:定义关于重定义变量的路由选择器,根据所述计算图运行阶段执行流所流经的路径选择所述计算图节点处重定义变量的正确定义;步骤S4:求解关于重定义变量的路由选择器;步骤S5:定义关于重定义变量的路由选择器插入节点的准则;步骤S6:分析关于重定义变量节点的支配边集合;步骤S7:插入关于重定义变量的路由选择器;步骤S8:重命名关于重定义变量。2.如权利要求1所述的一种用于神经网络计算的图优化方法,其特征在于,所述步骤S1具体包括以下子步骤:步骤S11:记录关于所有变量所在用于神经网络计算的神经网络计算图起始节点处定义的变量的名称;步骤S12:根据所述用于神经网络计算的神经网络计算图的拓扑顺序遍历所述用于神经网络计算的神经网络计算图,每当存在后继节点重新定义所述变量时,则为所述变量产生一个新的名称,得到全局单节点定义模式的计算图。3.如权利要求1所述的一种用于神经网络计算的图优化方法,其特征在于,所述步骤S2具体包括以下子步骤:步骤S21:分析所述计算图节点处的变量的生命周期;步骤S22:根据所述生命周期为所述变量分配寄存器,当所述变量对应的所述生命周期不冲突,则不冲突的所述生命周期的所述变量复用同一个寄存器。4.如权利要求1所述的一种用于神经网络计算的图优化方法,其特征在于,所述步骤S3中在所述计算图中间表示中,当重定义变量面对多路计算流时所对应的正确路由的选择时,则在所述重定义变量的多路计算流的汇合处插入路由选择器,利用所述路由选择器匹配所述重定义变量的正确定义。5.如权利要求1所述的一种用于神经网络计算的图优化方法,其特征在于,所述步骤S3定义关于重定义变量的路由选择器包括以下定义:定义插入路由选择器的条件;定义所述计算图的支配属性;定义严格的所述计算图。6.如权利要求5所述的一种用于神经网络计算的图优化方法,其特征在于,所述定义插入路由选择器的条件具体为:当存在所述计算图的多路计算流的汇合节点的前驱节点构成两个或两个以上的不同子图,并且不同所述子图中各自均包含重定义变量的定义节点,则同时满足条件一和条件二,在所述计算图的重定义变量的定义节点处插入重定义变量的路由选择器;所述条件一为不同所述子图与所述计算图的多路计算流的汇合节点均存在连边,且所述连边存在唯一的共同节点为所述计算图的多路计算流的汇合节点;
所述条件二为在一次所述计算图执行流中,所述计算图的多路计算流的汇合节点不会同时流经不同所述子图与所述计算图的多路计算流的汇合节点的连边,只能选择其中一条连边。7.如权利要求5所述的一种用于神经网络计算的图优化方法,其特征在于,所述定义所述计算图的支配属性具体为:所述计算图执行流从所述计算图的根结点流向节点的过程中所有路径都会经过所述计算图的多路计算流的汇合节点。8.如权利要求5所述的一种用于神经网...

【专利技术属性】
技术研发人员:王宏升陈光
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1