加速器的并行计算方法及装置与流程
本公开总体说来涉及加速器并行计算,更具体地讲,涉及一种加速器的并行计算方法及装置。
背景技术:
1、随着人工智能(artificial intelligence,ai)技术的发展,对ai计算的需求正在增长。
技术实现思路
1、在一些示例中,专门为ai计算设计的加速器可以执行并行计算,以提高计算速度。
2、在一些示例中,对于ai神经网络而言,由于数据在网络的各层之间传递,因此,在利用多个加速器执行并行计算时,可能需要进行数据切片。在一些示例中,待并行计算的所有算子均需满足一种统一的数据切片方式,在此情况下,可以使用不同的加速器对不同的切片算子进行并行计算。
3、然而,由于算子的功能和计算逻辑上的差异,使得一些算子之间可能难以采用统一的数据切片方式,这可能导致加速器无法对这些算子进行并行计算,不利于提高加速器的数据处理速度。
4、本公开的实施例提供一种加速器的并行计算方法及装置,能够解决相关技术中存在的至少一个上述问题。
5、在一些方面,本公开提供一种加速器的并行计算方法,所述并行计算方法由基于一个或多个处理器的装置执行,所述并行计算方法包括:确定多个算子;对神经网络中所述多个算子进行数据切片;调用多个加速器对所述多个算子执行并行计算。例如,确定所述多个算子,包括:确定所述神经网络中不满足数据切片条件的第一算子,其中,所述数据切片条件表示:能够按照特定维度对算子的输入数据进行切片;根据所述第一算子的计算逻辑,从所述第一算子中拆分出满足所述数据切片条件的第二算子;确定所述神经网络中被配置为与所述第二算子并行计算的第三算子;将所述第二算子和所述第三算子确定为所述多个算子。
6、作为示例,从所述第一算子中拆分出所述第二算子,包括:确定所述第一算子中满足所述数据切片条件的第一计算步骤;以及,将处于所述计算逻辑的开始的所述第一计算步骤的第一计算集合或处于所述计算逻辑的结尾的所述第一计算步骤的第二计算集合确定为所述第二算子。
7、作为示例,所述第一算子包括不满足所述数据切片条件的第二计算步骤,所述第二算子的输入包括所述第二计算步骤的输出,或者,所述第二计算步骤的输入包括所述第二算子的输出。
8、作为示例,确定所述神经网络中被配置为与所述第二算子并行计算的第三算子,包括:根据所述第二算子在所述第一算子的计算逻辑中的位置,确定所述第三算子。
9、作为示例,根据所述第二算子在所述第一算子的计算逻辑中的位置,确定所述第三算子,包括:基于包括所述第一算子的计算逻辑中的开始步骤的所述第二算子,将所述神经网络中位于所述第一算子之前的相邻算子确定为所述第三算子;基于包括所述第一算子的计算逻辑中的结尾步骤的所述第二算子,将所述神经网络中位于所述第一算子之后的相邻算子确定为所述第三算子。
10、作为示例,确定所述神经网络中不满足所述数据切片条件的第一算子,包括:确定所述第一算子的输入数据无法按照所述特定维度进行切片;或者,确定所述第一算子中的至少一个计算步骤用于基于所述特定维度对输入数据进行统计。
11、作为示例,所述第二算子和所述第三算子中的一者为张量算子,所述第二算子和所述第三算子中的另一者为矢量算子,所述多个加速器为异构加速器,并且包括张量加速器和矢量加速器。
12、作为示例,所述确定所述神经网络中不满足所述数据切片条件的第一算子,包括:获取所述神经网络中待执行并行计算的预定义的算子集合;基于确定所述预定义的算子集合中存在不满足所述数据切片条件的算子,确定所述第一算子。
13、在一些方面,本公开提供一种电子设备,所述电子设备包括:至少一个处理器;以及用于存储处理器可执行指令的存储器,其中,所述处理器可执行指令在被所述至少一个处理器运行时,使所述至少一个处理器执行加速器的并行计算的操作,其中,所述操作包括:确定多个算子;对神经网络中所述多个算子进行数据切片;调用多个加速器对所述多个算子执行并行计算。例如,确定所述多个算子,包括:确定所述神经网络中不满足数据切片条件的第一算子,其中,所述数据切片条件表示:能够按照特定维度对算子的输入数据进行切片;根据所述第一算子的计算逻辑,从所述第一算子中拆分出满足所述数据切片条件的第二算子;确定所述神经网络中被配置为与所述第二算子并行计算的第三算子;将所述第二算子和所述第三算子确定为所述多个算子。
14、在一些方面,本公开提供一种存储有计算机可执行指令的非暂时性存储介质,当所述计算机可执行指令由处理器执行时,使得所述处理器执行加速器的并行计算的操作,其中,所述操作包括:确定多个算子;对神经网络中所述多个算子进行数据切片;调用多个加速器对所述多个算子执行并行计算。例如,确定所述多个算子,包括:确定所述神经网络中不满足数据切片条件的第一算子,其中,所述数据切片条件表示:能够按照特定维度对算子的输入数据进行切片;根据所述第一算子的计算逻辑,从所述第一算子中拆分出满足所述数据切片条件的第二算子;确定所述神经网络中被配置为与所述第二算子并行计算的第三算子;将所述第二算子和所述第三算子确定为所述多个算子。
15、根据本公开的一些实施例,提供一种加速器的并行计算装置,所述并行计算装置被配置于基于一个或多个处理器的装置,所述并行计算装置包括:算子确定单元,被配置为确定多个算子,其中,所述算子确定单元包括:第一确定单元,被配置为确定神经网络中不满足数据切片条件的第一算子,其中,所述数据切片条件表示:能够按照特定维度对算子的输入数据进行切片,拆分单元,被配置为根据所述第一算子的计算逻辑,从所述第一算子中拆分出满足所述数据切片条件的第二算子,第二确定单元,被配置为确定所述神经网络中被配置为与所述第二算子并行计算的第三算子,以及,第三确定单元,被配置为将所述第二算子和所述第三算子确定为所述多个算子;数据切片单元,被配置为对所述神经网络中的所述多个算子进行数据切片;以及,调用单元,被配置为调用多个加速器对多个算子执行并行计算。
16、作为示例,所述拆分单元被配置为:确定所述第一算子中满足所述数据切片条件的第一计算步骤;以及,将处于所述计算逻辑的开始的所述第一计算步骤的第一计算集合或处于所述计算逻辑的结尾的所述第一计算步骤的第二计算集合确定为所述第二算子。
17、作为示例,所述第一算子包括不满足所述数据切片条件的第二计算步骤,所述第二算子的输入包括所述第二计算步骤的输出,或者,所述第二计算步骤的输入包括所述第二算子的输出。
18、作为示例,所述第二确定单元被配置为:根据所述第二算子在所述第一算子的计算逻辑中的位置,确定所述第三算子。
19、作为示例,所述第二确定单元被配置为:基于包括所述第一算子的计算逻辑中的开始步骤的所述第二算子,将所述神经网络中位于所述第一算子之前的相邻算子确定为所述第三算子;基于包括所述第一算子的计算逻辑中的结尾步骤的所述第二算子,将所述神经网络中位于所述第一算子之后的相邻算子确定为所述第三算子。
20、作为示例,所述第一确定单元被配置为:确定所述第一算子的输入数据无法按照所述特定维度进行切片;或者,确定所述第一算子中的至少一个计算步骤用于基于所述特定维度对输入数据进行统计。
21、作为示例,所述第二算子和所述第三算子中的一者为张量算子,所述第二算子和所述第三算子中的另一者为矢量算子,所述多个加速器为异构加速器,并且包括张量加速器和矢量加速器。
22、作为示例,所述第一确定单元被配置为:获取所述神经网络中待执行并行计算的预定义的算子集合;基于确定所述预定义的算子集合中存在不满足所述数据切片条件的算子,确定所述第一算子。
23、根据本公开的一些实施例,提供一种电子设备,所述电子设备包括:处理器;以及用于存储处理器可执行指令的存储器,其中,所述处理器可执行指令在被所述处理器运行时,使所述处理器执行根据本公开的示例性实施例所述的加速器的并行计算方法。
24、根据本公开的一些实施例,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行根据本公开的示例性实施例所述的加速器的并行计算方法。
25、根据本公开的一些实施例,提供一种计算机程序产品,包括计算机可执行指令,所述计算机可执行指令被至少一个处理器执行时实现根据本公开的示例性实施例所述的加速器的并行计算方法。
26、根据本公开的一些实施例的加速器的并行计算方法及装置,对于神经网络中无法满足数据切片条件的第一算子,可以根据其计算逻辑,对第一算子进行拆分,得到能够满足数据切片条件的第二算子,从而可以调用多个加速器对第二算子以及神经网络中能够与第二算子进行并行计算的第三算子对二者进行并行计算,从而可以解决现有技术中无法对不满足数据切片条件的算子执行并行计算的问题,通过对算子进行拆分,实现多个加速器的并行计算,提高加速器的利用率,提高加速器的数据处理速度和计算效率。
27、此外,根据本公开的一些实施例的加速器的并行计算方法及装置,在拆分第一算子时可以最大化能够进行数据切片的部分,将切片受限的计算步骤限制在最小的范围内,从而最大化计算的并行度,进一步提高加速器的计算速度。
28、此外,根据本公开的一些实施例的加速器的并行计算方法及装置,可以适用于同一时刻一个类型的加速器仅能对一个算子进行计算的终端,从而可以提高数据切片受限的算子在端侧人工智能加速器上的计算并行度。
29、在接下来的描述中,将会阐述本公开总体构思的一些方面和/或优点,还有一些方面和/或优点将通过下述描述或者本公开总体构思的实施而得知。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com