计算图处理方法、装置、设备、存储介质以及程序产品制造方法及图纸

技术编号:37253065 阅读:20 留言:0更新日期:2023-04-20 23:30
本公开提供了一种计算图处理方法、装置、设备、存储介质以及程序产品,涉及计算机技术、数据处理技术领域,尤其涉及人工智能、深度学习、芯片技术领域。具体实现方案为:将深度学习模型的计算图划分为多个计算图分段;确定每一个计算图分段在硬件单元上运行的资源占用

【技术实现步骤摘要】
计算图处理方法、装置、设备、存储介质以及程序产品


[0001]本公开涉及计算机技术、数据处理
,尤其涉及人工智能、深度学习、芯片
,具体涉及一种计算图处理方法、装置、设备、存储介质以及程序产品。

技术介绍

[0002]随着深度学习技术的发展,训练更大的深度学习模型成为一种提高模型精度和性能的主流趋势。更大的深度学习模型需要更多数据进行训练,这对例如图形处理器等硬件单元的资源提出了更大的需求。

技术实现思路

[0003]本公开提供了一种计算图处理方法、装置、设备、存储介质以及程序产品。
[0004]根据本公开的一方面,提供了一种计算图处理方法,包括:将深度学习模型的计算图划分为多个计算图分段;确定每一个计算图分段在硬件单元上运行的资源占用

运算比,其中,资源占用

运算比表征计算图分段相对于硬件单元的资源占用量和运算量之间的比值;根据硬件单元的可用资源量和计算图分段的资源占用

运算比,确定目标计算图分段;以及根据目标计算图分段,修改计算图,得到更新计算图。
[0005]根据本公开的另一方面,提供了一种计算图处理装置,包括:计算图分段确定模块、资源占用

运算比确定模块、目标计算图分段确定模块以及更新计算图确定模块。计算图分段确定模块,用于将深度学习模型的计算图划分为多个计算图分段。资源占用

运算比确定模块,用于确定每一个计算图分段在硬件单元上运行的资源占用

运算比,其中,资源占用

运算比表征计算图分段相对于硬件单元的资源占用量和运算量之间的比值。目标计算图分段确定模块,用于根据硬件单元的可用资源量和计算图分段的资源占用

运算比,确定目标计算图分段。更新计算图确定模块,用于根据目标计算图分段,修改计算图,得到更新计算图。
[0006]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器和与至少一个处理器通信连接的存储器。其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例的方法。
[0007]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行本公开实施例的方法。
[0008]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序存储于可读存储介质和电子设备其中至少之一上,计算机程序存储于可读存储介质和电子设备其中至少之一上,计算机程序在被处理器执行时实现本公开实施例的方法。
[0009]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0010]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0011]图1示意性示出了根据本公开实施例的计算图处理方法和装置的系统架构图;
[0012]图2A示意性示出了根据本公开实施例的计算图处理方法的流程图;
[0013]图2B示意性示出了根据本公开实施例的计算图处理方法的示意图;
[0014]图3A示意性示出了任意一个迭代过程中前向传播的示意图;
[0015]图3B示意性示出了任意一个迭代过程中后向传播的示意图;
[0016]图3C示意性示出了任意一个迭代过程中模型参数p1更新的示意图;
[0017]图4A示意性示出了无重计算的情况下,一次迭代过程中执行运算操作的示意图;
[0018]图4B示意性示出了对所有计算图片段执行重计算的情况下,一次迭代过程中执行运算操作的示意图;
[0019]图4C示意性示出了基于资源占用

运算比对计算图分段进行评估,并根据得到的目标计算图分段执行重计算的情况下,一次迭代过程中执行运算操作的示意图;
[0020]图5示意性示出了根据本公开实施例的计算图处理装置的框图;以及
[0021]图6示意性示出了可以实现本公开实施例的计算图处理方法的电子设备的框图。
具体实施方式
[0022]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0023]在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0024]在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0025]在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
[0026]随着深度学习技术的发展,训练更大的模型成为一种提高模型精度和性能的主流趋势。更大的模型需要更多数据的训练,这对例如图形处理器的等硬件单元的资源提出了更大的需求。以硬件单元为图形处理器(Graphics Processing Unit,GPU),GPU的资源为显存为例进行说明,GPU的显存量增长速度大于深度学习模型大小增长速度。这就使得针对深度学习模型训练,如何优化硬件单元的资源占用成为一个亟需解决的问题。
[0027]图1示意性示出了根据本公开一实施例的计算图处理方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的
技术实现思路
,但并不意味着本公开实施例不可以用于其他设备、系统、环境或
场景。
[0028]如图1所示,根据该实施例的系统架构100可以包括终端101、102和硬件单元103。
[0029]终端101例如可以用于存储深度学习模型、计算图等。终端102例如可以获取终端101的计算图,并执行本公开实施例的计算图处理方法,得到更新计算图。
[0030]硬件单元103例如可以是图像处理器、中央处理器以及神经网络处理器中的至少一个。根据终端102得到的更新计算图例如可以发送至硬件单元103,使得硬件单元103可以根据更新计算图对深度学习模型执行模型训练。
[0031]终端101、终端102可以是服务器,还可以是服务器集群。服务器也可以具有云计算功能。
...

【技术保护点】

【技术特征摘要】
1.一种计算图处理方法,包括:将深度学习模型的计算图划分为多个计算图分段;确定每一个所述计算图分段在硬件单元上运行的资源占用

运算比,其中,所述资源占用

运算比表征所述计算图分段相对于所述硬件单元的资源占用量和运算量之间的比值;根据所述硬件单元的可用资源量和所述计算图分段的所述资源占用

运算比,确定目标计算图分段;以及根据所述目标计算图分段,修改所述计算图,得到更新计算图。2.根据权利要求1所述的方法,还包括:根据所述硬件单元的总资源量与不可用资源量,确定所述可用资源量,其中,所述不可用资源量表征所述深度学习模型的模型状态变量的资源占用量,所述可用资源量表征所述深度学习模型的中间变量的资源占用量,所述模型状态变量表征与所述深度学习模型的模型参数相关的变量,所述中间变量表征与所述深度学习模型训练的样本批处理相关的变量。3.根据权利要求2所述的方法,其中,所述计算图包括节点,所述节点表征张量或者运算操作;所述根据所述目标计算图分段,修改所述计算图,得到更新计算图包括:根据所述目标计算图分段中与所述深度学习模型的前向传播相关的节点,确定第一修改节点;根据所述目标计算图分段中与所述深度学习模型的反向传播相关的节点,确定第二修改节点;在所述第一修改节点增加释放资源节点,在所述第二修改节点增加重计算节点,得到所述更新计算图,其中,所述释放资源节点用于释放所述第一修改节点的所述中间变量的资源占用量,所述重计算节点用于对所述第二修改节点对应的所述中间变量进行重计算。4.根据权利要求3所述的方法,其中,所述计算图还包括连接边,所述连接边表征所述节点之间的相关性和方向;所述将深度学习模型的计算图划分为多个计算图分段包括:根据所述计算图的所述节点和所述连接边,确定所述计算图对应的计算序列,其中,所述计算序列对应的所述运算操作和所述张量的执行顺序为串行;以及将所述计算序列划分为多个所述计算图分段。5.根据权利要求4所述的方法,其中,所述将所述计算序列划分为多个所述计算图分段包括:根据所述深度学习模型的模型结构,将所述计算序列划分为多个所述计算图分段,其中,所述模型结构包括至少一个重复结构,所述重复结构包括结构相同的至少一个网络层,所述计算图分段对应所述重复结构。6.根据权利要求4所述的方法,其中,所述将所述计算序列划分为多个所述计算图分段包括:根据所述计算序列对应的所述运算操作的数量,将所述计算序列划分为多个所述计算图分段。7.根据权利要求2所述的方法,其中,所述根据所述硬件单元的可用资源量和所述计算图分段的所述资源占用

运算比,确定目标计算图分段包括:根据所述计算图分段的所述资源占用

运算比,对至少一个所述计算图分段进行排序,
得到计算图分段序列;以及针对所述计算图分段序列中第i个计算图分段,根据资源占用

运算比、所述可用资源量和所述计算图分段的在所述硬件单元上运行的资源占用量,确定所述第i个计算图分段是否为所述目标计算图分段。8.根据权利要求1

7中任一项所述的方法,还包括:利用所述更新计算图,在所述硬件单元上训练所述深度学习模型。9.根据权利要求1

7中任一项所述的方法,其中,所述硬件单元包括以下中的至少一个:图像处理器、中央处理器以及神经网络处理器。10.一种计算图处理装置,包括:计算图分段确定模块,用于将深度学习模型的计算图划分为多个计算图分段;资源占用

运算比确定模块,用于确定每一个所述计算图分段在硬件单元上运行的资源占用

运算比,其中,所述资源占用

运算比表征所述计算图分段相对于所述硬件单元的资源占用量和运算量之间的比值;目标计算图分段确定模块,用于根据所述硬件单元的可用资源量和所述计算图分段的所述资源占...

【专利技术属性】
技术研发人员:梁建中赵英利曹州敖玉龙于佃海
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1