通过多个加速器对神经网络特征图进行处理的方法和装置制造方法及图纸

技术编号:37872204 阅读:12 留言:0更新日期:2023-06-15 21:01
本公开实施例公开了一种通过多个加速器对神经网络特征图进行处理的方法和装置,其中,方法包括:从多个神经网络加速器中的第一加速器中的第一移位寄存器阵列中读取与神经网络特征图相关的第一特征数据以及从第一缓存器中读取第一权重数据;基于第一加速器对第一特征数据和第一权重数据进行预设运算,得到第一运算结果;基于预设移位规则将第一特征数据中被第二加速器需要的第一重叠特征数据移位至第二加速器的第二移位寄存器阵列;基于第二加速器对从第二移位寄存器阵列读取的包括第一重叠特征数据的第二特征数据以及读取的第二权重数据进行预设运算,得到第二运算结果。本公开实施例可以在降低加速器内存储空间需求下实现重叠区域的数据的复用。需求下实现重叠区域的数据的复用。需求下实现重叠区域的数据的复用。

【技术实现步骤摘要】
通过多个加速器对神经网络特征图进行处理的方法和装置


[0001]本公开涉及人工智能技术,尤其是一种通过多个加速器对神经网络特征图进行处理的方法和装置。

技术介绍

[0002]随着卷积神经网络中特征图尺寸和算力需求的增大,往往需要多个加速器协同处理同一张特征图,相关技术中,通常是将特征图在宽度和高度中的至少一个方向上进行拆分,将拆分后的子特征图通过多个加速器协同处理,比如卷积运算,综合多个卷积运算加速器的运算结果获得特征图对应的卷积运算结果。但是,在卷积运算过程中,拆分的子特征图在边界处通常存在需要在多个加速器重复使用的重叠(overlap)区域,针对重叠区域部分的特征数据,相关技术中通常采用两种方式,一种是每个加速器内的存储器额外存储重叠区域的特征数据,使得各加速器可以单独完成自己的运算任务,另一种是每个加速器核内的存储器只存储不重叠的特征数据,重叠区域的特征数据通过加速器之间的NOC(Network on Chip,片上网络)通信实现在各加速器的存储器之间进行传输,第一种方式导致加速器内的存储器存储空间需求较大,第二种方式加速器间的数据传输导致NOC带宽浪费。

技术实现思路

[0003]为了解决上述加速器内存储空间需求较大及加速器间数据传输浪费NOC带宽等技术问题,提出了本公开。本公开的实施例提供了一种通过多个加速器对神经网络特征图进行处理的方法和装置。
[0004]根据本公开实施例的一个方面,提供了一种通过多个加速器对神经网络特征图进行处理的方法,包括:从多个神经网络加速器中的第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据;基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果;基于预设移位规则将所述第一特征数据中被多个神经网络加速器中的第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列;从所述第二加速器中的所述第二移位寄存器阵列中读取包括所述第一重叠特征数据的第二特征数据以及从所述第二加速器中的第二缓存器中读取与所述第二特征数据相对应的第二权重数据;基于所述第二加速器对所述第二特征数据和所述第二权重数据进行预设运算,得到第二运算结果。
[0005]根据本公开实施例的另一个方面,提供了一种通过多个加速器对神经网络特征图进行处理的装置,包括:多个神经网络加速器;每个神经网络加速器包括控制器、移位寄存器阵列、缓存器和用于预设运算的运算阵列;对于多个神经网络加速器中的第一加速器,所述第一加速器中的第一控制器从所述第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据;所述第一控制器控制所述第一加速器中的第一运
算阵列对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果;所述第一控制器基于预设移位规则控制所述第一移位寄存器阵列将所述第一特征数据中被多个神经网络加速器中的第二加速器需要的第一重叠特征数据移位至所述第二加速器的第二移位寄存器阵列;所述第二加速器中的第二控制器从所述第二移位寄存器阵列中读取包括所述第一重叠特征数据的第二特征数据以及从所述第二加速器中的第二缓存器中读取与所述第二特征数据相对应的第二权重数据;所述第二控制器控制所述第二加速器中的第二运算阵列对所述第二特征数据和所述第二权重数据进行预设运算,得到第二运算结果。
[0006]基于本公开上述实施例提供的通过多个加速器对神经网络特征图进行处理的方法和装置,通过多个加速器内的移位寄存器阵列实现重叠区域的数据的移位,从而可以将一个加速器内的重叠区域的数据移位到相邻加速器,使得各加速器可以分别存储相互不重叠的数据,在降低加速器内存储空间需求的基础上实现数据的复用,大大减少NOC的带宽浪费,降低功耗,提升加速器性能。
[0007]下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
[0008]通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0009]图1是本公开提供的通过多个加速器对神经网络特征图进行处理的方法的一个示例性的应用场景;
[0010]图2是本公开一示例性实施例提供的通过多个加速器对神经网络特征图进行处理的方法的流程示意图:
[0011]图3是本公开另一示例性实施例提供的通过多个加速器对神经网络特征图进行处理的方法的流程示意图;
[0012]图4是本公开一示例性实施例提供的各移位寄存器阵列的连接示意图;
[0013]图5是本公开再一示例性实施例提供的通过多个加速器对神经网络特征图进行处理的方法的流程示意图;
[0014]图6是本公开一示例性实施例提供的移位寄存器阵列的一个运算周期的数据移位过程示意图;
[0015]图7是本公开另一示例性实施例提供的移位寄存器阵列的连接示意图;
[0016]图8是本公开一示例性实施例提供的通过多个加速器对神经网络特征图进行处理的装置的结构示意图;
[0017]图9是本公开另一示例性实施例提供的通过多个加速器对神经网络特征图进行处理的装置的结构示意图;
[0018]图10是本公开一示例性实施例提供的4个加速器及目标移位寄存器阵列的连接示意图;
[0019]图11是本公开一示例性实施例提供的加速器的具体结构示意图;
[0020]图12是本公开电子设备一个应用实施例的结构示意图。
具体实施方式
[0021]下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
[0022]应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0023]本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0024]还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
[0025]还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
[0026]另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过多个加速器对神经网络特征图进行处理的方法,包括:从多个神经网络加速器中的第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据;基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果;基于预设移位规则将所述第一特征数据中被多个神经网络加速器中的第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列;从所述第二加速器中的所述第二移位寄存器阵列中读取包括所述第一重叠特征数据的第二特征数据以及从所述第二加速器中的第二缓存器中读取与所述第二特征数据相对应的第二权重数据;基于所述第二加速器对所述第二特征数据和所述第二权重数据进行预设运算,得到第二运算结果。2.根据权利要求1所述的方法,其中,各所述神经网络加速器中的移位寄存器阵列与多个神经网络加速器之外的目标移位寄存器阵列之间按照预设排布规则连接;在从所述第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据之前,还包括:对于多个神经网络加速器中的每个加速器,基于该加速器中的移位寄存器阵列的大小,从该加速器中的存储器中读取该加速器的当前运算周期需要的特征数据写入该加速器中的移位寄存器阵列,所述当前运算周期包括移位前的运算和预设次数的移位后的运算的周期,当前运算周期需要的特征数据包括当前待处理的所述第一特征数据及移位后需要处理的特征数据;从多个神经网络加速器中的第一预设加速器的存储器中读取所述第一预设加速器的下一运算周期的第三特征数据,将所述第三特征数据写入所述目标移位寄存器阵列,所述第三特征数据包括多个神经网络加速器中的第二预设加速器需要的重叠特征数据。3.根据权利要求2所述的方法,其中,在所述基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果之后,还包括:基于所述预设移位规则将所述目标移位寄存器阵列中的第三特征数据中被所述第二预设加速器需要的第二重叠特征数据移位至所述第二预设加速器中的移位寄存器阵列。4.根据权利要求1所述的方法,其中,在从所述第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据之前,还包括:基于预设切分规则,将所述神经网络特征图切分为各所述神经网络加速器分别对应的不重叠的特征数据;将各所述神经网络加速器分别对应的不重叠的特征数据分别写入各所述神经网络加速器中的存储器中。5.根据权利要求1所述的方法,其中,所述预设运算为乘累加运算;
所述基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果,包括:对于所述第一加速器中的任一乘累加运算单元,确定所述第一特征数据中该乘累加运算单元对应的第一特征值,及所述第一权重数据中该乘累加运算单元对应的第一权重值;基于该乘累加运算单元将所述第一特征值和所述第一权重值进行乘积运算,获得第一乘积结果;将所述第一乘积结果与该乘累加运算单元对应的在前累加结果相加,获得该乘累加运算单元对应的当前累加结果,所述在前累加结果是该乘累加运算单元在前一次运算获得的乘累加结果;将所述第一加速器中的各所述乘累加运算单元分别对应的当前累加结果作为所述第一运算结果。6.根据权利要求1所述的方法,其中,所述预设移位规则包括预设次数的移位及各次移位分别对应的移位方式;所述基于预设移位规则将所述第一特征数据中被多个神经网络加速器中的第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列,包括:确定当前移位次数;响应于所述当前移位次数对应的移位方式为第一移位方式,基于所述第一移位方式,将所述第一特征数据中被所述第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列;移位后的所述第一移位寄存器阵列中包括来自多个神经网络加速器中的第三加速器的第三移位寄存器阵列的第三重叠特征数据;响应于所述当前移位次数对应的移位方式为第二移位方式,将所述第一移位寄存器阵列中的特征数据按所述第二移位方式进行移位;所述方法还包括:从移位后的所述第一移位寄存器阵列中读取移位后的第四特征数据,以及从所述第一缓存器中读取与所述第四特征数据相对应的第四权重数据;基于所述第一加速器对所述第四特征数据、所述第四权重数据和所述第一运算结果进行预设运算,得到第四运算结果;将所述第四特征数据作为所述第一特征数据,将所述第四运算结果作为所述第一运算结果,重复执行确定当前移位次数的步骤;响应于所述当前移位次数达到所述预设次数,将所述第四运算结果作为所述第一加速器对应的当前运算周期的目标运算结果,所述当前运算周期包括移位前的运算和所述预设次数的移位后的运算的周期。7.根据权利要求6所述的方法,其中,在所述响应于所述当前移位次数达到所述预设次数,将所述第四运算结果作为所述第一加速器对应的当前运算周期的目标运算结果之后,还包括:从所述第一加速器中的存储器中读取所述第一加速器的...

【专利技术属性】
技术研发人员:何一波肖磊谭洪贺
申请(专利权)人:北京地平线信息技术有限公司
类型:发明
国别省市:

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

1