基于神经网络的任务处理方法、电子设备及存储介质与流程

xiaoxiao2月前  18


本技术属于数据处理,尤其涉及基于神经网络的任务处理方法、电子设备及存储介质。


背景技术:

1、神经网络被广泛应用于智能化领域,而现有主流的神经网络中,往往包含多种不同类型的网络层,不同网络层在处理数据时所使用的运算逻辑不同,即对应不同算子,为了提高神经网络的运算速率,现有的针对多算子神经网络的运算设备可以为不同的算子配置对应的计算模块,从而通过计算模块处理固定运算逻辑算子的运算任务,以提高运算效率。

2、然而,对于现有的神经网络技术,现有的神经网络加速器架构中,一般设计为对应一个算子的计算模块,在处理多算子神经网络的运算任务时,需要通过一个计算模块处理完成该运算任务后,才交由另一计算模块进行运算处理,同一时间只能控制一个计算模块处理运算任务,大大降低了计算模块的使用效率,从而降低了神经网络的计算速度,另外,难以在同一或不同计算任务中实现基于不同算子的运算,多异构计算模块的神经网络加速器难以有效实现。


技术实现思路

1、本技术实施例提供了一种基于神经网络的任务处理方法、电子设备及存储介质,可以解决现有的神经网络技术,在处理多算子神经网络的运算任务时,同一时间只能控制一个计算模块处理运算任务,计算模块的使用效率以及神经网络的计算速度低的问题。

2、第一方面,本技术实施例提供了一种基于多算子神经网络的任务处理方法,应用于神经网络加速器,所述神经网络加速器包括多个模块;所述多个模块包括至少两个计算模块,每个所述计算模块用于运算至少一种算子;

3、所述任务处理方法包括:

4、响应于多算子神经网络的运算任务,确定用于处理所述运算任务的多个指令,所述多个指令包含多个运算指令;

5、根据配置的所述计算模块的模块数量,将所述多个指令划分为与所述模块数量匹配的多个指令队列;所述指令队列包括运算指令队列,每个所述运算指令队列用于存储一个所述计算模块对应的所述运算指令;

6、基于所述多个指令队列内各个指令的执行时序,分别通过基于各个指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果。

7、在第一方面的一种可能的实现方式中,所述运算任务包含多个待处理的数据块;所述响应于多算子神经网络的运算任务,确定用于处理所述运算任务的多个指令,包括:

8、根据在执行所述运算任务时所述数据块所需要执行的数据处理阶段,为每个所述数据处理阶段配置一个所述指令;所述数据处理阶段包括通过所述计算模块对所述数据块进行运算的处理阶段;

9、基于所有所述数据块在多个所述数据处理阶段对应的所述指令,得到所述运算任务的所述多个指令。

10、在第一方面的一种可能的实现方式中,每个所述数据块对应的各所述运算指令相同;和/或,各所述数据块对应的相同所述数据处理阶段所配置的所述指令构成一个所述指令队列。

11、在第一方面的一种可能的实现方式中,所述基于所述多个指令队列内各个指令的执行时序,分别通过各个所述指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果,包括:

12、根据各个所述计算模块对应算子的运算次序,确定所述计算模块对应的运算指令队列的第一次序;

13、根据所述运算任务中所述数据块对应的执行次序,确定在多个所述指令队列中所述数据块对应指令的第二次序;

14、根据所述第一次序以及所述第二次序,确定所述多个指令队列内各个所述指令的执行时序。

15、在第一方面的一种可能的实现方式中,所述多个模块还包括数据管理模块;所述多个指令还包括:数据加载指令以及数据保存指令;所述多个指令队列还包括:加载指令队列以及保存指令队列;

16、所述基于所述多个指令队列内各个指令的执行时序,分别基于各个所述指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果,包括:

17、基于加载指令队列将第n数据块的数据加载指令发送给所述数据管理模块,以通过所述数据管理模块将所述第n数据块从第一存储单元加载至第二存储单元;n为大于或等于1的整数;

18、若所述数据管理模块执行完成所述第n数据块的数据加载指令,则基于所述加载指令队列依次将各个数据加载指令发送给所述数据管理模块,以通过所述数据管理模块依次将各个所述数据块从第一存储单元加载至所述第二存储单元

19、同时,根据所述至少两个计算模块对应的运算次序,依次通过各个所述运算指令队列向所述计算模块发送所述计算模块对应的运算指令,以通过所述至少两个计算模块对存储于所述第二存储单元内的所述第n数据块进行运算操作,生成所述第n数据块的运算结果;

20、通过保存指令队列将所述第n数据块的数据保存指令发送给所述数据管理模块,以通过所述数据管理模块将所述第n数据块的运算结果保存至所述第一存储单元。

21、在第一方面的一种可能的实现方式中,所述若所述数据管理模块执行完成所述第n数据块的数据加载指令,则基于所述加载指令队列依次将各个数据加载指令发送给所述数据管理模块,包括:

22、若所述数据管理模块执行完成所述第n数据块的数据加载指令,则通过所述加载指令队列将第n+1数据块的数据加载指令发送给所述数据管理模块,以通过所述数据管理单元将所述第n+1数据块从所述第一存储单元加载至所述第二存储单元。

23、在第一方面的一种可能的实现方式中,所述计算模块包括第m计算模块以及第m+1计算模块;m为大于或等于1的整数;

24、所述根据所述至少两个计算模块对应的运算次序,依次通过各个所述运算指令队列向所述计算模块发送所述计算模块对应的运算指令,包括:

25、通过第m运算指令队列向所述第m计算模块发送第m运算指令,以通过所述第m计算模块对所述第二存储单元内的第n数据块进行运算操作,生成第m运算结果;

26、通过第m+1运算指令队列向所述第m+1计算模块发送第m+1运算指令,以通过所述第m+1计算模块对所述第m运算结果进行运算操作,生成第m+1运算结果。

27、在第一方面的一种可能的实现方式中,所述多个指令还包括:数据整理指令;所述指令队列还包括:整理指令队列;

28、所述通过第m运算指令队列向所述第m计算模块发送第m运算指令,以通过所述第m计算模块对所述第二存储单元内的第n数据块进行运算操作,生成第m运算结果,还包括:

29、通过整理指令队列向所述数据管理模块发送所述第n数据块对应的数据整理指令,以通过所述数据整理模块将所述第m计算模块生成的原始运算结果转换为预设格式的第m运算结果;所述预设格式是所述第m+1计算模块对应的数据格式。

30、在第一方面的一种可能的实现方式中,所述神经网络加速器还包括依赖协调模块;

31、所述基于所述多个指令队列内各个指令的执行时序,分别通过各个所述指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果,包括:

32、若任一模块执行所述任一模块对应的指令前和/或任一模块完成所述任一模块对应的指令后,则通过所述依赖协调单元确定所述任一模块对应指令的依赖标识;

33、通过所述依赖协调模块生成所述依赖标识对应的操作信号;

34、基于所述操作信号控制指令队列向所述指令队列对应的模块发送指令。

35、第二方面,本技术实施例提供了一种基于多算子神经网络的任务处理装置,所述任务处理装置包括多个模块;所述多个模块包括至少两个计算模块;每个所述计算模块用于运算至少一种算子;

36、所述任务处理装置包括:

37、指令生成单元,用于响应于多算子神经网络的运算任务,确定用于处理所述运算任务的多个指令;所述多个指令包含多个运算指令;

38、指令队列生成单元,用于根据配置的计算模块的模块数量,将所述多个指令划分为与所述模块数量匹配的多个指令队列;所述指令队列包括运算指令队列;每个所述运算指令队列用于存储一个所述计算模块的所述运算指令;

39、指令执行单元,用于基于所述多个指令队列内各个指令的执行时序,分别通过各个所述指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果。

40、第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的方法。

41、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一项所述的方法。

42、第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中任一项所述的方法。

43、本技术实施例与现有技术相比存在的有益效果是:在接收到多算子神经网络的运算任务时,神经网络加速器可以生成处理该运算任务的多个指令;其中,上述多个指令包括有控制计算模块的运算指令,神经网络加速器可以根据计算模块的模块数量,对多个指令进行队列划分,生成多个指令队列,由于多个指令队列可以并行触发,实现了并行控制多个计算模块的目的。与现有的神经网络控制技术相比,本技术实施例并非以串行的方式控制多个计算模块,即需要等待一个计算模块处理完成所有运算任务后,再控制下一个计算模块处理下一阶段的运算任务,而是可以为不同的计算模块配置对应的运算指令队列,根据各个指令的执行时序,并行控制多个计算模块进行数据运算处理,提高了计算模块的使用效率,继而能够提高神经网络处理运算任务的处理速度。


技术特征:

1.一种基于神经网络的任务处理方法,应用于神经网络加速器,其特征在于,所述神经网络加速器包括多个模块;所述多个模块包括至少两个计算模块,每个所述计算模块用于运算至少一种算子;

2.根据权利要求1所述的任务处理方法,其特征在于,所述运算任务包含多个待处理的数据块,其中,所述响应于基于神经网络的运算任务,确定用于处理所述运算任务的多个指令,包括:

3.根据权利要求2所述的任务处理方法,其特征在于,每个所述数据块对应的各所述运算指令相同;和/或,各所述数据块对应的相同所述数据处理阶段所配置的所述指令构成一个所述指令队列。

4.根据权利要求2所述的任务处理方法,其特征在于,所述基于所述多个指令队列内各个指令的执行时序,分别基于各个所述指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果,包括:

5.根据权利要求2所述的任务处理方法,其特征在于,所述多个模块还包括数据管理模块;所述多个指令还包括:数据加载指令以及数据保存指令;所述多个指令队列还包括:加载指令队列以及保存指令队列;其中,所述基于所述多个指令队列内各个指令的执行时序,分别基于各个所述指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果,包括:

6.根据权利要求5所述的任务处理方法,其特征在于,所述若所述数据管理模块执行完成所述第n数据块的数据加载指令,则基于所述加载指令队列依次将各个数据加载指令发送给所述数据管理模块,包括:

7.根据权利要求5所述的任务处理方法,其特征在于,所述计算模块包括第m计算模块以及第m+1计算模块;m为大于或等于1的整数;

8.根据权利要求7所述的任务处理方法,其特征在于,所述多个指令还包括:数据整理指令;所述指令队列还包括:整理指令队列;

9.根据权利要求1-8任一项所述的任务处理方法,其特征在于,所述神经网络加速器还包括依赖协调模块;

10.一种基于多算子神经网络的任务处理装置,其特征在于,所述任务处理装置包括多个模块;所述多个模块包括至少两个计算模块;每个所述计算模块用于运算至少一种算子;

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

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


技术总结
本申请适用于数据处理领域,提供了基于神经网络的任务处理方法、电子设备及存储介质,方法包括:响应于多算子神经网络的运算任务,确定用于处理所述运算任务的多个指令,多个指令包含多个运算指令;根据配置的计算模块的模块数量,将多个指令划分为与所述模块数量匹配的多个指令队列;指令队列包括运算指令队列,每个运算指令队列用于存储一个所述计算模块对应的所述运算指令;基于所述多个指令队列内各个指令的执行时序,分别基于各个指令队列控制所述指令队列对应的模块执行数据处理操作,生成所述运算任务的处理结果。采用上述方法提高计算模块的利用率,继而提高运算任务的运算速度。

技术研发人员:柳铭哲,汪小勇,何金,杭圣超,卢天宇
受保护的技术使用者:思特威(深圳)电子科技有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)