运算方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:27615015 阅读:20 留言:0更新日期:2021-03-10 10:43
本公开涉及一种运算方法、装置、计算机设备和存储介质。所述计算机设备包括计算处理装置、接口装置、其他处理装置和存储装置。计算处理装置可以配置成执行用户指定的操作,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据本申请的实施方式,编译器在对神经网络对应的程序编译的过程中实现对神经网络的控制流算子的多核拆分,实现控制流多核并行。多核并行。多核并行。

【技术实现步骤摘要】
运算方法、装置、计算机设备和存储介质


[0001]本公开涉及计算机
,特别是涉及一种运算方法、装置、计算机设备和存储介质。

技术介绍

[0002]在人工智能
,神经网络算法是非常流行的一种机器学习算法,在各种领域中都取得了非常好的效果,比如图像识别,语音识别,自然语言处理等。随着神经网络算法的发展,算法的复杂度也越来越高,为了提高识别度,模型的规模也在逐渐增大。

技术实现思路

[0003]基于此,有必要针对上述技术问题,提供一种能够实现包含控制流的神经网络的并行运行的运算方法、装置、计算机设备和存储介质。
[0004]根据本公开的一方面,提供了一种控制流多核并行方法,所述方法包括:
[0005]遍历神经网络中的算子,确定神经网络中的待处理的控制流算子;
[0006]将所述待处理的控制流算子复制到处理器的多个核中;
[0007]在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,
[0008]其中,所述数据处理算子为拆分算子或者合并算子,用于对所述待处理的控制流算子的操作数进行拆分或者合并。
[0009]在一种可能的实现方式中,所述待处理的控制流算子为merge算子或者nextIter算子,
[0010]在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,包括:
[0011]在所述待处理的控制流算子之前插入拆分算子,所述拆分算子用于对所述待处理的控制流算子的输入操作数进行拆分得到子输入操作数。
[0012]在一种可能的实现方式中,所述拆分算子用于按照核的顺序对所述待处理的控制流算子的输入操作数进行拆分,得到复制到核上的待处理的控制流算子对应的子输入操作数。
[0013]在一种可能的实现方式中,所述待处理的控制流算子为switch算子,
[0014]在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,包括:
[0015]在所述待处理的控制流算子之后插入合并算子,所述合并算子用于对复制到多个核上的待处理的控制流算子的输出操作数进行合并。
[0016]在一种可能的实现方式中,所述合并算子用于按照核的顺序对复制到多个核上的待处理的控制流算子的输出操作数进行合并。
[0017]根据本公开的另一方面,提供了一种控制流多核并行装置,所述装置包括:
[0018]遍历模块,用于遍历神经网络中的算子,确定神经网络中的待处理的控制流算子;
[0019]复制模块,用于将所述待处理的控制流算子复制到处理器的多个核中;
[0020]插入模块,用于在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,
[0021]其中,所述数据处理算子为拆分算子或者合并算子,用于对所述待处理的控制流算子的操作数进行拆分或者合并。
[0022]在一种可能的实现方式中,所述待处理的控制流算子为merge算子或者nextIter算子,
[0023]所述插入模块,包括:
[0024]第一插入单元,用于在所述待处理的控制流算子之前插入拆分算子,所述拆分算子用于对所述待处理的控制流算子的输入操作数进行拆分得到子输入操作数。
[0025]在一种可能的实现方式中,所述拆分算子用于按照核的顺序对所述待处理的控制流算子的输入操作数进行拆分,得到复制到核上的待处理的控制流算子对应的子输入操作数。
[0026]在一种可能的实现方式中,所述待处理的控制流算子为switch算子,
[0027]所述插入模块,包括:
[0028]第二插入单元,用于在所述待处理的控制流算子之后插入合并算子,所述合并算子用于对复制到多个核上的待处理的控制流算子的输出操作数进行合并。
[0029]在一种可能的实现方式中,所述合并算子用于按照核的顺序对复制到多个核上的待处理的控制流算子的输出操作数进行合并。
[0030]根据本公开的另一方面,提供了一种计算机设备,包括:
[0031]处理器;
[0032]用于存储处理器可执行指令的存储器;
[0033]其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述的方法。
[0034]根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述的方法。
[0035]通过根据处理器的核的数量对神经网络中的控制流算子及其操作数进行拆分实现,可以运用在对神经网络进行编译的过程中由编译器执行。也就是说,编译器在对神经网络对应的程序编译的过程中实现对神经网络的控制流算子的多核拆分,从而实现控制流多核并行。
[0036]根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
[0037]包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
[0038]图1示出根据本公开一实施例的控制流多核并行方法的流程图。
[0039]图2示出本申请一实施例的控制流算子的操作示意图。
[0040]图3示出根据本申请一实施例的循环(while)的示意图。
[0041]图4示出根据本公开一实施例的处理器的示意图。
[0042]图5示出根据本申请一实施例的控制流多核并行的示意图。
[0043]图6示出根据本申请一实施例的控制流多核并行装置的框图。
[0044]图7是示出根据本披露实施例的一种组合处理装置1200的结构图。
[0045]图8是示出根据本披露实施例的一种板卡1300的结构示意图。
具体实施方式
[0046]下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0047]应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0048]还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种控制流多核并行方法,其特征在于,所述方法包括:遍历神经网络中的算子,确定神经网络中的待处理的控制流算子;将所述待处理的控制流算子复制到处理器的多个核中;在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,其中,所述数据处理算子为拆分算子或者合并算子,用于对所述待处理的控制流算子的操作数进行拆分或者合并。2.根据权利要求1所述的方法,其特征在于,所述待处理的控制流算子为merge算子或者nextIter算子,在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,包括:在所述待处理的控制流算子之前插入拆分算子,所述拆分算子用于对所述待处理的控制流算子的输入操作数进行拆分得到子输入操作数。3.根据权利要求2所述的方法,其特征在于,所述拆分算子用于按照核的顺序对所述待处理的控制流算子的输入操作数进行拆分,得到复制到核上的待处理的控制流算子对应的子输入操作数。4.根据权利要求1-3任意一项所述的方法,其特征在于,所述待处理的控制流算子为switch算子,在神经网络中插入与所述待处理的控制流算子的类型对应的数据处理算子,以对所述待处理的控制流算子的操作数进行处理,包括:在所述待处理的控制流算子之后插入合并算子,所述合并算子用于对复制到多个核上的待处理的控制流算子的输出操作数进行合并。5.根据权利要求4所述的方法,其特征在于,所述合并算子用于按照核的顺序对复制到多个核上的待处理的控制流算子的输出操作数进行合并。6.一种控制流多核并行装置,其特征在于,所述装置包括:遍历模块,用于遍历神经网络中的算子,确定神经网络中的待处理的...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:安徽寒武纪信息科技有限公司
类型:发明
国别省市:

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

1