CN110069444A - 一种计算单元、阵列、模块、硬件系统及实现方法 - Google Patents
一种计算单元、阵列、模块、硬件系统及实现方法 Download PDFInfo
- Publication number
- CN110069444A CN110069444A CN201910476496.2A CN201910476496A CN110069444A CN 110069444 A CN110069444 A CN 110069444A CN 201910476496 A CN201910476496 A CN 201910476496A CN 110069444 A CN110069444 A CN 110069444A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- piece
- equipment
- computing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000001186 cumulative effect Effects 0.000 claims abstract description 32
- 230000007246 mechanism Effects 0.000 claims abstract description 30
- 238000009825 accumulation Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 37
- 239000000872 buffer Substances 0.000 claims description 36
- 238000006116 polymerization reaction Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 12
- 230000003139 buffering effect Effects 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 7
- 238000000151 deposition Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 3
- 238000004148 unit process Methods 0.000 claims 1
- 238000013527 convolutional neural network Methods 0.000 abstract description 17
- 238000005265 energy consumption Methods 0.000 abstract description 3
- 238000013138 pruning Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
- Mathematical Optimization (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种计算单元、阵列、模块、硬件系统及实现方法,属于人工智能算法硬件加速领域。针对现有技术中存在的稀疏化卷积神经网络算法数据庞大,计算时间长的问题,本发明在计算单元设计了一种无效数据移除机制,可将无效的权重或输入图像数据移除,减少计算时间,降低乘法和累加计算带来的功耗;设计一种多通道子计算单元,采用复用累加通道机制完成卷积操作,降低资源消耗;在无效数据移除的情况下,本发明还设计了一种供数轮转机制,可保持计算单元的供数充足;本发明因功耗低、面积小、吞吐率高、识别速度快,适用于移动端的应用,如智能家居、智慧城市,能够高效完成车牌识别、人脸识别等。
Description
技术领域
本发明涉及人工智能算法硬件加速领域,特别涉及一种计算单元、阵列、模块、硬件系统及实现方法。
背景技术
卷积神经网络(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的情况消除,因为在加法器计算后,数据分为正权值部分和以及负权值部分和,选通器根据权值不同将数据分别寄存到不同的通道和寄存器中,选通器还根据权重的值重构加法器的累加通路,可重构复用累加通道机制进行卷积操作,降低资源损耗。通过三维卷积阵列的数据传输到计算模块的聚合处理单元,经过聚合处理单元的子聚合处理单元的乘法器和加法器,得到最后累加的结果,并根据标准化层的线性化特征,将标准化层的计算合并于部分和累加部分。本发明的硬件系统减少了计算数据面积,降低系统的资源消耗,提高了计算时间,识别速度快,吞吐率高,能搞高效的完成车牌识别、人脸识别等操作,应用广泛。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种计算单元,其特征在于:包括一个无效数据模块、一个缓冲单元组、一个加法器、一个多通道部分、寄存器组以及多个选通器,输入数据经过无效数据模块处理后传输到缓冲单元组,缓冲单元组对数据缓冲后提供有效数据源给加法器,数据通过加法器后经过多通道部分和寄存器组,最后数据分为正权值部分和负权值部分再通过选通器传输到加法器。
2.根据权利要求1所述的一种计算单元,其特征在于,无效数据模块判断输入数据是否为零,输入数据为零判为无效数据跳过计算单元。
3.根据权利要求2所述的一种计算单元,其特征在于,无效数据模块的输入数据为系统输入图像数据或权重数据。
4.根据权利要求1所述的一种计算单元,其特征在于,缓冲单元组包含多个子缓冲单元,用于缓冲经过无效数据消除模块的数据,输入数据经过子缓冲单元后通过供数轮转机制确保向加法器提供足够的有效数据源。
5.根据权利要求1所述的一种计算单元,其特征在于,所述计算单元采用了一种可重构复用累加通道的机制进行乘法累加操作,多通道部分和寄存器组用于寄存对应每一个权重的部分和累加结果,并根据权重的值来选择向加法器提供的累加源数据重构累加通道,选通器用于根据权重的值来重构加法器的累加通路。
6.一种阵列,包括权利要求1-5任一所述的计算单元,其特征在于,所述阵列由计算单元呈阵列分布,阵列有Z片,每一片分别有Y行构成,每一行有X个计算单元;所述阵列用于进行乘累加计算,阵列的每一行计算单元接收相同的输入图像数据,阵列的每一列的计算单元接收相同的权重数据。
7.一种模块,包括根据权利要求6所述的一种阵列,其特征在于,还包括一个聚合处理单元,所述聚合处理单元处理阵列卷积计算的部分和的加法计算、标准化层处理和激活函数处理。
8.根据权利要求7所述的一种模块,其特征在于,聚合处理单元包括多个子聚合处理单元,每个子聚合处理单元包括两个常数乘法器和一个加法器,每个子聚合处理单元对应处理所述阵列一片计算单元输出的数据;所述阵列计算出的部分和通过聚合处理单元进行加法运算,得到最后乘累加的结果;并根据标准化层的线性化特征,将标准化层的计算合并于部分和累加部分。
9.一种硬件系统,包括片上设备和片外设备,其特征在于,片上设备包括权利要求7-8任一所述的一种模块,为计算模块;片上设备还包括控制模块、配置模块、存储模块、总线接口,片外设备包括CPU和外部存储模块;片外设备的CPU与片上设备的控制模块电连接,片外设备的外部存储器和片上设备的存储模块电连接,片上设备的控制模块与片上设备的配置模块、存储模块和计算模块电连接,片上设备的配置模块和片上设备的存储模块和计算模块电连接,片上设备的存储模块和计算模块电连接。
10.根据权利要求9所述的一种硬件系统的实现方法,其特征在于,片外设备的CPU的指令通过总线接口读入到片上设备的控制模块进行解码,解码后的配置指令传输入片上设备的配置模块中,数据通路根据配置信息进行重构;片上设备的控制模块发出的执行指令控制每个模块的任务执行开始或结束;片外设备的存储单元的数据由总线接口传输入片上设备的存储模块;片上设备的计算模块根据接收到的执行指令和配置指令,从片上设备的存储单元读取数据进行计算,计算结果按指令存回片上设备的存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910476496.2A CN110069444A (zh) | 2019-06-03 | 2019-06-03 | 一种计算单元、阵列、模块、硬件系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910476496.2A CN110069444A (zh) | 2019-06-03 | 2019-06-03 | 一种计算单元、阵列、模块、硬件系统及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110069444A true CN110069444A (zh) | 2019-07-30 |
Family
ID=67372364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910476496.2A Pending CN110069444A (zh) | 2019-06-03 | 2019-06-03 | 一种计算单元、阵列、模块、硬件系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069444A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214326A (zh) * | 2020-10-22 | 2021-01-12 | 南京博芯电子技术有限公司 | 一种面向稀疏递归神经网络的均衡运算加速方法与系统 |
CN112346704A (zh) * | 2020-11-23 | 2021-02-09 | 华中科技大学 | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 |
CN112488908A (zh) * | 2020-12-18 | 2021-03-12 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
CN114372012A (zh) * | 2021-12-21 | 2022-04-19 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN115459896A (zh) * | 2022-11-11 | 2022-12-09 | 北京超摩科技有限公司 | 多通道数据传输的控制方法、控制系统、介质及芯片 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
CN106875011A (zh) * | 2017-01-12 | 2017-06-20 | 南京大学 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
CN108133264A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 执行高效3维卷积的神经网络单元 |
CN108133263A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 神经网络单元 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
WO2018207458A1 (ja) * | 2017-05-08 | 2018-11-15 | 株式会社メガチップス | 二値化ニューラルネットワーク用プロセッサ、データ処理方法、および、プログラム |
CN109472356A (zh) * | 2018-12-29 | 2019-03-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种可重构神经网络算法的加速装置及方法 |
CN109635937A (zh) * | 2018-12-30 | 2019-04-16 | 南京大学 | 一种面向低位宽卷积神经网络的低功耗系统 |
US20190164043A1 (en) * | 2017-11-27 | 2019-05-30 | Samsung Electronics Co., Ltd. | Low-power hardware acceleration method and system for convolution neural network computation |
CN209708122U (zh) * | 2019-06-03 | 2019-11-29 | 南京宁麒智能计算芯片研究院有限公司 | 一种计算单元、阵列、模块、硬件系统 |
-
2019
- 2019-06-03 CN CN201910476496.2A patent/CN110069444A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
CN108133264A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 执行高效3维卷积的神经网络单元 |
CN108133263A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 神经网络单元 |
CN106875011A (zh) * | 2017-01-12 | 2017-06-20 | 南京大学 | 二值权重卷积神经网络加速器的硬件架构及其计算流程 |
WO2018207458A1 (ja) * | 2017-05-08 | 2018-11-15 | 株式会社メガチップス | 二値化ニューラルネットワーク用プロセッサ、データ処理方法、および、プログラム |
US20190164043A1 (en) * | 2017-11-27 | 2019-05-30 | Samsung Electronics Co., Ltd. | Low-power hardware acceleration method and system for convolution neural network computation |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109472356A (zh) * | 2018-12-29 | 2019-03-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种可重构神经网络算法的加速装置及方法 |
CN109635937A (zh) * | 2018-12-30 | 2019-04-16 | 南京大学 | 一种面向低位宽卷积神经网络的低功耗系统 |
CN209708122U (zh) * | 2019-06-03 | 2019-11-29 | 南京宁麒智能计算芯片研究院有限公司 | 一种计算单元、阵列、模块、硬件系统 |
Non-Patent Citations (2)
Title |
---|
LI, XIN , AND C. LIU: "Prune the Convolutional Neural Networks with Sparse Shrink", 《ELECTRONIC IMAGING》, 8 August 2017 (2017-08-08), pages 97 - 101 * |
张榜;来金梅;: "一种基于FPGA的卷积神经网络加速器的设计与实现", 复旦学报(自然科学版), no. 02, 15 April 2018 (2018-04-15), pages 111 - 117 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214326A (zh) * | 2020-10-22 | 2021-01-12 | 南京博芯电子技术有限公司 | 一种面向稀疏递归神经网络的均衡运算加速方法与系统 |
WO2022082836A1 (zh) * | 2020-10-22 | 2022-04-28 | 南京博芯电子技术有限公司 | 一种面向稀疏递归神经网络的均衡运算加速方法与系统 |
CN112346704A (zh) * | 2020-11-23 | 2021-02-09 | 华中科技大学 | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 |
CN112346704B (zh) * | 2020-11-23 | 2021-09-17 | 华中科技大学 | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 |
CN112488908A (zh) * | 2020-12-18 | 2021-03-12 | 时擎智能科技(上海)有限公司 | 一种计算装置、计算方法、存储介质及终端 |
CN114372012A (zh) * | 2021-12-21 | 2022-04-19 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN114372012B (zh) * | 2021-12-21 | 2024-02-20 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN115459896A (zh) * | 2022-11-11 | 2022-12-09 | 北京超摩科技有限公司 | 多通道数据传输的控制方法、控制系统、介质及芯片 |
CN115459896B (zh) * | 2022-11-11 | 2023-03-03 | 北京超摩科技有限公司 | 多通道数据传输的控制方法、控制系统、介质及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069444A (zh) | 一种计算单元、阵列、模块、硬件系统及实现方法 | |
CN209708122U (zh) | 一种计算单元、阵列、模块、硬件系统 | |
CN109328361B (zh) | 用于深度神经网络的加速器 | |
CN112465110B (zh) | 一种卷积神经网络计算优化的硬件加速装置 | |
CN110070178A (zh) | 一种卷积神经网络计算装置及方法 | |
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
CN111062472B (zh) | 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法 | |
CN110378468A (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN108932548A (zh) | 一种基于fpga的稀疏度神经网络加速系统 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
CN109934331A (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
CN111723947A (zh) | 一种联邦学习模型的训练方法及装置 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
Alawad et al. | Stochastic-based deep convolutional networks with reconfigurable logic fabric | |
CN112836813B (zh) | 一种用于混合精度神经网络计算的可重构脉动阵列系统 | |
CN102356554B (zh) | Turbo码数据交织处理方法和用于交织Turbo码数据的交织器 | |
WO2022134465A1 (zh) | 加速可重构处理器运行的稀疏化数据处理方法和装置 | |
CN109993293A (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
Shu et al. | High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN116431562B (zh) | 一种基于加速处理器的多头注意力机制融合计算分配方法 | |
CN107831823B (zh) | 一种用于分析和优化电网拓扑结构的高斯消元方法 | |
Kuang et al. | Entropy-based gradient compression for distributed deep learning | |
CN115293978A (zh) | 卷积运算电路和方法、图像处理设备 | |
EP4168943A1 (en) | System and method for accelerating training of deep learning networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |