一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

神经网络处理组件及多神经网络处理方法

2022-04-16 21:20:12 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种神经网络处理组件及多神经网络处理方法。


背景技术:

2.随着深度学习技术的不断发展,人工神经网络模型出现在越来越多的场景中,且重要性越来越高。智能场景的不断复杂化也使得多网络协同解决方案成为发展趋势之一。在这些场景中,往往需要多个神经网络模型并行执行,且执行过程中存在多样的神经之间的交互。在相关技术中,神经网络加速芯片主要针对单神经网络的运行进行加速。加速多神经网络高速并行执行且支持神经网络之间灵活交互的架构仍有巨大的探索空间。
3.人工神经网络包含大量的矩阵或向量运算,这些运算需要耗费大量的算力,但计算的规整性和高度可并行性也使得专门为其设计高效的加速芯片成为可能,这样的加速芯片即为神经网络加速器。一个标准的神经网络加速器的架构通常为:输入缓存与权重缓存将神经网络的输入和权重送到处理单元(pe)阵列中,pe阵列中含有大量可以进行乘法和累加计算的并行处理单元,可高效完成神经网络中占主要比例的线性计算。pe阵列的处理结果将放入输出缓存中,并经过向量处理单元完成非线性计算,如池化、激活函数等。如此,神经网络加速器便完成了神经网络一层的全部或部分计算,不断重复这个过程,完成神经网络整体的计算。在系统层面上,神经网络加速器会接受中央处理器(cpu)的调度与控制,以及与内存进行大量的数据交互。
4.现有加速器模型在执行多神经网络交互的时候主要有以下问题。首先,无法真正实现灵活的多网络并行执行。加速的pe阵列往往采用单指令多数据(simd)的方式控制,即所有计算单元执行同样的计算并且同种数据保持一致的数据传递方向。这使得一个神经网络加速器在一个时刻只能计算一层网络。目前也有一些技术将多个网络中多个相同的算子融合或压缩成一个算子交给pe阵列计算,但这种技术并不灵活。其次,目前的加速器架构本质上还是一种中心化的计算架构。该架构包含三个中心,加速器代表的并行计算中心、cpu代表的控制中心、内存代表的存储中心。这三个中心之间的数据与控制信息交换往往成为整个系统的瓶颈,尤其是当计算环境需要在不同任务之间进行频繁切换时。


技术实现要素:

5.本公开提出了一种神经网络处理组件、方法、装置、电子设备和存储介质。
6.根据本公开的一方面,提供了一种神经网络处理组件,所述组件包括多个执行单元,所述执行单元包括:控制器、多个处理器、内存和路由器,所述内存用于存储处理任务所需的任务数据和/或所述处理器获得的所述任务的处理结果;所述控制器为所述执行单元的独立控制器,用于根据所述任务,调用所述处理器读取所述任务数据,以执行所述任务,其中,所述神经网络处理组件通过所述控制器控制多个执行单元在相同时刻执行相同或不同任务,或者控制一个执行单元在相同或不同时刻执行不同任务,所述控制器用于按照任
务队列,调用所述处理器执行所述任务队列中的任务;所述处理器用于根据所述任务数据,执行所述任务,获得所述处理结果;所述路由器用于接收所述任务数据和/或发送所述处理结果。
7.在一种可能的实现方式中,所述执行单元还包括:数据整理器,用于对所述处理器读取的所述任务数据进行整理,获得整理后的任务数据,所述整理后的任务数据符合所述处理器的处理规则;和/或对所述处理结果进行整理,获得整理后的处理结果,所述整理后的处理结果符合所述内存的存储规则。
8.根据本公开的一方面,提供了一种多神经网络处理方法,包括:确定多个神经网络任务的处理时序,并确定各所述神经网络处理组件中,用于处理所述神经网络任务的目标执行单元;根据所述处理时序,通过所述目标执行单元,对所述神经网络任务进行处理,获得执行结果。
9.在一种可能的实现方式中,根据所述处理时序,通过所述目标执行单元,对所述神经网络任务进行处理,获得执行结果,包括:根据所述处理时序确定所述神经网络任务的当前进程;根据所述神经网络任务的当前进程,确定与所述当前进程对应的第一目标执行单元;根据所述第一目标执行单元,获得与所述当前进程对应的第一执行结果;根据所述第一执行结果,获得所述执行结果。
10.在一种可能的实现方式中,根据所述处理时序,通过所述目标执行单元,对所述神经网络任务进行处理,获得执行结果,包括:根据所述处理时序确定第一神经网络任务的当前的第一进程,和第二神经网络任务当前的第二进程;根据所述第一进程,确定与所述第一进程对应的第二目标执行单元,并根据所述第二进程,确定与所述第二进程对应的第三目标执行单元;在所述第二目标执行单元和所述第三目标执行单元中,确定所述第一神经网络任务和所述第二神经网络任务的交互进程对应的第四目标执行单元,其中,当前的所述第一进程和所述第二进程为所述交互进程,所述第二目标执行单元包括所述第四目标执行单元,所述第三目标执行单元包括所述第四目标执行单元;根据所述第四目标执行单元,获得与所述交互进程对应的第二执行结果;根据所述第二执行结果,获得所述执行结果。
11.在一种可能的实现方式中,所述交互进程包括第一神经网络任务和所述第二神经网络任务之间出现数据交互时的进程。
12.在一种可能的实现方式中,所述方法还包括:关闭所述神经网络处理组件中的非目标执行单元。
13.在一种可能的实现方式中,关闭所述神经网络处理组件中的非目标执行单元,包括:根据所述神经网络任务的处理时序以及所述处理时序的各进程中的目标执行单元,关闭所述各进程中的非目标执行单元。
14.根据本公开的一方面,提供了一种多神经网络处理装置,包括:目标执行单元确定模块,用于确定多个神经网络任务的处理时序,并确定根据神经网络处理组件中,用于处理所述神经网络任务的目标执行单元;执行模块,用于根据所述处理时序,通过所述目标执行单元,对各所述神经网络任务进行处理,获得执行结果。
15.在一种可能的实现方式中,所述执行模块进一步用于:根据所述处理时序确定所述神经网络任务的当前进程;根据所述神经网络任务的当前进程,确定与所述当前进程对应的第一目标执行单元;根据所述第一目标执行单元,获得与所述当前进程对应的第一执
行结果;根据所述第一执行结果,获得所述执行结果。
16.在一种可能的实现方式中,所述执行模块进一步用于:根据所述处理时序确定第一神经网络任务的当前的第一进程,和第二神经网络任务当前的第二进程;根据所述第一进程,确定与所述第一进程对应的第二目标执行单元,并根据所述第二进程,确定与所述第二进程对应的第三目标执行单元;在所述第二目标执行单元和所述第三目标执行单元中,确定所述第一神经网络任务和所述第二神经网络任务的交互进程对应的第四目标执行单元,其中,当前的所述第一进程和所述第二进程为所述交互进程,所述第二目标执行单元包括所述第四目标执行单元,所述第三目标执行单元包括所述第四目标执行单元;根据所述第四目标执行单元,获得与所述交互进程对应的第二执行结果;根据所述第二执行结果,获得所述执行结果。
17.在一种可能的实现方式中,所述交互进程包括第一神经网络任务和所述第二神经网络任务之间出现数据交互时的进程。
18.在一种可能的实现方式中,所述装置还包括:关闭模块,用于关闭所述神经网络处理组件中的非目标执行单元。
19.在一种可能的实现方式中,所述关闭模块进一步用于:根据所述神经网络任务的处理时序以及所述处理时序的各进程中的目标执行单元,关闭所述各进程中的非目标执行单元。
20.根据本公开的一方面,提供了一种电子设备,包括上述神经网络处理组件。
21.根据本公开的实施例的神经网络处理组件,每个执行单元均具有各自的控制器和内存,能够通过内存来存储各自的任务数据,并通过各自的控制器调用自身的处理器进行运算,以提升数据调用和数据运算的灵活性。神经网络处理组件中的各执行单元分别使用各自的任务数据执行各自的运算,为多神经网络的并行处理以及神经网络之间的交互提供了硬件基础。进一步地,每个执行单元还可具有路由器,可直接与其他执行单元通信,无需传输至统一的内存,再由其他执行单元读取,以提升数据传输和运算效率。
22.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
23.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
24.图1示出根据本公开实施例的神经网络处理组件的示意图;
25.图2示出根据本公开实施例的神经网络处理方法的流程图;
26.图3示出根据本公开实施例的神经网络处理方法的示意图;
27.图4示出根据本公开实施例的神经网络处理方法的示意图;
28.图5示出根据本公开实施例的神经网络处理方法的示意图;
29.图6示出根据本公开实施例的神经网络处理方法的示意图;
30.图7示出根据本公开实施例的神经网络处理装置的框图;
31.图8示出根据本公开实施例的一种电子设备的框图。
具体实施方式
32.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
33.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
34.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
35.另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
36.在相关技术中,虽然神经网络加速器可通过至少一个pe阵列进行规整的乘加运算,但至少一个pe阵列均通过同一个控制器控制,以相同的数据传递方向读取同一内存中的数据,并进行类型和层级相同的运算,虽然在单个神经网络运算中,可实现加速的效果,但在多个神经网络并行的场景中,尤其在多个神经网络存在数据交互的场景中,该种运算方式灵活性不足。例如,神经网络a的运算需调用神经网络b的某个层级的运算结果,由于多个pe阵列由同一个控制器控制,因此,由于同一个控制器中的控制逻辑的复杂程度限制,控制器通常调用同一个pe阵列分别在不同时间执行神经网络a和神经网络b的运算,导致神经网络a和神经网络b无法更充分的同时使用pe阵列的处理资源,因而造成处理资源的浪费,再者,pe阵列在切换执行的神经网络时需要将当前神经网络的相关数据移除,并读入下一个神经网络的数据,造成了数据传输路径冗长,运算等待时间较长,影响了处理效率。综上,在多个神经网络并行运算或存在交互的场景中,相关技术中的神经网络加速器的灵活性不足。
37.图1示出根据本公开实施例的神经网络处理组件的示意图,如图1所示,所述组件包括多个执行单元,所述执行单元包括:控制器、多个处理器、内存和路由器,
38.所述内存用于存储处理任务所需的任务数据和/或所述处理器获得的所述任务的处理结果;
39.所述控制器为所述执行单元的独立控制器,用于根据所述任务,调用所述处理器读取所述任务数据以执行所述任务,其中,所述神经网络处理组件通过所述控制器控制多个执行单元在相同时刻执行相同或不同任务,或者控制一个执行单元在相同或不同时刻执行不同任务,所述控制器用于按照任务队列,调用所述处理器执行所述任务队列中的任务;
40.所述处理器用于根据所述任务数据,执行所述任务,获得所述处理结果;
41.所述路由器用于接收所述任务数据和/或发送所述处理结果。
42.根据本公开的实施例的神经网络处理组件,每个执行单元均具有各自的控制器和内存,能够通过内存来存储各自的任务数据,并通过各自的控制器调用自身的处理器进行运算,以提升数据调用和数据运算的灵活性。神经网络处理组件中的各执行单元分别使用各自的任务数据执行各自的运算,为多神经网络的并行处理以及神经网络之间的交互提供
了硬件基础。进一步地,每个执行单元还可具有路由器,可直接与其他执行单元通信,无需传输至统一的内存,再由其他执行单元读取,以提升数据传输和运算效率。
43.在一种可能的实现方式中,所述执行单元中可包括至少一个处理器,该处理器可以是simd(single instruction multiple data,单指令多数据)加速阵列,与上述pe阵列类似,执行单元中的处理器可基于单个执行命令对多个数据进行处理,例如,可进行与pe阵列相同的乘加处理,本公开对处理器可进行的处理不做限制,例如,处理器还可进行激活处理、池化处理等,本公开对处理器的类型不做限制,例如,处理器也可以是能够进行乘加处理的pe阵列。
44.在一种可能的实现方式中,执行单元中的内存可存储运算所需的数据,例如,神经网络的输入参数、权值、中间结果、执行状态数据、超参数等,本公开对内存能够存储的数据不做限制,进一步地,内存还可存储路由器接收的数据,例如,其他执行单元的处理结果,内存也可存储本执行单元针对当前任务的处理结果,并通过路由器发送至神经网络处理组件的其他执行单元,或发送至其他组件。
45.在一种可能的实现方式中,在执行过程中,控制器可调用处理器读取内存中的任务数据,并调用处理器对任务数据进行处理,例如,任务数据包括神经网络的输入参数和权值,则处理器在执行任务的过程中,可对输入参数和权值进行乘加运算,以获得该任务的处理结果,进而可将该处理结果写入内存,使得路由器能够发送该处理结果。执行单元可执行神经网络的一个或更多个层级的部分或全部运算。
46.在一种可能的实现方式中,神经网络处理组件执行一个或更多个神经网络的运算任务,例如,可调用多个执行单元来处理多个神经网络的运算任务,这些神经网络的具体运算可分别由执行单元中的控制器来调度,使得处理资源的调度更加灵活,增加了执行单元的可复用性。所述神经网络处理组件通过所述控制器控制多个执行单元在相同时刻执行相同或不同任务,或者控制一个执行单元在相同或不同时刻执行不同任务。所述神经网络处理组件可分别为每个执行单元的控制器设置任务队列,控制器可按照任务队列的顺序调用处理器执行任务。
47.在示例中,同一个执行单元可在不同时刻执行不同任务,例如,不同神经网络可在不同时刻复用同一个执行单元,提升处理效率。并且,不同执行单元在相同时刻执行相同或不同任务,例如,可由多个执行单元同时处理一个或多个神经网络的运算任务。进一步地,同一个执行单元可在相同时刻执行不同任务,例如,神经网络之间可进行交互,例如,由同一执行单元汇总两个或多个神经网络的特定层级的运算结果,并将这些运算结果进行运算,即,两个或多个神经网络在同一时刻由同一执行单元进行运算,亦为,两个或多个神经网络的运算可交互。
48.在示例中,在时刻1,可由执行单元1执行神经网络a的第一个层级的运算,在时刻2,可由执行单元2执行神经网络a的第二个层级的运算,并由执行单元1执行神经网络b的第一个层级的运算,从而增加执行单元1的可复用性。进一步地,在时刻3,可由执行单元3对神经网络a的第二个层级的运算结果和神经网络b的第一个层级的运算结果进行综合运算(例如,求和,相乘等)获得结果x,进一步地,可在时刻4由执行单元1的路由器获取结果x,并基于结果x进一步执行神经网络a的第三个层级的运算,同时由执行单元2的路由器获取结果x,并基于结果x进一步执行神经网络b的第二个层级的运算。
49.在一种可能的实现方式中,为提升数据传输和处理的兼容性,所述执行单元还包括:数据整理器,用于对所述处理器读取的所述任务数据进行整理,获得整理后的任务数据,所述整理后的任务数据符合所述处理器的处理规则;和/或对所述处理结果进行整理,获得整理后的处理结果,所述整理后的处理结果符合所述内存的存储规则。
50.在示例中,为提升数据传输效率,内存的读写可采用高带宽的数据通路,例如,可采用对齐的存储方式,以连续地址的方式进行读写,然而,以上述方式写入内存的数据通常不符合处理器的处理规则,例如,处理器在处理时,需按照计算模式读取数据,以连续地址读取内存中数据的方式不一定保证读取的符合计算模式,因此,数据整理器可将读取的内存中的数据进行整理,获取整理后的任务数据,整理后的任务数据符合处理器的处理规则,可由处理器直接处理。类似地,处理器获得的处理结果也可能不符合内存的存储规则,因而无法将处理结果直接写入内存,因此,数据整理器可将处理结果进行整理,以获得符合内存存储规则的整理后的处理结果,可直接写入内存。
51.通过这种方式,可提升数据的传输效率和兼容性。
52.图2示出根据本公开实施例的多神经网络处理方法的流程图,如图2所示,所述方法可包括:
53.步骤s11,确定多个神经网络任务的处理时序,并确定所述神经网络处理组件中,用于处理各所述神经网络任务的目标执行单元;
54.步骤s12,根据所述处理时序,通过所述目标执行单元,对所述神经网络任务进行处理,获得执行结果。
55.在一种可能的实现方式中,如上所述,所述神经网络处理组件可用于对多个神经网络的运算任务进行处理,可为神经网络任务分配执行单元,以执行神经网络任务,还可为各执行单元中的控制器设置任务队列,使得各执行单元根据任务队列执行任务,且能够进行复用及交互。如上例,同一执行单元可在不同的时刻执行不同神经网络任务,不同神经网络任务可在同一时刻由不同执行单元执行,和/或,同一时刻由同一执行单元执行不同神经网络任务的交互步骤。因此,可首先确定各神经网络任务的时序,并基于时序来确定执行神经网络任务的目标执行单元。所述目标执行单元可以是一个执行单元,也可以是多个执行单元组成的集合,本公开对此不做限制。
56.在示例中,神经网络任务的处理时序可包括同一神经网络任务中不同层级之间的处理时序,或不同神经网络任务之间的处理时序,或不同神经网络任务的不同层级之间的处理时序等等,时序可以指各个进程的执行顺序。其中,进程可表示一段程序的执行过程,可以是系统进行资源分配和调度的基本单位。一个进程可以完成一个或多个层级的处理,或者,一个层级的处理可通过多个进程完成。根据处理时序,可以按照使得各执行单元的总体空闲时间最短、利用率最高、尽可能利用执行单元内存中的数据,减少数据交互等原则,确定每一进程对应的目标执行单元。
57.其中,步骤s11可通过神经网络处理组件执行,也可通过控制神经网络处理组件工作的上位机执行。
58.在示例中,可根据神经网络的层级来确定神经网络的时序,例如,在执行单个神经网络的任务时,神经网络的第一个层级的运算任务需要首先执行,其次执行第二个层级的运算任务

或者,在执行多个神经网络的任务时,首先执行某个神经网络的第一个层级的
运算任务,其次执行该神经网络的第二个层级的运算任务和另一神经网络的第一个层级的运算任务

本公开对确定时序的方式不做限制,还可根据其他逻辑顺序确定时序,例如,可根据神经网络训练任务中的训练轮次确定时序。
59.在示例中,在为不同神经网络任务确定目标执行单元时,可在不同时刻为不同的神经网络任务确定相同的目标执行单元,例如,如上例,在时刻1,可由执行单元1执行神经网络a的第一个层级的运算,在时刻2,可由执行单元2执行神经网络a的第二个层级的运算,并由执行单元1执行神经网络b的第一个层级的运算,即,执行单元1可在不同时刻作为不同神经网络的目标执行单元。
60.在示例中,不同神经网络任务也可同时开始,例如,神经网络c和神经网络d可同时开始执行,可将执行单元3作为执行神经网络c的第一个层级的运算任务的目标执行单元,可将执行单元4作为执行神经网络d的第一个层级的运算任务的目标执行单元。
61.在示例中,不同的神经网络任务可产生交互,在执行交互步骤时,可使用同一个目标执行单元在同一时刻执行两个或多个神经网络任务(即,将交互步骤分别作为各神经网络任务中的一个步骤,则执行该步骤的目标执行单元在同一时刻执行了两个或多个神经网络任务的一个步骤)。
62.图3示出根据本公开实施例的神经网络处理方法的示意图,可通过时间和空间的示意图来展示所述神经网络处理组件执行一个或更多个神经网络任务的执行方法。
63.在一种可能的实现方式中,空间上由多个空间单元构成,每个空间单元可由上述执行单元表示,例如,空间单元可包括一个执行单元,用于在某个时间段内执行某个任务,或者,空间单元可包括在该时间段内同时执行同一任务的多个执行单元。空间单元之间通过执行单元的路由器传输数据,空间单元之间传递的数据为动态数据,例如,激活值等,本公开对动态数据包括的数据类别不做限制。
64.在一种可能的实现方式中,在时间上由多个时间单元组成,如图3中时间轴上的每个时间段。时间单元可表示执行神经网络的各步骤所需的时间,每个时间单元的长度可以不一致。如果数据在不同的时间单元中(即,在执行不同步骤时)保持在一个空间单元上(即,未传输给其他空间单元),则意味着数据在此空间单元中的内存中静态存储(例如,存储在某个执行单元的内存中,并未发送至其他空间单元的执行单元),则可将这种静态存储的数据作为静态数据,例如,神经网络的各层级的网络参数(即,加权求和运算中的权值),可在神经网络任务开始时获取并储存至内存中,在后续运算中不再互相传输。每个空间单元可以在同一时刻(即,统一时间单元中)独立的执行不同的操作,即,空间单元之间采用多指令多数据(mimd,multiplone instructistream multiple datastream)的并行执行方式。并且,不同的时间单元可以进行不同任务的切换,通过执行单元中的控制器实现执行状态控制与状态切换,例如,如上例,执行单元1在时刻1可执行神经网络a的第一个层级的运算,在时刻2可执行神经网络b的第一个层级的运算。
65.在一种可能的实现方式中,所述神经网络处理组件可用于一个或更多个神经网络任务的执行,以神经网络处理组件执行一个神经网络任务为例,步骤s12可包括:根据所述处理时序确定所述神经网络任务的当前进程;根据所述神经网络任务的当前进程,确定与所述当前进程对应的第一目标执行单元;根据所述第一目标执行单元,获得与所述当前进程对应的第一执行结果;根据所述第一执行结果,获得所述执行结果。
66.图4示出根据本公开实施例的神经网络处理方法的示意图,神经网络任务的运算可表示为多个神经网络算子,例如,神经网络的每个层级可对应于一个算子,每个神经网络算子由一个或多个空间单元执行(即,由空间单元包括的执行单元执行),同一时间单元的多个空间单元同时并行执行,例如,神经网络的一个层级需由两个或多个空间单元来执行,或者,一个层级包括了多个算子,每个算子由一个空间单元执行。如果一个神经网络算子的输出是另一个神经网络算子的输入,则该神经网络算子的时间单元在所述另一个神经网络算子的时间单元之前。
67.在一种可能的实现方式中,在神经网络任务中确定的所有空间单元共同完成执行过程。在该过程中,静态数据(如神经网络的权重)存储在空间单元(例如,执行单元)的内存中,动态数据(如神经网络的激活值)在空间单元之间传输。
68.例如,在第一个时间单元中,执行神经网络的第一个算子,其进程为进程1,可由神经网络处理组件空间单元(1,1)和(2,1)来执行进程1的运算任务,获得进程1的第一执行结果。在第二个时间单元中,执行神经网络的第二个算子,其进程为进程2,可由神经网络处理组件空间单元(2,2)来执行进程2的运算任务,获得进程2的第一执行结果。在第三个时间单元中,执行神经网络的第三个算子,其进程为进程3,可由神经网络处理组件空间单元(2,2)和(3,2)来执行进程3的运算任务,获得进程3的第一执行结果。在第四个时间单元中,执行神经网络的第四个算子,其进程为进程4,可由神经网络处理组件空间单元(3,2)和(3,3)来执行进程4的运算任务,获得进程4的第一执行结果
……
在所有进程执行完毕时,获得神经网络任务的执行结果。
69.其中,可选择空闲的执行单元作为上述第一目标执行单元,或选择空闲、且其内存中存储的数据可用于当前进程的执行单元作为第一目标执行单元,本技术不限制确定第一目标执行单元的具体方式。
70.在一种可能的实现方式中,以神经网络处理组件执行两个或多个神经网络任务为例,步骤s12可包括:根据所述处理时序确定第一神经网络任务的当前的第一进程,和第二神经网络任务当前的第二进程;根据诉所述第一进程,确定与所述第一进程对应的第二目标执行单元,并根据所述第二进程,确定与所述第二进程对应的第三目标执行单元;在所述第二目标执行单元和所述第三目标执行单元中,确定所述第一神经网络任务和所述第二神经网络任务的交互进程对应的第四目标执行单元,其中,当前的所述第一进程和所述第二进程为所述交互进程,所述第二目标执行单元包括所述第四目标执行单元,所述第三目标执行单元包括所述第四目标执行单元;根据所述第四目标执行单元,获得与所述交互进程对应的第二执行结果;根据所述第二执行结果,获得所述执行结果。
71.其中,交互进程可以指第一神经网络任务和所述第二神经网络任务之间出现数据交互时的进程,例如,第一神经网络产生的中间结果或最终结果,提供给第二神经网络时,第二神经网络基于该中间结果或最终结果进行运算对应的进程为交互进程。
72.在一种可能的实现方式中,可将上述进程作为基本的调度与执行单位,则多神经网络任务执行的过程就是多进程执行的过程,如图5所示。独立可配置(即,分别包括各自的控制器和内存)的执行单元使得多个进程之间可以灵活地利用硬件资源,实现处理资源共享和复用。例如,可分别确定两个或多个神经网络任务在各时间空间(例如,各进程)中的空间单元(例如,执行单元),其中,在相同的时间单元中,不同的空间单元可同时执行,例如,
可同时开始两个或多个神经网络任务某个层级的运算;在相同的空间单元中,可在不同时间单元中执行不同神经网络任务,即,可通过控制器调用内存中的不同任务数据,以执行不同神经网络任务,亦为,可切换进程;进一步地,还可在存在神经网络交互的场景中,通过同一空间单元在同一时间单元中执行该交互步骤,即,同时利用统一空间单元执行两个或多个神经网络任务(进程)的交互步骤。
73.在一种可能的实现方式中,可分别确定每个进程中各神经网络任务的目标执行单元,例如,当前时间单元中,执行神经网络a的进程1,执行神经网络b的进程2,可分别确定在各自进程中的执行单元,例如,第二目标执行单元和第三目标执行单元。如果存在神经网络之间交互的场景,则可在第二目标执行单元和第三目标执行单元的交集中,选择用于执行交互步骤的第四目标执行单元,即,第四目标执行单元为同时用于执行两个或多个神经网络的交互步骤的执行单元。
74.图5示出根据本公开实施例的神经网络处理方法的示意图,在第一个时间单元中,执行神经网络1的进程1以及神经网络2的进程1,可由神经网络处理组件空间单元(1,1)和(2,1)来执行神经网络1的进程1的运算任务,并由空间单元(1,3)和(2,3)来执行神经网络2的进程1的运算任务。在第二个时间单元中,执行神经网络1的进程2以及神经网络2的进程2,可由神经网络处理组件空间单元(2,2)来执行神经网络1的进程3的运算任务,并由空间单元(3,2)和(3,3)来执行神经网络2的进程2的运算任务。在第三个时间单元中,执行神经网络1的进程3以及神经网络2的进程3,可由神经网络处理组件空间单元(2,2)和(3,2)来执行神经网络1的进程3的运算任务,并由空间单元(3,3)来执行神经网络2的进程3的运算任务。在第四个时间单元中,执行神经网络1的进程4以及神经网络2的进程4,可由神经网络处理组件空间单元(3,2)和(3,3)来执行神经网络1的进程4的运算任务,并由空间单元(3,3)来执行神经网络2的进程4的运算任务。
75.在示例中,在第四个时间单元中,两个神经网络任务产生交互,可在各自的空间单元的交集中选择用于执行交互步骤的第四目标执行单元,例如,将空间单元(3,3)作为用于执行该交互步骤的第四目标执行单元,并获得第二执行结果。通过第二执行结果,可进行后续运算,在所有进程结束时,可获得各自的执行结果。
76.在示例中,不同空间单元还可进行空间共享,以进一步提升读写效率,例如,同一步骤由多个空间单元共同执行,则可进行空间共享,共享的空间单元中的控制器可调用共享的任意空间单元的内存中的数据,以减少数据传输的资源消耗和时间消耗。未进行空间共享的空间单元则可利用路由器进行数据通信。
77.在一种可能的实现方式中,为了进一步节约资源和能耗,还可关闭部分或全部未执行任务的执行单元。所述方法还包括:关闭所述神经网络处理组件中的非目标执行单元。所述非目标执行单元可包括在所有进程中均未执行任务的执行单元,也可包括在其他进程中作为目标执行单元,但在当前进程中未执行任务的执行单元,即,可在各执行单元的非活跃时间关闭执行单元。
78.在示例中,可基于神经网络任务的所有进程,来关闭在所有进程中均未使用的执行单元,例如,神经网络任务1包括多个进程,在所有进程中均未使用执行单元x,则可将执行单元x关闭,以节约能耗。在另一示例中,可基于各进程中所需使用的目标执行单元,来关闭在各进程中未使用的执行单元中的部分或全部,该步骤可包括:根据所述神经网络任务
的处理时序以及所述处理时序的各进程中的目标执行单元,关闭所述各进程中的非目标执行单元。例如,神经网络任务1包括2个进程,在进程1中,未使用执行单元x、执行单元y、执行单元z,则可将这三个执行单元关闭,在进程2中,未使用执行单元m和执行单元n,则可关闭这两个执行单元,而需要使用执行单元x、执行单元y、执行单元z,则可将这三个执行单元开启。
79.图6示出根据本公开实施例的神经网络处理方法的示意图,如图6所示,接上例,在第一个时间单元中,执行神经网络1的进程1以及神经网络2的进程1,二者均为使用的空间单元为(3,1),(1,2),(2,2),(3,3),可将这些空间单元全部关闭,或者,可选择其中部分空间单元来关闭,例如,空间单元(1,2),(2,2),(3,3)在下一个时间单元中需要使用,考虑到执行单元的启动时间,为了能在下一个时间单元中能够使用上述空间单元,则可在第一个时间单元中仅关闭空间单元(3,1),例如,图6中第一个时间单元中标注为x的时间单元。类似地,第二个时间单元中可关闭空间单元(3,1),(1,2),第三个时间单元中可关闭空间单元(3,1),(1,2),(1,3),第四个时间单元中可关闭空间单元(3,1),(1,2),(1,3)。
80.根据本公开的实施例的神经网络处理组件和方法,组件中的每个执行单元均具有各自的控制器和内存,能够通过内存来存储各自的任务数据,并通过各自的控制器调用自身的处理器进行运算,以提升数据调用和数据运算的灵活性。神经网络处理组件中的各执行单元分别使用各自的任务数据执行各自的运算,为多神经网络的并行处理以及神经网络之间的交互提供了硬件基础。进一步地,每个执行单元还可具有路由器,可直接与其他执行单元通信,无需传输至统一的内存,再由其他执行单元读取,以提升数据传输和运算效率。通过神经网络处理方法可灵活调用各执行单元,以实现同一执行单元可在不同的时刻执行不同神经网络任务,不同神经网络任务可在同一时刻由不同执行单元执行,和/或,同一时刻由同一执行单元执行不同神经网络任务的交互步骤的目的,并且,还可关闭各任务进程中的非目标执行单元,以降低功耗。
81.在一种可能的实现方式中,所述神经网络处理组件及多神经网络处理方法可用于图像渲染、高性能计算与科学仿真处理任务等处理需求较高的任务中,本公开对所述神经网络处理组件及多神经网络处理方法的应用领域不做限制。
82.可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
83.此外,本公开还提供了神经网络处理装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种神经网络处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
84.图7示出根据本公开实施例的多神经网络处理装置的框图,如图7所示,所述装置包括:目标执行单元确定模块21,用于确定多个神经网络任务的处理时序,并确定根据神经网络处理组件中,用于处理各所述神经网络任务的目标执行单元;执行模块22,用于根据所述处理时序,通过所述目标执行单元,对所述神经网络任务进行处理,获得执行结果。
85.在一种可能的实现方式中,所述执行模块进一步用于:根据所述处理时序确定所述神经网络任务的当前进程;根据所述神经网络任务的当前进程,确定与所述当前进程对
应的第一目标执行单元;根据所述第一目标执行单元,获得与所述当前进程对应的第一执行结果;根据所述第一执行结果,获得所述执行结果。
86.在一种可能的实现方式中,所述执行模块进一步用于:根据所述处理时序确定第一神经网络任务的当前的第一进程,和第二神经网络任务当前的第二进程;根据所述第一进程,确定与所述第一进程对应的第二目标执行单元,并根据所述第二进程,确定与所述第二进程对应的第三目标执行单元;在所述第二目标执行单元和所述第三目标执行单元中,确定所述第一神经网络任务和所述第二神经网络任务的交互进程对应的第四目标执行单元,其中,当前的所述第一进程和所述第二进程为所述交互进程,所述第二目标执行单元包括所述第四目标执行单元,所述第三目标执行单元包括所述第四目标执行单元;根据所述第四目标执行单元,获得与所述交互进程对应的第二执行结果;根据所述第二执行结果,获得所述执行结果。
87.在一种可能的实现方式中,所述交互进程包括第一神经网络任务和所述第二神经网络任务之间出现数据交互时的进程。
88.在一种可能的实现方式中,所述装置还包括:关闭模块,用于关闭所述神经网络处理组件中的非目标执行单元。
89.在一种可能的实现方式中,所述关闭模块进一步用于:根据所述神经网络任务的处理时序以及所述处理时序的各进程中的目标执行单元,关闭所述各进程中的非目标执行单元。
90.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
91.本公开实施例还提出一种电子设备,包括上述神经网络处理组件。
92.电子设备可以被提供为终端、服务器或其它形态的设备。
93.图8示出根据本公开实施例的一种电子设备1900的框图。参照图8,电子设备1900包括处理组件1922,例如,至少一个根据本技术实施例的神经网络处理组件,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
94.电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
或类似。
95.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献