一种计算单元、阵列、模块、硬件系统论文和设计-李丽

全文摘要

本实用新型公开了一种计算单元、阵列、模块、硬件系统,属于人工智能算法硬件加速领域。针对现有技术中存在的稀疏化卷积神经网络算法数据庞大,计算时间长的问题,本实用新型在计算单元设计了一种无效数据移除机制,可将无效的权重或输入图像数据移除,减少计算时间,降低乘法和累加计算带来的功耗;设计一种多通道子计算单元,采用复用累加通道机制完成卷积操作,降低资源消耗;在无效数据移除的情况下,本实用新型还设计了一种供数轮转机制,可保持计算单元的供数充足;本实用新型因功耗低、面积小、吞吐率高、识别速度快,适用于移动端的应用,如智能家居、智慧城市,能够高效完成车牌识别、人脸识别等。

主设计要求

1.一种计算单元,其特征在于:包括一个无效数据模块、一个缓冲单元组、一个加法器、一个多通道部分、寄存器组以及多个选通器,输入数据经过无效数据模块处理后传输到缓冲单元组,缓冲单元组对数据缓冲后提供有效数据源给加法器,数据通过加法器后经过多通道部分和寄存器组,最后数据分为正权值部分和负权值部分再通过选通器传输到加法器。

设计方案

1.一种计算单元,其特征在于:包括一个无效数据模块、一个缓冲单元组、一个加法器、一个多通道部分、寄存器组以及多个选通器,输入数据经过无效数据模块处理后传输到缓冲单元组,缓冲单元组对数据缓冲后提供有效数据源给加法器,数据通过加法器后经过多通道部分和寄存器组,最后数据分为正权值部分和负权值部分再通过选通器传输到加法器。

2.根据权利要求1所述的一种计算单元,其特征在于,无效数据模块判断输入数据是否为零,输入数据为零判为无效数据跳过计算单元。

3.根据权利要求2所述的一种计算单元,其特征在于,无效数据模块的输入数据为系统输入图像数据或权重数据。

4.根据权利要求1所述的一种计算单元,其特征在于,缓冲单元组包含多个子缓冲单元,用于缓冲经过无效数据消除模块的数据,输入数据经过子缓冲单元后通过供数轮转机制确保向加法器提供足够的有效数据源。

5.根据权利要求1所述的一种计算单元,其特征在于,所述计算单元采用了一种可重构复用累加通道的机制进行乘法累加操作,多通道部分和寄存器组用于寄存对应每一个权重的部分和累加结果,并根据权重的值来选择向加法器提供的累加源数据重构累加通道,选通器用于根据权重的值来重构加法器的累加通路。

6.一种阵列,包括权利要求1-5任一所述的计算单元,其特征在于,所述阵列由计算单元呈阵列分布,阵列有Z片,每一片分别有Y行构成,每一行有X个计算单元;所述阵列用于进行乘累加计算。

7.根据权利要求6所述的一种阵列,其特征在于,阵列的每一行计算单元接收相同的输入图像数据,阵列的每一列的计算单元接收相同的权重数据。

8.一种模块,包括根据权利要求7所述的一种阵列,其特征在于,还包括一个聚合处理单元,所述聚合处理单元处理阵列卷积计算的部分和的加法计算、标准化层处理和激活函数处理。

9.根据权利要求8所述的一种模块,其特征在于,聚合处理单元包括多个子聚合处理单元,每个子聚合处理单元包括两个常数乘法器和一个加法器,每个子聚合处理单元对应处理所述阵列一片计算单元输出的数据;所述阵列计算出的部分和通过聚合处理单元进行加法运算,得到最后乘累加的结果;并根据标准化层的线性化特征,将标准化层的计算合并于部分和累加部分。

10.一种硬件系统,包括片上设备和片外设备,其特征在于,片上设备包括权利要求8-9任一所述的一种模块,为计算模块;片上设备还包括控制模块、配置模块、存储模块、总线接口,片外设备包括CPU和外部存储模块;片外设备的CPU与片上设备的控制模块电连接,片外设备的外部存储器和片上设备的存储模块电连接,片上设备的控制模块与片上设备的配置模块、存储模块和计算模块电连接,片上设备的配置模块和片上设备的存储模块和计算模块电连接,片上设备的存储模块和计算模块电连接。

设计说明书

技术领域

本发明涉及人工智能算法硬件加速领域,特别涉及一种计算单元、阵列、模块、硬件系统。

背景技术

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,在人工智能领域有着广泛的应用,包括图像识别、大数据处理、自然语言处理等。为了提高算法的精度,卷积神经网络的模型结构愈加复杂,深度不断加大,由此所带来的模型参数庞大、计算时间过长阻碍了该算法在终端的部署,如智能家居、智能交通等物联网应用。这些问题引起了对卷积神经网络的算法和硬件设计的深入研究,以追求低功耗和高吞吐量。

在算法上,一种方法是参数剪枝:结构化剪枝和非结构化剪枝,带来了权重的稀疏化,ReLU等激活函数也带来了每层输出激活图像数据的稀疏化。另一种方法是参数共享:使用特定量化方法将网络训练为量化神经网络,如二值化或三值化网络,并确保其算法的效果不会影响应用的实现。

近些年来针对稀疏化卷积神经网络算法的硬件设计越来越多,但相关研究大多集中在常规的稀疏卷积神经网络的硬件设计,如对权重矩阵和输入图像矩阵进行编码和解码,而本发明是针对稀疏化的量化卷积神经网络设计一种硬件实现方法,常规的编码技术所带来的代价远大于提升的效果本身。

中国专利申请,申请号CN201811486547.1,公开日2019年5月3日,公开了一种针对硬件实现稀疏化卷积神经网络推断的加速方法,包括面对稀疏硬件加速架构的分组剪枝参数确定方法、针对稀疏硬件加速架构的分组剪枝训练方法和针对稀疏化卷积神经网络前向推断的部署方法:根据硬件架构中乘法器数量确定分组剪枝的分组长度和剪枝率,基于量级裁剪方式将压缩率以外的权值进行裁剪,通过增量训练方式提升剪枝后的网络准确率及压缩率,剪枝过的网络经微调后保存非剪枝位置的权值和索引参数并送入硬件架构下的计算单元中,计算单元同时获取分组长度的激活值完成稀疏网络前向推断。本发明基于硬件架构出发设定算法层面的剪枝参数与剪枝策略,有益于降低稀疏加速器的逻辑复杂度提高稀疏加速器前向推断的整体效率。该发明虽也从硬件架构出发提升整体效率,但没有对无效数据进行处理,功耗高,计算时间不够优化。

发明内容

1.要解决的技术问题

针对现有技术中存在的稀疏化卷积神经网络算法数据庞大,计算时间长,目前研究大多集中在相关硬件设计,本发明提供了一种计算单元、阵列、模块、硬件系统,可灵活支持多种二值化或三值化稀疏卷积神经网络的实现,资源利用率高、吞吐率大、功耗低、面积小,适用于终端的应用实现。

2.技术方案

本发明的目的通过以下技术方案实现。

第一方面,提供了一种计算单元,包括一个无效数据模块、一个缓冲单元组、一个加法器、一个多通道部分、寄存器组以及多个选通器,输入数据经过无效数据模块处理后传输到缓冲单元组,缓冲单元组对数据缓冲后提供有效数据源给加法器,数据通过加法器后经过多通道部分和寄存器组,最后数据分为正权值部分和负权值部分再通过选通器传输到加法器。

更进一步的,无效数据模块判断输入数据是否为零,输入数据为零判为无效数据跳过计算单元。

更进一步的,无效数据模块的输入数据为系统输入图像数据或权重数据。

更进一步的,缓冲单元组包含多个子缓冲单元,用于缓冲经过无效数据消除模块的数据,输入数据经过子缓冲单元后通过供数轮转机制确保向加法器提供足够的有效数据源。在没有无效数据消除模块的消除机制和供数轮转工作机制的情况时,数据被以一种十分常规的方法进行处理:输入图像数据和权重传入乘法器进行相乘,乘法结果进行累加。虽然这些结果对最后的结果不会造成任何影响,但是这些无效数据依然进行乘法和累加操作,造成了资源、时间和能量的消耗。

更进一步的,针对二值或三值权重的网络特性,所述计算单元采用了一种可重构复用累加通道的机制进行乘法累加操作,多通道部分和寄存器组用于寄存对应每一个权重的部分和累加结果,并根据权重的值来选择向加法器提供的累加源数据,选通器用于根据权重的值来重构加法器的累加通路。

第二方面,提供一种阵列,所述阵列由计算单元呈阵列分布,阵列有Z片,每一片分别有Y行构成,每一行有X个计算单元;形成一个X*Y*Z的三维阵列,且所述阵列是一个三维卷积计算阵列,用于进行乘累加计算。

更进一步的,阵列的每一行计算单元接收相同的数据,阵列的每一列的计算单元接收相同的相同的数据,每一行接收的数据为输入图像数据,每一列输入数据为卷积核的权重数据。

第三方面,提供一种模块,包括所述阵列,还包括一个聚合处理单元,所述聚合处理单元处理计算阵列卷积计算的部分和的加法计算、标准化层处理和激活函数处理。

更进一步的,聚合处理单元包括多个子聚合处理单元,每个子聚合处理单元包括两个常数乘法器和一个加法器,每个子聚合处理单元对应处理所述阵列一片计算单元输出的数据。所述阵列计算出的部分和通过聚合处理单元进行加法运算,得到最后乘累加的结果;并根据标准化层的线性化特征,将标准化层的计算合并于部分和累加部分。

第四方面,提供了一种硬件系统,包括片上设备和片外设备,片上设备包括所述模块,为计算模块;片上设备还包括控制模块、配置模块、存储模块、总线接口,片外设备包括CPU和外部存储模块;片外设备的CPU与片上设备的控制模块电连接,片外设备的外部存储器和片上设备的存储模块电连接,片上设备的控制模块与片上设备的配置模块、存储模块和计算模块电连接,片上设备的配置模块和片上设备的存储模块和计算模块电连接,片上设备的存储模块和计算模块电连接。

一种硬件系统的实现方法,片外设备的CPU的指令通过总线接口读入到片上设备的控制模块进行解码,解码后的配置指令传输入片上设备的配置模块中,数据通路根据配置信息进行重构;片上设备的控制模块发出的执行指令控制每个模块的任务执行开始或结束;片外设备的存储单元的数据由总线接口传输入片上设备的存储模块;片上设备的计算模块根据接收到的执行指令和配置指令,从片上设备的存储单元读取数据进行计算,计算结果按指令存回片上设备的存储单元。

3.有益效果

相比于现有技术,本发明的优点在于:

(1)本发明设计了一种无效数据移除机制,相较于常规的数据处理方法,针对二值或三值卷积神经网络的稀疏特性,可将无效的权重或输入图像数据移除,减少了计算的时间,降低乘法和累加计算带来的功耗,减少了资源、时间和能量的消耗;

(2)本发明设计了一种多通道子计算单元,针对二值或三值权重低比特的特性,采用可重构复用累加通道机制进行卷积操作,使用寄存器组用于寄存不同通道对应每一个权重的部分和累加结果,并根据权重的值来选择向加法器提供的累加源数据,选通器用于根据权重的值来重构加法器的累加通路,降低资源消耗;

(3)在无效数据移除的情况下,本发明还设计了一种供数轮转机制,供数轮转机制始终保持缓冲单元组有子缓冲单元在接收数据,有一个子缓冲单元在向复用累加通道提供有效数据,保持计算单元的供数充足;

(4)本发明提出了一种硬件优化算法,它将卷积和标准化层的算法根据其共同的线性特征合并在一起,简化后执行线性计算,减少计算冗余,降低功耗和面积开销。

综上所述,本发明可以有效的提高二值化或三值化的稀疏卷积神经网络在实现硬件加速时的吞吐率和计算资源利用率;本发明的设计面积小、功耗低,有良好的实际应用,尤其是在终端的物联用领域的应用。

附图说明

图1为本发明的总体硬件架构示意图;

图2是本发明的子计算单元及复用累加通道机制通路示意图;

图3是本发明的无效数据消除模块的消除机制和供数轮转工作机制示意图。

具体实施方式

下面结合说明书附图和具体的实施例,对本发明作详细描述。

实施例

如图1所示,一种硬件系统,包括片上设备和片外设备,片上设备包括控制模块、配置模块、存储模块、计算模块和总线接口,片外设备包括CPU和外部存储模块;片外设备的CPU与片上设备的控制模块电连接,片外设备的外部存储器和片上设备的存储模块电连接,片上设备的控制模块与片上设备的配置模块、存储模块和计算模块电连接,片上设备的配置模块和片上设备的存储模块和计算模块电连接,片上设备的存储模块和计算模块电连接。

系统在进行卷积神经网络数据处理计算时,片外设备的CPU将指令通过总线接口传输到片上设备的控制模块进行解码,解码后的配置指令传输到片上设备的配置模块中,系统的数据通路根据配置信息进行重构;片外设备的存储单元的数据由总线接口传输入片上设备的存储模块。片上设备的控制模块发出执行指令控制给配置模块、存储模块和计算模块;片上设备的计算模块根据接收到的执行指令和配置指令,从片上设备的存储单元读取数据进行计算,计算结果按指令存回片上设备的存储单元。片上存储控制单元根据配置信息和控制信息决定结果数据是通过接口传输出片外或者留在片上存储单元内部,控制源数据和结构数据地址的生成,控制片上存储单元和计算模块之间的交互。

片上设备的计算模块,是一种异构的计算模块,所述计算模块包括一个三维卷积阵列和一个聚合处理单元,三维卷积阵列由4*4*8个计算单元呈阵列分布,阵列有8片,每一片分别有4行构成,每一行有4个计算单元;三维卷积阵列用于对系统的输入数据进行乘累加计算,系统的输入数据包括输入图像数据,权重数据和激活值;阵列的每一行计算单元接收相同的输入图像数据,阵列的每一列的计算单元接收相同的权重数据。系统输入数据经过三维卷积阵列计算后,由聚合处理单元对卷积计算的部分和进行乘法和加法计算、标准化层处理和激活函数处理,输出的图像数据从阵列右边传输进入聚合处理单元。聚合处理单元包括多个子聚合处理单元,每个子聚合处理单元包括两个常数乘法器和一个加法器,每个子聚合处理单元对应处理一片三维卷积阵列输出的数据。所述计算阵列计算出的部分和数据通过聚合处理单元进行加法运算,得到最后乘累加的结果;并根据标准化层的线性化特征,将标准化层的计算合并于部分和累加部分。

如图2所示,三维卷积阵列中的计算单元包括一个无效数据消除模块、一个缓冲单元组、一个加法器、一个多通道部分、寄存器组以及多个选通器。无效数据模块采用了一种无效数据移除机制,将无效的权重或输入图像数据移除,减少计算时间,降低乘法和累加计算带来的功耗。系统的输入数据经过无效数据模块处理后传输到缓冲单元组,缓冲单元组对数据缓冲后提供有效数据源给加法器,缓冲单元组中采用供数轮转机制,确保有足够的有效数据源提供给加法器,保证计算单元的供数充足;缓冲过的数据通过加法器后经过多通道部分和寄存器组,在二值化或三值化的稀疏卷积神经网络中分为正权值部分和以及负权值部分,选通器将正权值部分和以及负权值部分和分开不同通道再次传输到加法器重构累加通道,多通道计算单元的设计,降低资源消耗。

计算单元中的无效数据消除模块的无效数据消除机制工作方式是通过无效数据模块判断输入的图像数据或权重数据是否为零,若输入数据为零则判为无效数据跳过计算单元计算;系统的输入数据经过无效数据模块后进入缓冲单元组,缓冲单元组包含三个子缓冲单元,用于缓冲数据提供给复用累加通道;三个子缓冲单元通过供数轮转机制可确保向加法器提供足够的有效源数据。在没有无效数据消除模块的消除机制和供数轮转工作机制的情况时,数据被以一种十分常规的方法进行处理:输入图像数据和权重传入乘法器进行相乘,乘法结果进行累加。虽然这些结果对最后的结果不会造成任何影响,但是这些无效数据依然进行乘法和累加操作,造成了资源、时间和能量的消耗;使用无效数据模块则减少了系统的计算时间和计算次数,降低了系统的功耗。

如图3所示计算单元中的无效数据消除模块的无效数据消除机制和供数轮转工作机制,从片上设备的存储模块每次获取两个权重数据和两个输入图像数据,最大程度上保证同一时刻有两个数存入缓冲单元组中的两个子缓冲单元中。现有技术中在进行卷积神经网络计算时,将图像数据和权重相乘,然后在加法器累加,是常规的卷积运算操作,本发明在卷积运算前先对数据进行消除,将无效数据剔除不参与计算模块的计算,减少了计算的时间,降低了计算的功率,为了保证在无效数据消除后有足够的数据进入复用累加通道进行下一步计算,增加缓冲单元组对无效消除后的数据进行缓冲,三个子缓冲单元通过供数轮转机制向加法器提供数据源,保证足够数据源参加计算。如图3所示,在时刻0,输入图像数据为无效数据,被过滤;时刻2,无无效数据存在,输入图像数据2和1分别被传输入子缓冲单元0和子缓冲单元1;时刻3,无无效数据存在,输入图像数据1和3依然被传输入子缓冲单元0和子缓冲单元1;时刻3,输入图像数据5被传输入子缓冲单元2,此刻在子缓冲单元0中的数据1已经被送入复用累加通道。该轮转机制始终保持两个子缓冲单元在接收数据,一个子缓冲单元在向复用累加通道提供有效数据,确保向加法器提供足够的有效源数据。

如图2所示,本发明的计算单元针对二值或三值权重的网络特性,采用了一种可重构复用累加通道的机制进行乘法累加操作;多通道部分和寄存器组用于寄存对应每一个权重的部分和累加结果,并根据权重的值来选择向加法器提供的累加源数据;选通器用于根据权重的值来重构加法器的累加通路。二值化卷积神经网络的权值为-w1或w2两种,三值化卷积神经网络的权值为-w1、0或w2三种,由于权值为0的情况在无效数据消除模块已被消除,因此复用累加通道机制只需分两种情况:正权值累加通道和负权值累加通道。将正权值数据和负权值数据通过多通道分开计算,采用累加通道机制完成卷积操作,通过不断累加重构计算通道,计算简单,降低资源消耗。

以正权值累加通道为例,当计算单元某时刻的输入权重为正值,且输入图像数据不为0,则该输入图像数据通过无效数据消除模块进入缓冲单元组进行缓冲,此刻在多通道部分和寄存器组中的正权值部分和寄存器中的数被选中,传输入加法器中,与输入图像数据进行相加,得到结果仍然存回正权值部分和寄存器,至此完成一次正权值累加通道的计算过程。当权值为负时,该权值通过控制选通器来重构出负权值累加通道。

假设计算模块卷积核的正权值为+w1,其参与的部分和结果为Y1,负权值-w2,其参与的部分和结果为Y2,则Y1和Y2分别被存在不同的通道和寄存器组的对应寄存器中,并被传输到聚合处理单元进行下一步计算,所得到的的计算结果用Y表示:Y=w1*Y1-w2*Y2+bias,其中bias为偏置;通过卷积计算后的标准化层在简化过后执行线性计算:Y=kx+b;两结果公式合并后可得,Y=k*w1*Y1-k*w2*Y2+bias+b,该计算过程由聚合处理单元完成,其中k*w1和k*w2以及(bias+b),线下计算可得。

本发明的硬件系统实现过程中,片外设备的外部存储器通过总线接口将数据传输到片上设备的存储模块,片外设备的CPU通过总线接口发送指令给片上设备的控制模块,片上设备的控制模块控制片上设备其他模块的运行,控制模块将接收到的指令解码,传输给片上设备的配置模块、存储模块和计算模块。片上设备的配置模块接收控制模块传输的配置指令,根据配置信息重构系统的数据通路。片上设备的计算模块对卷积神经网络进行计算,计算模块根据接收到的执行指令和配置指令,从片上设备的存储单元读取数据进行计算。

片上设备的计算模块通过三维卷积阵列中的计算单元计算;输入数据,包括输入图像数据和权重数据,先通过计算单元的无效数据消除模块,将判断为零的无效数据消除,跳过计算单元,传输到缓冲单元组,无效数据消除模块的设计将无效数据跳过计算,减少了计算的数据量,降低了乘法和累加计算带来的功耗,也加快了计算的时间;缓冲单元组有三个子缓冲单元,子缓冲单元存储无效数据消除模块后的数据,并进行供数轮转,将缓冲的数据提供给加法器,供数轮转机制确保加法器有足够的有效源数据,不会因为无效数据模块的消除机制输入数据减少数据源不够。根据卷积神经网络的稀疏特性,分为二值化或三值化,二值化则权值为-w1或w2两种;三值化权值为-w1、0或w2三种,由于在无效数据消除模块已将权值为0的情况消除,因为在加法器计算后,数据分为正权值部分和以及负权值部分和,选通器根据权值不同将数据分别寄存到不同的通道和寄存器中,选通器还根据权重的值重构加法器的累加通路,可重构复用累加通道机制进行卷积操作,降低资源损耗。通过三维卷积阵列的数据传输到计算模块的聚合处理单元,经过聚合处理单元的子聚合处理单元的乘法器和加法器,得到最后累加的结果,并根据标准化层的线性化特征,将标准化层的计算合并于部分和累加部分。本发明的硬件系统减少了计算数据面积,降低系统的资源消耗,提高了计算时间,识别速度快,吞吐率高,能搞高效的完成车牌识别、人脸识别等操作,应用广泛。

以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

设计图

一种计算单元、阵列、模块、硬件系统论文和设计

相关信息详情

申请码:申请号:CN201920827602.2

申请日:2019-06-03

公开号:公开日:国家:CN

国家/省市:84(南京)

授权编号:CN209708122U

授权时间:20191129

主分类号:G06F15/78

专利分类号:G06F15/78;G06F7/50;G06N3/04;G06N3/063

范畴分类:40B;

申请人:南京宁麒智能计算芯片研究院有限公司

第一申请人:南京宁麒智能计算芯片研究院有限公司

申请人地址:210000 江苏省南京市江宁区麒麟科技创新园智汇路300号B单元二楼

发明人:李丽;陈沁雨;傅玉祥;曹华锋;何书专

第一发明人:李丽

当前权利人:南京宁麒智能计算芯片研究院有限公司

代理人:金龙

代理机构:32346

代理机构编号:江苏瑞途律师事务所 32346

优先权:关键词:当前状态:审核中

类型名称:外观设计

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

一种计算单元、阵列、模块、硬件系统论文和设计-李丽
下载Doc文档

猜你喜欢