首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 二值权重卷积神经网络加速器的硬件架构及其计算流程

二值权重卷积神经网络加速器的硬件架构及其计算流程

阅读:1030发布:2020-07-13

专利汇可以提供二值权重卷积神经网络加速器的硬件架构及其计算流程专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种用于二值权重 卷积神经网络 加速 器的 硬件 架构及其计算流程。其中,硬件架构包含以下部分:三个双端片上静态随机 存储器 ,分别用于缓存输入神经元以及一个卷积层的二值权重;四个卷积处理单元,能够根据计算流程控制其中的运算部件完成主要的卷积计算操作;一个特征映射累积单元以及一个卷积累加阵列,用于进一步处理卷积处理单元的运算结果,以得到最终正确的输出神经元的值。整个设计通过动态随机存储器 接口 与片外存储器交换数据。除了硬件架构以外,本发明还包含了一个对该硬件架构优化了的,以四行输入特征映射为一次完整计算单位的详细计算流程。本发明最大化的复用了输入数据,尽可能的消除了片外存储器的 访问 ,能够有效降低进行深度二值卷积神经网络计算的功耗,且能够支持深层网络,是一种可用于视觉应用的 嵌入式系统 的合理方案。,下面是二值权重卷积神经网络加速器的硬件架构及其计算流程专利的具体信息内容。

1.一种二值权重卷积神经网络加速器,其特征在于,包括:
11.两个用于存储卷积层输入的双端静态随机存储器,即输入神经元缓存器IMEM,其容量分别能够存储该网络每一层输入的所有通道中的2行,共计4行,此行数所针对的卷积核大小为3×3;
12.一个用于保存二值权重卷积神经网络权重的静态随机存储器,即卷积核缓存器FMEM,其容量大小能够将任意一层卷积层的所有二值权重缓存下来,其中每个权重占用1比特;
13.四个卷积处理单元,用于根据计算流程完成卷积处理计算;
14.一个特征映射累加单元;
15.一个卷积累加阵列;
其中,所述卷积处理单元包括:
21、4个针对对应行的数据缓冲单元DBF,其中包括两列寄存器,每列寄存器可保存4个输入数据,数据可在两列寄存器中流动;
22、一个卷积核缓冲单元kernel buffer,由512个移位寄存器组成,每个移位寄存器为
9比特,可保存一个3×3的卷积核,因此卷积核缓冲单元可缓存对应于所有输出通道的某一输入通道的卷积核;
23、用于卷积计算中乘累加计算的多入多出滤波器MFIR,其中第一第四输入行有1×32个MFIR,第二第三行有2×32个MFIR,每行的MFIR的输入共用对应行数据缓冲单元DBF中的输入神经元;
24、将卷积处理单元前3行及后三行对应输出神经元累加的快速加法单元FAU;
所述卷积处理单元用于根据以下计算流程完成卷积处理计算:
步骤一,从动态随机存储器中读取待处理的所有输入通道的4行数据,缓存进IMEM中,每个IMEM缓存2行;除此之外,从动态随机存储器中读取卷积层的所有权重保存进FMEM中;
步骤二,将4个输入通道的的4行,每行4个输入神经元分别读取进卷积处理单元的数据缓冲单元DBF里的寄存器中,同时将对应输入通道的二值权重读入卷积处理单元的卷积核缓冲单元中;
步骤三,从卷积核缓冲单元的寄存器中取出对应32个输出通道的卷积核分别送入对应的MFIR中,每个MFIR完成一行的卷积计算,并通过FAU进行累加;每个卷积处理单元的FAU输出再通过特征映射累加单元进行累加后,再在卷积累加阵列中与旧有累加结果进行相加;
步骤四,重复步骤三,直到所有输出通道被处理,共需要n/32次迭代,其中n为总的输出通道数;与此同时,继续从IMEM中读取下一次迭代需要的每行的接下来4个输入神经元进入对应DBF中的未在卷积中使用的一列寄存器;
步骤五,由于步骤四中已经将接下来4个输入神经元读入,因此可以对这些输入神经元进行卷积,重复步骤三、四,直到当前的4个输入通道的4行全部处理完毕;
步骤六,更换接下来4个输入通道,重复步骤二、三、四、五,直到所有输入通道都被处理完毕,此时在卷积累加阵列中的输出神经元就已经计算完全,也即已经得到了所有输出通道的2行输出;
步骤七,重复步骤一到六,直到完成整个卷积层的所有输入行的计算,得到所有输出,并保存回动态随机存储器,等待下一次读取进行下一层卷积层的计算;其中步骤一中的读取权重的过程可以跳过,因为此过程仅需一次。
2.如权利要求1所述的二值权重卷积神经网络加速器,其特征在于,所述卷积处理单元在执行步骤五和步骤六时,还用于从动态随机存储器中预读取接下来的两行数据进入IMEM中,以覆盖当前处理的4行中的前两行已被处理过的输入神经元;
其中,预读取和替换的时序为:一旦当前处理的4行中的前两行某个数据被读入卷积处理单元的数据缓冲单元后,即从片外动态随机存储器中读入对应的数据覆盖片上静态随机存储器IMEM中的该数据。

说明书全文

二值权重卷积神经网络加速器的硬件架构及其计算流程

技术领域

[0001] 本发明设计计算机及电子信息技术领域,特别涉及一种二值权重卷积神经网络专用加速器的硬件架构及其计算流程。

背景技术

[0002] 深度卷积神经网络模型在诸多领域譬如图像分类、动作检测、语音识别以及其他大数据分析的任务中取得了极大的突破和成功。一方面,随着卷积神经网络的效果变得越来越好,其本身拓扑结构也在不断加深,参数数量也达到了10的6次方及以上级别,这带来了计算复杂度的极大提升,所需的计算能爆炸性增长。另一方面,嵌入式系统仅能够提供有限的资源,其功耗也受限在一定范围内,现有常用的使用大规模GPU的解决方案虽然有较高的吞吐率,但其功耗过高(约250W),难以应用于嵌入式系统中。
[0003] 二值权重卷积神经网络是一种简化的卷积神经网络模型,其最早由加拿大蒙特利尔大学的Matthieu Courbariaux等人提出,后又经过Itay hubara、Mohammad Rasteg等人的改进。此模型通过特别的训练方式将卷积神经网络的权重训练为二值的+1和-1,这使得模型的计算复杂度大大降低,模型的大小也能够被压缩达到32倍。
[0004] 然而尽管如此,对于深度卷积神经网络,即使参数二值化能够使得复杂度有所降低,其仍然需要大量的计算,直接应用于嵌入式系统中很难满足实时性的要求。因此设计一款二值权重卷积神经网络加速器是进一步推动深度神经网络应用于嵌入式系统的理想解决方案之一。目前尚未出现理想的二值权重卷积神经网络加速器。Andri R,Cavigelli L,Rossi D,et al.YodaNN:An Ultra-Low Power Convolutional Neural Network Accelerator Based on Binary Weights[J].2016:236-241.中提出了一种二值权重卷积神经网络加速器,其能耗比远超现有的高精度权重神经网络的加速器。然而此架构由于大量的访问片外的主存储器,在400MHz的频率下IO的功耗需要大约328毫瓦,甚至比片上计算的功耗还高。因此,针对降低访问片外主存(动态随机存储器)的IO功耗的计算流程和对应架构亟待提出。

发明内容

[0005] 本发明旨在解决卷积神经网络应用于功耗受限的嵌入式系统的技术问题,或至少提出一种有用的商业选择。为此,本发明的目的在于提出一种针对二值卷积神经网络优化的硬件加速器架构和计算流程,最大化数据复用的同时,尽可能的降低访问片外随机存储器的带宽和功耗,将大量的数据访问限制在片上访问功耗最低的寄存器上。同时本发明能够适应深度网络的需求,能够适应具有最好分类精度之一的VGG-16Net、VGG-19Net等网络拓扑的二值化版本。另外,由于二值卷积神经网络的全连接层主要为IO密集型需求,卷积计算是计算密集型需求,因此本发明着眼于二值权重卷积神经网络的卷积层的加速。
[0006] 本发明主要包含两部分,一部分是整体的硬件架构,另一部分是优化的计算流程。
[0007] 硬件架构包含以下部分:
[0008] 1.两个用于存储卷积层输入的双端静态随机存储器,即输入神经元缓存器IMEM1,IMEM2,其容量分别能够存储该网络每一层输入的所有通道中的2行,共计4行,此行数的设置能应用于卷积核大小为3×3的二值卷积神经网络。
[0009] 2.一个用于保存二值权重卷积神经网络权重的静态随机存储器,即卷积核缓存器FMEM,其容量大小能够将任意一层卷积层的所有二值权重缓存下来,期中每个权重占用1比特;其有益效果是能够显著降低片外动态随机存储器的访问,降低功耗。计算到每一层的权重都只需要从动态随机存储器中读取一次。
[0010] 3.四个卷积处理单元PU1~PU4。用于输入神经元以及卷积核的缓冲存储,初步的卷积操作。每个卷积处理单元处理一个输入通道的某4行输入神经元。
[0011] 4.一个连接于四个卷积处理单元之后的特征映射累积单元ISU,能够进一步处理四个卷积处理单元的计算结果。
[0012] 5.一个卷积累加阵列ACCA。由于深度卷积神经网络每个卷积层往往都有极多通道,因此只能以部分并行方式进行累加求和处理,最终通过卷积累加阵列对之前计算的数据进行串行组合。
[0013] 其中,卷积处理单元为本硬件架构的主要计算单元,其中包括:
[0014] 1.四个针对对应行的数据缓冲单元DBF,其中包括两列寄存器,每列寄存器可保存4个输入数据,数据可在两列寄存器中流动。
[0015] 2.一个卷积核缓冲单元Kernel Buffer,由512个移位寄存器组成,每个移位寄存器为9比特,可保存一个3×3的卷积核,因此卷积核缓冲单元可缓存针对所有输出通道的某一输入通道的卷积核。卷积核缓冲单元可以将缓冲的卷积核同时送至任意入多出滤波器
[0016] 3.用于卷积计算中乘累加计算的多入多出滤波器MFIR,其中第一第四输入行有1×32个MFIR,第二第三行有2×32个MFIR,每行的MFIR的输入共用对应行数据缓冲单元DBF中的输入神经元。
[0017] 4.将卷积处理单元前3行及后三行对应输出神经元累加的快速加法单元FAU。
[0018] 上述硬件架构为配合本发明的计算流程所涉及的计算流程,其有益效果是进行高效的卷积计算,尽可能的提高数据复用和降低片外动态存储器的访问。
[0019] 本发明的计算流程,包含以下步骤:
[0020] 步骤一,从动态随机存储器中读取待处理的所有输入通道的4行数据,缓存进IMEM中,每个IMEM缓存2行。除此之外,从动态随机存储器中读取该卷积层的所有权重保存进FMEM中。
[0021] 步骤二,将4个输入通道的4行,每行4个输入神经元分别读取进卷积处理单元的数据缓冲单元DBF里的寄存器中,同时将对应输入通道的二值权重读入卷积处理单元的卷积核缓冲单元中。
[0022] 步骤三,从卷积核缓冲单元的寄存器中取出对应32个输出通道的卷积核分别送入对应的MFIR中,每个MFIR完成一行的卷积计算,并通过FAU进行累加。每个卷积处理单元的FAU输出再通过特征映射累加单元进行累加后,再在卷积累加阵列中与旧有累加结果进行相加。
[0023] 步骤四,重复步骤三,改变送入各个MFIR的卷积核,直到所有输出通道被处理,共需要n/32次迭代,其中n为总的输出通道数。与此同时,继续从IMEM中读取下一次迭代需要的每行的接下来4个输入神经元进入对应DBF中的未在卷积中使用的一列寄存器。
[0024] 步骤五,由于步骤四中已经将接下来4个输入神经元读入,因此可以对这些输入神经元进行卷积。重复步骤三、四,直到当前的4个输入通道的4行全部处理完毕。
[0025] 步骤六,更换接下来4个输入通道,重复步骤二、三、四、五,直到所有输入通道都被处理完毕,此时在卷积累加阵列中的输出神经元就已经计算完全,也即已经得到了所有输出通道的2行输出。
[0026] 步骤七,重复步骤一到步骤六,直到完成整个卷积层的所有输入行的计算,得到所有输出,并保存回动态随机存储器,等待下一次读取进行下一层卷积层的计算。其中步骤一中的读取权重的过程可以跳过,因为此过程仅需一次。
[0027] 补充说明:在上述的步骤五和步骤六的处理过程中,同时还从动态随机存储器中预读取接下来的两行数据进入IMEM中,以覆盖当前处理的4行中的前两行已被处理过的输入神经元。具体预读取和替换的时序为:一旦当前处理的4行中的前两行某个数据被读入卷积处理单元的数据缓冲单元后,即从片外动态随机存储器中读入对应的数据覆盖片上静态随机存储器IMEM中的该数据。
[0028] 本发明上述的硬件架构配合计算流程,有益效果如下:
[0029] 首先,由于二值卷积神经网络权重的二值化,因此每个权重可以使用1比特保存,因此相比高精度权重的卷积神经网络,其模型大大缩小。将一个深度网络的某一层的所有参数存入片上不会消耗太多存储容量和面积,而权重却是会被大量访问的数据,因此可以大大减少片外存储器的访问,降低功耗需求。预设的FMEM大小为295KB左右,实验证明对于现有的常用的深度模型都可以有效容纳其中的最大一层的权重。
[0030] 其次,在卷积处理单元中每一行的数据缓冲单元有两列寄存器,在其中一列寄存器作为数据缓冲器参与卷积计算时,可以同时从IMEM中读取下一次迭代的数据进入另一列寄存器进行准备,时序重叠,提高效率。下一次迭代时可将准备好的数据直接向用于卷积的数据缓冲器进行移位,同时继续下一轮的重叠读取。
[0031] 第三,卷积处理单元中每一行所有的32个MFIR共用相同的输入神经元,提高了数据复用性,而计算流程的步骤三四,将这部分数据需要的所有计算都在最小的时间范围内处理完毕,使这部分输入神经元不会需要再次从IMEM读入卷积处理单元中,仅有读取寄存器的功耗。而众所周知访问寄存器的功耗远低于访问动态随机存储器和静态随机存储器,此种访存方式和计算流程将大大降低功耗。除此之外,每个MFIR同时使用4个数据,加大了并行度,提高系统吞吐率。
[0032] 其四,整个计算流程以所有输入通道的四行为处理单位,将之读入片上的IMEM中,而不像常用卷积神经网络架构计算流程中将部分输入通道的所有行读入,相较之下此四行数据读入并处理后即不再需要,这也可以降低再次将他们从片外随机存储器读到片上的功耗。另外,由于是以四行为单位,降低了需要的片上存储容量与输入图像的尺寸大小的依赖性。
[0033] 最后,数据处理和数据预读的重叠,可以使计算流程在完成一个阶段后无需等待新的数据,提高了吞吐率,也降低了瞬时带宽的需求。附图说明
[0034] 本发明的具体实施办法及上述方面的优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0035] 图1是本发明的顶层硬件架构图。
[0036] 图2是卷积处理单元的内部结构图。
[0037] 图3是本发明中以4行为处理单位的计算流程的示例,其中为了简化,仅绘出只有一个输入通道一个输出通道的情况。
[0038] 图4是本发明的计算流程的数据流动时序图,每一行标识了某个存储单元或数据处理单元当前正在使用的数据,用以更加形象的说明计算流程。

具体实施方式

[0039] 下面详述本发明的实施例,所述实施例的示例在附图中示出。首先介绍必要的硬件整体架构,其次介绍以此硬件架构为基础的优化的计算流程。下面通过参考附图描述的实施是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0040] 在本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“竖直”、“平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明的简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0041] 此外,术语“第一行”、“第二行”……等指示顺序的仅用于描述附图中的处理顺序,而不能理解为指示或暗示实际的某一特定行。由此,限定有“第一行”、“第二行”……的特征可以明示或隐含地指代更多相似情况的相对顺序。
[0042] 首先介绍本发明的硬件架构部分。
[0043] 图1为本发明的顶层硬件架构图,数据由片外动态随机存储器(DRAM)从上到下流动,待计算完毕后将输出神经元通过DRAM的接口存回DRAM。其中各个单元介绍如下:
[0044] 1.IMEM是片上双端静态随机存储器。每一个IMEM作为cache用于保存输入特征映射(input feature map)的一部分,确切的说,是每一个通道(channel)的两行。
[0045] 2.FMEM也是片上的随机存储器。FMEM用于缓存一整个卷积层的所有权重。FMEM的容量应该要能够存储运行在硬件架构上的网络模型的最大一层卷积层的权重。
[0046] 3.卷积处理单元PU1~PU4是进行卷积计算的主要单元,每个卷积处理单元处理一个输入通道,每个通道一次处理四行,每行一次并行的处理四个输入神经元,并计算出32个输出通道的两行,每行四个输出神经元。且四个卷积处理单元的输出结果最后需要在特征映射累积单元(ISU)中组合累加。
[0047] 4.特征映射累积单元(ISU)将上述4个卷积处理单元同时输出的32个输出通道的两行,每行4个对应神经元相累加。
[0048] 5.卷积累加阵列ACCA。深度卷积神经网络每个卷积层往往都有很多输入通道(如64、128、256、512),而要算出一个输出神经元,就需要该神经元对应的3×3区域所有输入通道的输入神经元进行加权累加。只能以部分并行方式进行累加求和处理,最终通过卷积累加阵列对在卷积处理单元中计算所得的数据进行串行组合。此处的“部分并行”,指的是有此架构中有4个卷积处理单元,因此是4个输入通道的部分并行。最后需要把每4个通道的计算结果通过卷积累加阵列进行串行累加。
[0049] 图2为一个卷积处理单元PU的示意图。包含了四个数据缓冲单元DBF,每个对应一个输入的行。每个数据缓冲单元后连接有32个多入多出滤波器MFIR,以及对应2个输出行的快速加法单元(FAU)。除此之外还有一个卷积核缓冲单元。各个单元详解如下:
[0050] 1.数据缓冲单元DBF:由一个多路选择器Mux和两列寄存器LR和RR组成,LR和RR各自可以存储4个输入神经元。每个DBF可以从IMEM中读取输入神经元,通过多路选择器读入LR。而LR的数据可以移位到RR,MFIR可以直接从RR中读取输入数据。在MFIR处理RR中的数据的同时,可以继续从IMEM读取下一次计算需要的数据进入LR。
[0051] 2.各行的MFIR对任意一个输入神经元,执行的计算可以描述如下:
[0052]
[0053] 其中y(n)是该行的一个输出,x(n)是该行输入,k(i)是卷积核中该行的一个权重值,为+1或-1。win为卷积核大小,本架构中win=3。因此该计算可以使用一个有限冲击响应滤波器实现。而每个MFIR同时处理4个输入神经元,也即可以形式的表示为:同时计算出的输出为y(n-1),y(n),y(n+1),y(n+2)。所需使用的输入神经元为x(n-2),x(n-1),x(n),x(n+1),x(n+2),x(n+3)。其中x(n)……x(n+3)是在DBF中的RR中。x(n-2),x(n-1)为上一轮计算中RR中的输入神经元的缓存值。每一行有1×32或2×32个MFIR。其中第二和第三行输入对应的是2×32个MFIR,这是因为第二和第三行的输入神经元为两个输出行所共用,但权重不同。每1×32个MFIR对应一个输出行,他们共用相同的DBF中的LR中的输入神经元,而卷积时各自使用的卷积核权重不同,从而产生32个输出通道的中间结果。另外,由于二值卷积神经网络的权重都为+1或者-1,因此乘法就变成了加法和减法。在本系统中使用补码形式表示数据,因此上述公式中的二值乘法使用求补码单元+多路选择器的实现形式,以降低功耗。
[0054] 3.对于3×3的卷积核的实现,需要将输入4行的的第一二三行对应输出神经元的结果相加,同理对第二三四行也是。因此需要进行行累加的快速累加单元FAU。FAU可直接使用普通加法器实现,也可使用压缩器(compressor)加加法器的实现。
[0055] 4.卷积核缓冲单元Kernel Buffer,由512个移位寄存器组成,每个移位寄存器为9比特,可保存一个3×3的卷积核,因此卷积核缓冲单元可缓存针对所有输出通道的某一输入通道的卷积核。卷积核缓冲单元可以将缓冲的不同的卷积核同时送至所有多入多出滤波器。
[0056] 以下部分内容用于说明以本发明的硬件架构为基础的优化计算流程。
[0057] 这里首先进行计算流程在较高层次上的介绍,如图3所示。图3中的正方形表示一个通道上的一个输入神经元,不同颜色代表了其被不同迭代阶段所处理。每一行部分神经元需要在一次迭代后缓存下来(使用MFIR中的寄存器)以参与下一次迭代的计算,这部分神经元以含有虚线的正方形所表示。黄色的3×3网格表示当前使用的卷积核。简略起见,图3仅绘出了一个输入通道,一个输出通道,但实际情况下往往会有多个输入、输出通道。概略的计算流程如下:
[0058] 1.初始化阶段,4行输入神经元中每一行的4个神经元(如图中粉红色)以及两个预读取(缓存)的神经元(以绿色带斜线方所示)将用于卷积计算。而使用这些神经元和对应的卷积核计算后,将会得到两行的输出(图3中右侧粉红色方块表示)的8个输出神经元。它们是对应输出通道中神经元的计算中间结果(仅使用了部分输入通道的卷积结果)。
[0059] 2.上述过程将会迭代地应用于所有输出通道,于是每一个输出通道的输出神经元都得到了一部分的计算中间结果。
[0060] 3.开始下一轮迭代前,每行在上一次迭代中最右的两个输入神经元(以粉红带斜线的方块表示)被缓存。于是在下一轮迭代开始时,可使用图3中蓝色方块及粉红带斜线方块所示的输入神经元进行计算。
[0061] 4.重复上述过程(1~3),直到当前输入通道的4行所有神经元已用于计算,也即说明4行所有输出通道的输出神经元都已得到了对应当前输入通道的计算中间结果。
[0062] 5.改变输入通道,重复上述过程(1~4),直到遍历所有输入通道。此时,所有输出通道的输出神经元已获得所有所需的计算中间结果,且经过累加,已得到了最终正确的输出值。于是4行输入神经元全部处理完毕,可以接着以相同方式处理余下所有行的数据,直到得到整个卷积层的所有输出神经元。
[0063] 其次结合上述硬件架构详细说明计算流程,除了包含上述对于输入神经元处理的顺序外,还详细说明了数据在硬件架构中流动情况,以及数据预读与卷积计算的重叠方式。详细的关于处理顺序及重叠处理的时序如图4中表示。图4以输入特征映射的宽度为224为例。为了清晰起见,以x(m,n,c)表示一个输入神经元,其中m,n,c分别是输入的行、列、输入通道的索引。以Ki,j表示对应于输出通道j的第i个卷积核,也即用于卷积第i个输入通道的卷积核。另外,win表示输入特征映射的宽度,Cin、Cout分别表示输入输出通道数量。计算流程如下:
[0064] 步骤一,从动态随机存储器中读取待处理的所有输入通道的4行数据,缓存进IMEM中,每个IMEM缓存2行。也就是说,m=1,2,3,4,n=1,2,…,win,c=1,2,…,Cin的输入神经元被缓存进IMEM。除此之外,从动态随机存储器中读取该卷积层的所有权重保存进FMEM中。
[0065] 步骤二,将4个输入通道的4行,每行4个输入神经元分别读取进卷积处理单元的数据缓冲单元DBF里的寄存器LR中,同时将对应输入通道的二值权重从FMEM中读入卷积处理单元的卷积核缓冲单元PU中。换句话说,对应于卷积核Ki,j,i=1,2,3,4以及j=1,2,…,Cout被缓存进PU中的kernel buffer里,每个PU对应一个i。当上述读取过程完成后,将LR中输入神经元移位到RR中,并在下一步骤进行卷积计算的过程中再次读取每行的接下来四个输入神经元。如图4中第二行第二个黄色框所示。
[0066] 步骤三,从卷积核缓冲单元的寄存器中取出对应32个输出通道的卷积核,分别送入对应的MFIR中,每个MFIR完成一行的卷积计算,并通过FAU进行累加。每个卷积处理单元的FAU输出是对应该PU的输入通道的计算中间结果,通过特征映射累加单元与其他输出通道的结果进行累加后得到的4个输入通道计算中间结果之和,再在卷积累加阵列中与旧有累加结果进行相加。当第一次迭代时,旧有的累加结果为0,或可以是卷积层的偏置项。
[0067] 步骤四,重复步骤三,改变送入各个MFIR的卷积核(可通过图2中kernel buffer里的多路选择器阵列),直到所有输出通道得到计算的中间结果。换句话说,对于Ki,j,(i=1,2,3,4),此重复步骤即为将j从1改变到Cout。由于每个输出行有32个MFIR并行,因此共需要[Cout/32]次迭代。与此同时,继续从IMEM中读取下一次迭代需要的每行的接下来4个输入神经元进入对应DBF中的未在卷积中使用的一列寄存器。
[0068] 步骤五,由于步骤四中已经将接下来4个输入神经元读入LR,因此将它们从LR移位到RR后可以对这些输入神经元进行卷积。重复步骤三、四,直到当前的4个输入通道的4行全部处理完毕。
[0069] 步骤六,更换接下来4个输入通道,重复步骤二、三、四、五,直到所有输入通道都被处理完毕,此时在卷积累加阵列中的输出神经元就已经计算完全,也即已经得到了所有输出通道的2行输出,并保存在ACCA中的缓冲器里。
[0070] 步骤七,重复步骤一到步骤六,直到完成整个卷积层的所有输入行的计算,得到所有输出,并保存回动态随机存储器,等待下一次读取进行下一层卷积层的计算。其中步骤一中的读取权重的过程可以跳过,因为此过程仅需一次。
[0071] 补充说明:在上述的步骤五和步骤六的处理过程中,同时还从动态随机存储器中预读取接下来的两行数据进入IMEM中,以覆盖当前处理的4行中的前两行已被处理过的输入神经元。具体预读取和替换的时序为:一旦当前处理的4行中的前两行某个数据被读入卷积处理单元的数据缓冲单元后,即从片外动态随机存储器中读入对应的数据覆盖片上静态随机存储器IMEM中的该数据。
[0072] 通过本发明实施例的上述硬件架构和计算流程,可以最大化输入数据的复用,降低访问高能耗存储器(SRAM、DRAM)的次数,显著降低功耗,提高系统的吞吐率。而硬件架构中的PU、ISU、ACCA主要给出了功能说明,具体实现这些部分的功能的方法和途径很多。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中为明确的各组成部分均可用现有技术加以实现。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈