神经网络处理器、批量标准化处理方法及存储介质技术

技术编号:34904177 阅读:20 留言:0更新日期:2022-09-10 14:16
本发明专利技术公开了一种神经网络处理器、批量标准化处理方法及存储介质,该方法包括:获取三级缓存中输入数据的数据量;获取输入数据的数据量匹配的阈值条件;根据阈值条件匹配的切割方式对输入数据进行切割,得到目标数据;根据阈值条件匹配的硬件同步方式将目标数据搬移至一级缓存进行缩减计算得到缩减数据,根据切割方式判断是否需要根据硬件同步方式将输入数据再次搬移至一级缓存,根据缩减数据和输入数据进行计算,得到输出数据。通过对输入数据的分割以及选择三级缓存间不同的硬件同步机制,保证在不同输入数据形状以及不同数据量的情况下,三级缓存数据访问的带宽始终是最高的,以匹配多群组内各个单核并行数据处理的速度,提高批量标准化性能。提高批量标准化性能。提高批量标准化性能。

【技术实现步骤摘要】
神经网络处理器、批量标准化处理方法及存储介质


[0001]本专利技术实施例涉及芯片技术,尤其涉及用于神经网络的批量标准化的芯片管理技术,涉及一种神经网络的网络处理器、批量标准化处理方法及存储介质。

技术介绍

[0002]在卷积神经网络(Convolution Neural Network, CNN) 的训练过程中,存在上层网络的输出与下层网络的输入不匹配的问题。为了解决该问题,目前提出了批量标准化(Batch Normalization,BN)技术进行数据标准化的处理,以便使下层网络的输入为进行批量标准化处理后的数值,实现各层输入的统一。上层网络输出数据作为批量标准化的输入数据,批量标准化的输出数据为归一化数据,该归一化数据作为下层网络的输入数据。
[0003]目前批量标准化包括缩减运算(缩减)和元素相乘(element

wise)计算。上述计算均需要将输入数据全部读入处理器中,在处理器中进行运算,涉及大量的内存读写操作,特别是当缩减维度的值比较大时,对输入输出(IO)带宽以及硬件内存访问的需求非常大。如何提高批量标准化的处理速度成为亟待解决的问题。

技术实现思路

[0004]本专利技术提供一种神经网络处理器、批量标准化处理方法及存储介质,以实现提高批量标准化的处理速度。
[0005]第一方面,本专利技术实施例提供了一种神经网络处理器(Neural

network Processing Unit,NPU),包括:三级缓存和多个群组,三级缓存用于存储外设传输的输入数据以及批量标准化处理后的输出数据;群组包括一个二级缓存和多个单核;每个单核包含一个一级缓存,多个单核包含的一级缓存共享二级缓存,一级缓存与二级缓存通过内部直接存储器访问进行相互独立的数据传输;一级缓存用于存储单核处理的数据;三级缓存通过外部直接存储器访问与二级缓存进行数据传输。
[0006]第二方面,本专利技术实施例还提供了一种基于第一方面所示的神经网络处理器的批量标准化处理方法,包括:获取三级缓存中输入数据的数据量;获取输入数据的数据量匹配的阈值条件;根据阈值条件匹配的切割方式对输入数据进行切割,得到目标数据;根据阈值条件匹配的硬件同步方式将目标数据搬移至一级缓存进行缩减计算,得到缩减数据,硬件同步方式包括外部直接存储器与内部直接存储器之间的一对一同步方式或一对多同步方式;根据切割方式判断是否需要根据硬件同步方式将输入数据再次搬移至一级缓存,
根据缩减数据和输入数据进行元素相乘计算,得到输出数据。
[0007]第三方面,本专利技术实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,还包括神经网络处理器、外部直接存储器访问和内部直接存储器访问,处理器执行程序时实现如专利技术实施例所示的批量标准化处理方法。
[0008]第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本专利技术实施例所示的批量标准化处理方法。
[0009]本专利技术实施例提供的神经网络处理器,设置了一级缓存、二级缓存和三级缓存,基于上述神经网络处理器的批量标准化处理方法,获取三级缓存中输入数据的数据量;获取输入数据的数据量匹配的阈值条件;根据阈值条件匹配的切割方式对输入数据进行切割,得到目标数据;根据阈值条件匹配的硬件同步方式将目标数据搬移至一级缓存进行缩减计算,得到缩减数据,硬件同步方式包括外部直接存储器与内部直接存储器之间的一对一同步方式或一对多同步方式;根据切割方式判断是否需要根据硬件同步方式将输入数据再次搬移至一级缓存,根据缩减数据和输入数据进行元素相乘计算,得到输出数据。相对于目前处理器进行批量标准化计算时,针对输入形状大小的不同,缺少在三级缓存硬件结构中灵活的级间硬件同步机制,以及对各级缓存数据在软件上灵活的切割和处理机制,处理效率低。本专利技术实施例在具有三级缓存的硬件结构的基础上,根据输入数据的数据量对输入数据进行不同方式的软件分割,并在三级缓存间的外部直接存储器访问和内部直接存储器访问间对应地采取一对一或者一对多的硬件同步机制,目标数据在单核的一级缓存中进行缩减计算和元素相乘计算。同时一级缓存所属的单核属于群组,群组之间为并行,能够在多个群组内的多个单核中实现高效的并行处理。本专利技术实施例通过可变的数据切割方案,以及外部直接存储访问与内存直接存储访问间灵活的同步通信机制,突破了外部直接访问在三级缓存与二级缓存之间的数据传输带宽瓶颈,使其与单核对一级缓存内数据的处理速度相匹配,从而提高了批量标准化的处理速度。
附图说明
[0010]图1是本专利技术实施例一中神经网络处理器的结构示意图;图2是本专利技术实施例一中神经网络处理器的第一种数据流处理的结构示意图;图3是本专利技术实施例一中神经网络处理器的第二种数据流处理的结构示意图;图4是本专利技术实施例一中神经网络处理器的第三种数据流处理的结构示意图图5是本专利技术实施例二中的基于神经网络处理器的批量标准化处理方法的流程图;图6是本专利技术实施例三中的基于神经网络处理器的批量标准化处理方法的流程图;图7是本专利技术实施例三中的基于神经网络处理器的数据流示意图;图8是本专利技术实施例四中的基于神经网络处理器的批量标准化处理方法的流程图;图9是本专利技术实施例四中的基于神经网络处理器的数据流示意图;
图10是本专利技术实施例五中的基于神经网络处理器的批量标准化处理方法的流程图;图11是本专利技术实施例五中的基于神经网络处理器的数据流示意图;图12是本专利技术实施例六中的基于神经网络处理器的批量标准化处理装置的结构示意图;图13是本专利技术实施例七中的电子设备的结构示意图;其中,三级缓存101、群组102、二级缓存103、单核104、一级缓存105、内部直接存储器访问106、外部直接存储器访问107、瓦片区域108。
具体实施方式
[0011]下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。
[0012]批量标准化(Batch Normalization ,BN )技术核心思想是,通过归一化处理,使每一层网络的输入数据都落入到一个标准的均值为0,方差为1的正态分布中。这样,每层网络的输入数据都分布在0附近,处在各自网络激活函数的线性区域,这个区域对输入非常敏感,输入数据较小的变化就会导致输出有较大的变化,带动整体神经网络输出的损失函数的变化,最终产生的效果就是避免梯度消失,加速训练网络的收敛。
[0013]批量标准化在训练神经网络中分为前向网络的批量规范训练(Batch Norm Training,BNT) 和反向网络的批范数梯度(Batch Norm Gradient,BNG)。
[0014]示例性的,输入数据的维度为4,即维度n = 4。输入数据的形状为[m, h, w, l],且特征维度索引为3, 即元素个数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络处理器,其特征在于,包括:三级缓存和多个群组,所述三级缓存用于存储外设传输的输入数据以及批量标准化处理后的输出数据;所述群组包括一个二级缓存和多个单核;每个单核包含一个一级缓存,所述多个单核包含的一级缓存共享所述二级缓存,所述一级缓存与所述二级缓存通过内部直接存储器访问进行相互独立的数据传输;所述一级缓存用于存储所述单核处理的数据;所述三级缓存通过外部直接存储器访问与所述二级缓存进行数据传输。2.根据权利要求1所述的网络处理器,其特征在于,所述二级缓存还包含至少一个瓦片区域,所述瓦片区域用于与所述一级缓存进行数据对接。3.根据权利要求2所述的网络处理器,其特征在于,所述二级缓存包含多个瓦片区域,所述瓦片区域与所述一级缓存一一对应;或者,所述二级缓存包含一个瓦片区域,所述瓦片区域与多个一级缓存对应。4.一种基于权利要求1

3中任一所述的神经网络处理器的批量标准化处理方法,其特征在于,包括:获取三级缓存中输入数据的数据量;获取所述输入数据的数据量匹配的阈值条件;根据所述阈值条件匹配的切割方式对所述输入数据进行切割,得到目标数据;根据所述阈值条件匹配的硬件同步方式将所述目标数据搬移至一级缓存进行缩减计算,得到缩减数据,所述硬件同步方式包括外部直接存储器与内部直接存储器之间的一对一同步方式或一对多同步方式;根据所述切割方式判断是否需要根据所述硬件同步方式将所述输入数据再次搬移至所述一级缓存,根据所述缩减数据和所述输入数据进行元素相乘计算,得到输出数据。5.根据权利要求4所述的方法,其特征在于,获取所述输入数据的数据量匹配的阈值条件,包括:根据群组数量、每个群组内的单核数量、二级缓存瓦片区域内存大小、输入数据的单位元素数据量以及输入数据形状确定是否符合第一阈值条件;相应的,根据所述阈值条件匹配的切割方式对所述输入数据进行切割,得到目标数据,包括:若符合第一阈值条件,根据各级缓存的容量对输入数据进行切分,得到第一数据;相应的,所述硬件同步方式为一对一同步方式,根据所述阈值条件匹配的硬件同步方式将所述目标数据搬移至一级缓存进行缩减计算,得到缩减数据,包括:通过群组内的各个单核对应的外部直接存储器访问,将所述第一数据并行搬移到二级缓存对应的瓦片区域;外部直接存储器访问一对一同步通知内部直接存储器访问,通过所述内部直接存储器访问将所述瓦片区域内的第一数据搬移到一级缓存进行缩减计算,得到缩减数据,其中,一级缓存、瓦片区域、内部直接存储器访问和外部直接存储器访问一一对应。6.根据权利要求5所述的方法,其特征在于,根据群组数量、每个群组内的单核数量、二
级缓存瓦片区域内存大小、输入数据的单位元素数据量以及输入数据形状确定是否符合第一阈值条件,包括:将输入形状的各个维度与输入数据的单位元素数据量相乘,得到输入量;将群组数量、每个群组内的单核数量和二级缓存瓦片区域内存大小相乘,得到第一阈值;若所述输入量大于等于所述第一阈值,确定符合第一阈值条件。7.根据权利要求5所述的方法,其特征在于,根据所述阈值条件匹配的硬件同步方式将所述目标数据搬移至一级缓存进行缩减计算,得到缩减数据,包括:在每个群组内,单核通过二级缓存将第一缩减数据发送至群组内的主单核内,通过所述主单核得到群组内的第二缩减数据;目标主单核获取其他群组内主单核通过三级缓存发送的第二缩减数据,根据所述主单核得到所在群组的第二缩减数据以及多个其他群组的第二缩减数据再次进行缩减运算,得到缩减数据。8.根据权利要求5所述的方法,其特征在于,根据所述切割方式判断是否需要根据所述硬件同步方式将所述输入数据再次搬移至所述一级缓存,根据所述缩减数据和所述输入数据进行元素相乘计算,得到输出数据,包括:根据所述切割方式和硬件同步方式将输入数据切割并搬移至所述一级缓存;在单核内进行缩减运算,获得所述缩减数据后,再次根据所述切割方式和硬件同步方式将输...

【专利技术属性】
技术研发人员:谭磊王浩张亚林
申请(专利权)人:上海燧原科技有限公司
类型:发明
国别省市:

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

1