【技术实现步骤摘要】
通过多个加速器对神经网络特征图进行处理的方法和装置
[0001]本公开涉及人工智能技术,尤其是一种通过多个加速器对神经网络特征图进行处理的方法和装置。
技术介绍
[0002]随着卷积神经网络中特征图尺寸和算力需求的增大,往往需要多个加速器协同处理同一张特征图,相关技术中,通常是将特征图在宽度和高度中的至少一个方向上进行拆分,将拆分后的子特征图通过多个加速器协同处理,比如卷积运算,综合多个卷积运算加速器的运算结果获得特征图对应的卷积运算结果。但是,在卷积运算过程中,拆分的子特征图在边界处通常存在需要在多个加速器重复使用的重叠(overlap)区域,针对重叠区域部分的特征数据,相关技术中通常采用两种方式,一种是每个加速器内的存储器额外存储重叠区域的特征数据,使得各加速器可以单独完成自己的运算任务,另一种是每个加速器核内的存储器只存储不重叠的特征数据,重叠区域的特征数据通过加速器之间的NOC(Network on Chip,片上网络)通信实现在各加速器的存储器之间进行传输,第一种方式导致加速器内的存储器存储空间需求较大,第二种方式加速器间的数据传输导致NOC带宽浪费。
技术实现思路
[0003]为了解决上述加速器内存储空间需求较大及加速器间数据传输浪费NOC带宽等技术问题,提出了本公开。本公开的实施例提供了一种通过多个加速器对神经网络特征图进行处理的方法和装置。
[0004]根据本公开实施例的一个方面,提供了一种通过多个加速器对神经网络特征图进行处理的方法,包括:从多个神经网络加速器中的第一加速器中 ...
【技术保护点】
【技术特征摘要】
1.一种通过多个加速器对神经网络特征图进行处理的方法,包括:从多个神经网络加速器中的第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据;基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果;基于预设移位规则将所述第一特征数据中被多个神经网络加速器中的第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列;从所述第二加速器中的所述第二移位寄存器阵列中读取包括所述第一重叠特征数据的第二特征数据以及从所述第二加速器中的第二缓存器中读取与所述第二特征数据相对应的第二权重数据;基于所述第二加速器对所述第二特征数据和所述第二权重数据进行预设运算,得到第二运算结果。2.根据权利要求1所述的方法,其中,各所述神经网络加速器中的移位寄存器阵列与多个神经网络加速器之外的目标移位寄存器阵列之间按照预设排布规则连接;在从所述第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据之前,还包括:对于多个神经网络加速器中的每个加速器,基于该加速器中的移位寄存器阵列的大小,从该加速器中的存储器中读取该加速器的当前运算周期需要的特征数据写入该加速器中的移位寄存器阵列,所述当前运算周期包括移位前的运算和预设次数的移位后的运算的周期,当前运算周期需要的特征数据包括当前待处理的所述第一特征数据及移位后需要处理的特征数据;从多个神经网络加速器中的第一预设加速器的存储器中读取所述第一预设加速器的下一运算周期的第三特征数据,将所述第三特征数据写入所述目标移位寄存器阵列,所述第三特征数据包括多个神经网络加速器中的第二预设加速器需要的重叠特征数据。3.根据权利要求2所述的方法,其中,在所述基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果之后,还包括:基于所述预设移位规则将所述目标移位寄存器阵列中的第三特征数据中被所述第二预设加速器需要的第二重叠特征数据移位至所述第二预设加速器中的移位寄存器阵列。4.根据权利要求1所述的方法,其中,在从所述第一加速器中的第一移位寄存器阵列中读取与所述神经网络特征图相关的第一特征数据以及从所述第一加速器中的第一缓存器中读取与所述第一特征数据相对应的第一权重数据之前,还包括:基于预设切分规则,将所述神经网络特征图切分为各所述神经网络加速器分别对应的不重叠的特征数据;将各所述神经网络加速器分别对应的不重叠的特征数据分别写入各所述神经网络加速器中的存储器中。5.根据权利要求1所述的方法,其中,所述预设运算为乘累加运算;
所述基于所述第一加速器对所述第一特征数据和所述第一权重数据进行预设运算,得到第一运算结果,包括:对于所述第一加速器中的任一乘累加运算单元,确定所述第一特征数据中该乘累加运算单元对应的第一特征值,及所述第一权重数据中该乘累加运算单元对应的第一权重值;基于该乘累加运算单元将所述第一特征值和所述第一权重值进行乘积运算,获得第一乘积结果;将所述第一乘积结果与该乘累加运算单元对应的在前累加结果相加,获得该乘累加运算单元对应的当前累加结果,所述在前累加结果是该乘累加运算单元在前一次运算获得的乘累加结果;将所述第一加速器中的各所述乘累加运算单元分别对应的当前累加结果作为所述第一运算结果。6.根据权利要求1所述的方法,其中,所述预设移位规则包括预设次数的移位及各次移位分别对应的移位方式;所述基于预设移位规则将所述第一特征数据中被多个神经网络加速器中的第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列,包括:确定当前移位次数;响应于所述当前移位次数对应的移位方式为第一移位方式,基于所述第一移位方式,将所述第一特征数据中被所述第二加速器需要的第一重叠特征数据从所述第一移位寄存器阵列移位至所述第二加速器的第二移位寄存器阵列;移位后的所述第一移位寄存器阵列中包括来自多个神经网络加速器中的第三加速器的第三移位寄存器阵列的第三重叠特征数据;响应于所述当前移位次数对应的移位方式为第二移位方式,将所述第一移位寄存器阵列中的特征数据按所述第二移位方式进行移位;所述方法还包括:从移位后的所述第一移位寄存器阵列中读取移位后的第四特征数据,以及从所述第一缓存器中读取与所述第四特征数据相对应的第四权重数据;基于所述第一加速器对所述第四特征数据、所述第四权重数据和所述第一运算结果进行预设运算,得到第四运算结果;将所述第四特征数据作为所述第一特征数据,将所述第四运算结果作为所述第一运算结果,重复执行确定当前移位次数的步骤;响应于所述当前移位次数达到所述预设次数,将所述第四运算结果作为所述第一加速器对应的当前运算周期的目标运算结果,所述当前运算周期包括移位前的运算和所述预设次数的移位后的运算的周期。7.根据权利要求6所述的方法,其中,在所述响应于所述当前移位次数达到所述预设次数,将所述第四运算结果作为所述第一加速器对应的当前运算周期的目标运算结果之后,还包括:从所述第一加速器中的存储器中读取所述第一加速器的...
【专利技术属性】
技术研发人员:何一波,肖磊,谭洪贺,
申请(专利权)人:北京地平线信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。