CN112766477B - 神经网络运算电路 - Google Patents

神经网络运算电路 Download PDF

Info

Publication number
CN112766477B
CN112766477B CN202110043082.8A CN202110043082A CN112766477B CN 112766477 B CN112766477 B CN 112766477B CN 202110043082 A CN202110043082 A CN 202110043082A CN 112766477 B CN112766477 B CN 112766477B
Authority
CN
China
Prior art keywords
multiplication
neural network
full adder
calculation unit
input
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.)
Active
Application number
CN202110043082.8A
Other languages
English (en)
Other versions
CN112766477A (zh
Inventor
张峰
赵婷
马春宇
李淼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Zhimo Technology Co ltd
Original Assignee
Tianjin Zhimo Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Zhimo Technology Co ltd filed Critical Tianjin Zhimo Technology Co ltd
Priority to CN202110043082.8A priority Critical patent/CN112766477B/zh
Publication of CN112766477A publication Critical patent/CN112766477A/zh
Application granted granted Critical
Publication of CN112766477B publication Critical patent/CN112766477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transceivers (AREA)

Abstract

本发明公开了一种神经网络运算电路,涉及神经网络技术领域。包括:乘运算结构和加运算结构,乘运算结构用于对量化权重和定点量化激活值进行乘法操作,乘运算结构包括k*N个移位寄存器,加运算结构包括与乘法操作结果的数量对应的k*N个全加器,全加器用于对乘法操作后的结果进行求和操作,其中,量化权重为2的指数次幂或0。本发明提供的神经网络运算电路适用于移动端和便携式设备,提升了神经网络模型的精度及输出结果的准确性,减少了神经网络模型卷积运算对资源的消耗,提高了神经网络模型的运算速度,降低了功耗,使其能够在终端上部署,同时保证了运算精度,在满足精度提升的同时克服高精度神经网络功耗大、硬件难以实现的问题。

Description

神经网络运算电路
技术领域
本发明涉及神经网络技术领域,尤其涉及一种神经网络运算电路。
背景技术
目前,随着神经网络技术的发展,在图像处理、语音识别等领域中,深度神经网络在云端都取得了非常好的成绩。基于延迟、带宽、隐私等要求,需要把神经网络从云端推向终端,在终端进行关键词检测、人脸识别、图像分类等推理类应用。然而,伴随着精度的提升,神经网络的深度和参数量也会急剧增加,现有技术无法在满足精度提升的条件下,同时克服神经网络功耗大硬件难以实现的问题,这导致高精度的神经网络难以在移动端和便携式设备上部署。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种神经网络运算电路、模块、终端及系统。
本发明解决上述技术问题的技术方案如下:
一种神经网络运算电路,包括:乘运算结构和加运算结构,所述乘运算结构用于对量化权重和定点量化激活值进行乘法操作,所述乘运算结构包括k*N个移位寄存器,每个所述移位寄存器的位宽为P+Q,每个所述移位寄存器用于对输入的定点量化激活值进行移位操作;
所述加运算结构用于对乘法操作后的结果进行求和操作,所述加运算结构包括k*N个全加器,每个移位寄存器的数据输出端与每个全加器的数据输入端一一对应连接,N个全加器及N个移位寄存器构成一个卷积核的一次卷积运算的运算行,共构成k个运算行;
其中,k为神经元网络的卷积核个数,N为卷积核尺寸的乘积,P为定点量化激活值的位宽,Q为移位操作的位数,量化权重为2的指数次幂或0。
本发明解决上述技术问题的另一种技术方案如下:
一种神经网络运算模块,包括:封装外壳,所述封装外壳外设置有输入引脚和输出引脚,所述封装外壳内设置有乘运算结构和加运算结构,所述乘运算结构与所述输入引脚连接,用于对量化权重和定点量化激活值进行乘法操作,所述乘运算结构包括k*N个移位寄存器,每个所述移位寄存器的位宽为P+Q,每个所述移位寄存器用于对输入的定点量化激活值进行移位操作;所述加运算结构与所述输出引脚连接,所述加运算结构用于对乘法操作后的结果进行求和操作,所述加运算结构包括k*N个全加器,每个移位寄存器的数据输出端与每个全加器的数据输入端一一对应连接,N个全加器及N个移位寄存器构成一个卷积核的一次卷积运算的运算行,共构成k个运算行;
其中,k为神经元网络的卷积核个数,N为卷积核尺寸的乘积,P为定点量化激活值的位宽,Q为移位操作的位数,量化权重为2的指数次幂或0。
本发明解决上述技术问题的另一种技术方案如下:
一种终端,包括如上述技术方案所述的神经网络运算电路。
本发明解决上述技术问题的另一种技术方案如下:
一种神经网络运算系统,包括如上述技术方案所述的神经网络运算电路。
本发明的有益效果是:本发明提供的神经网络运算电路适用于移动端和便携式设备,通过对神经网络激活值进行设定比特位的定点量化,对权重进行2的指数次幂或0量化,提升了神经网络模型的精度,提升了神经网络模型输出结果的准确性,通过乘运算电路和加运算电路实现卷积操作,通过移位寄存器实现乘法操作,通过循环复用全加器实现加法运算,输入数据及部分和采用流水线式传输,减少了神经网络模型卷积运算对资源的消耗,提高了神经网络模型的运算速度,降低了功耗,使其能够在终端上部署,同时保证了运算精度,在满足精度提升的同时克服高精度神经网络功耗大、硬件难以实现的问题。此外,可以根据应用场景动态调整计算精度,高精度时,通过增加迭代次数,提升计算精度;低功耗时,精度要求不高,可以减少迭代次数,降低功耗。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明神经网络运算电路的实施例提供的结构框架示意图;
图2为本发明神经网络运算电路的其他实施例提供的运算行结构示意图;
图3为本发明神经网络运算电路的实施例提供的卷积运算示意图;
图4为本发明神经网络运算电路的实施例提供的卷积运算时序示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
神经网络量化算法为网络的终端实现提供了极大的便利。然而,若同时对网络的权重和激活值都进行1bit量化会使得网络的精度有较大的损失;若同时对网络的权重和激活值都进行多bit量化将急剧增加乘加操作。一个卷积神经网络中包含数百万甚至数亿的MAC操作,传统的数字电路进行如此多的MAC操作功耗是非常高的。
因此,亟需在算法和硬件中对神经网络的实现进行改进,以适应网络精度的提升需求,便于在移动端和便携式设备上部署。
如图1所示,为本发明神经网络运算电路的实施例提供的结构框架示意图,该神经网络运算电路可以部署在手机、电脑、笔记本电脑等终端中,包括:乘运算结构和加运算结构,乘运算结构用于对量化权重和定点量化激活值进行乘法操作,乘运算结构包括k*N个移位寄存器1,每个移位寄存器1的位宽为P+Q,每个移位寄存器1用于对输入的定点量化激活值进行移位操作;
加运算结构用于对乘法操作后的结果进行求和操作,加运算结构包括k*N个全加器2,每个移位寄存器1的数据输出端与每个全加器2的数据输入端A一一对应连接,N个全加器2及N个移位寄存器1构成一个卷积核的一次卷积运算的运算行,共构成k个运算行;
其中,k为神经元网络的卷积核个数,N为卷积核尺寸的乘积,P为定点量化激活值的位宽,Q为移位操作的位数,量化权重为2的指数次幂或0。
具体地,移位操作方法为:定点量化激活值的位宽为P,权重量化结果为{±2Q1,···,±2Q2,0},Q1和Q2都是整数,且Q2≤Q1,Q=max(abs(Q1),abs(Q2)),若权重量化结果为0,则移位寄存器1输出为0;若权重量化结果为1,则移位寄存器1保持不变;若权重量化结果为其他数,移位寄存器1进行Q个移位操作,其中,abs表示取绝对值。
例如,假设Q1=4,Q2=1,那么权重量化结果为{±21,±22,±23,±24,0}。
应理解,如图2所示,定点量化激活值Xij与量化权重值Wij进行乘运算,乘运算输出可为正数、负数或0。
如图3所示,给出了一种示例性的卷积运算示意图,假定神经元网络输入数据尺寸为H*G*M,卷积核尺寸为E*E*M,卷积核个数为k,即输出数据有k个通道,每个卷积核与输入数据进行一次卷积操作,乘运算结果的个数为N=E*E*M,部分和位宽为R,时钟周期为t。整个运算系统包含k行*N列个全加器2和k行*N列个移位寄存器1,其中每行每次计算一个卷积核的一次卷积运算,得到一个输出通道的一个输出数据。
量化权重加载至寄存器,输入数据流水线式加载至移位寄存器1中,输入数据基于量化的权重进行移位操作,从而完成乘运算。通过采用流水线方式传递数据,具有系统结构简单的优点,减少了神经网络模型卷积运算对资源的消耗,可进行大量卷积操作,缩短卷积操作时间,提高了神经网络模型的运算速度,降低了功耗。
图1中,X表示输入的定点量化激活值,W表示量化权重。
需要说明的是,乘运算结构的功能可以通过现有电路结构实现,例如,乘法器,这些结构为现有技术,不再赘述。
完成卷积操作之后,所有输出通道的输出数据经过处理后写入存储器中,作为神经网络下一层的输入数据。
本实施例提供的神经网络运算电路适用于移动端和便携式设备,通过对神经网络激活值进行设定比特位的定点量化,对权重进行2的指数次幂或0量化,提升了神经网络模型的精度,提升了神经网络模型输出结果的准确性,通过乘运算电路和加运算电路实现卷积操作,通过移位寄存器实现乘法操作,通过循环复用全加器实现加法运算,输入数据及部分和采用流水线式传输,减少了神经网络模型卷积运算对资源的消耗,提高了神经网络模型的运算速度,降低了功耗,使其能够在终端上部署,同时保证了运算精度,在满足精度提升的同时克服高精度神经网络功耗大、硬件难以实现的问题。此外,可以根据应用场景动态调整计算精度,高精度时,通过增加迭代次数,提升计算精度;低功耗时,精度要求不高,可以减少迭代次数,降低功耗。
可选地,在一些可能的实现方式中,如图2所示,全加器包括数据输入端A、部分和输入端B、进位输入端Cin、部分和输出端S以及进位输出端Cout,其中,每个运算行内的第i个全加器的数据输入端A与第i个移位寄存器的数据输出端连接,第i个全加器的部分和输入端B与第i-1个全加器的部分和输出端S连接,第i个全加器的进位输入端Cin与第i个全加器的进位输出端Cout连接;
其中,i=1,2,…,N。
下面以1bit全加器为例,结合图2和图4,对工作流程进行说明。
图2中共有K个卷积核,对应k个运算行,共进行M(E*E)个MAC操作,对应M列,S_REG表示移位寄存器。
如图4所示,量化权重加载至寄存器,输入数据流水线式加载至移位寄存器中,输入数据基于量化的权重进行移位操作,从而完成乘运算。开始计时,在0时刻,第一行第一列全加器部分和S0为0,进位C0为0,第一行第一列乘运算结果的第一位Z10与S0、C0进行加运算得到S11、C11,C11复用,仍与第一行第一列全加器的进位输入端连接,S11传递至第一行第二列全加器的部分和输入端B;
在t时刻,第一行第一列乘运算结果的第二位Z11与S0、C11进行加运算得到S12和C12,与此同时,第一行第二列乘运算结果的第一位Z20与第一行第一列全加器的部分和输出S11、C0进行加运算得到S21、C21,C21复用,仍与第一行第二列全加器的进位输入端连接,S21传递至第一行第三列全加器的部分和输入端B;
在2t时刻,第一行第一列乘运算结果的第三位Z12与S0、C12进行加运算得到S13和C13,与此同时,第一行第二列乘运算结果的第二位Z21与第一行第一列全加器的部分和输出S12、C21进行加运算得到S22、C22,与此同时,第一行第三列乘运算结果的第一位Z30与第一行第二列全加器的部分和输出S21、C0进行加运算得到S31、C31,C31复用,仍与第一行第三列全加器的进位输入端Cin连接,S31则传递至第一行第四列全加器的部分和输入端B。
以此类推,在(N-1)t时刻,第一行第N列乘运算结果的第一位ZN0与S(N-1)0、C0进行加运算得到SN1,直至(R+N-1)t时刻,第一个卷积核的第一次卷积运算结束,得到第一个输出通道的第一个输出数据y(1) 11
在Rt时刻,第一个输入数据X(1) 11与其对应的权重完成卷积运算后,X(1) 11进行卷积核滑窗,即将X(1) 12加载至第一行第一列移位寄存器,开始计算第一个输出通道的第二个输出数据y(1) 12
与此同时,X(1) 11纵向传递至第二行第一列的移位寄存器,开始第二个卷积核的卷积运算,在(R+N-1)t时刻,第二行第N列乘运算结果的第一位ZN0与S(N-1)0、C0进行加运算得到SN1,直至(2R+N-1)t时刻,第二个卷积核的第一次卷积运算结束,得到第二个输出通道的第一个输出数据y(2) 11
以此类推,在(k-1)Rt时刻,第k行第一列乘运算结果的第一位Z10与S0、C0进行加运算得到S11,在((k-1)R+N-1)t时刻,第k行第N列乘运算结果的第一位ZN0与S(N-1)0、C0进行加运算得到SN1,直至(kR+N-1)t时刻,第k个卷积核的第一次卷积运算结束,得到第k个输出通道的第一个输出数据y(k) 11
可选地,在一些可能的实现方式中,全加器为1bit全加器。
可选地,在一些可能的实现方式中,全加器为2bit全加器、4bit全加器或8bit全加器。
通过采用2bit、4bit或8bit等全加器代替1bit全加器以实现多bit输入数据的加法操作,能够提高运算速度。
应理解,在一些可能的实现方式中,可以包含上述各实施方式的全部或部分。
在本发明的其他实施例中,还提供一种神经网络运算模块,包括:封装外壳,封装外壳外设置有输入引脚和输出引脚,封装外壳内设置有乘运算结构和加运算结构,乘运算结构与输入引脚连接,用于对量化权重和定点量化激活值进行乘法操作,乘运算结构包括k*N个移位寄存器,每个移位寄存器的位宽为P+Q,每个移位寄存器用于对输入的定点量化激活值进行移位操作;加运算结构与输出引脚连接,加运算结构用于对乘法操作后的结果进行求和操作,加运算结构包括k*N个全加器,每个移位寄存器的数据输出端与每个全加器的数据输入端一一对应连接,N个全加器及N个移位寄存器构成一个卷积核的一次卷积运算的运算行,共构成k个运算行;
其中,k为神经元网络的卷积核个数,N为卷积核尺寸的乘积,P为定点量化激活值的位宽,Q为移位操作的位数,量化权重为2的指数次幂或0。
在本发明的其他实施例中,还提供一种终端,包括如上述任意实施方式公开的神经网络运算电路。
在本发明的其他实施例中,还提供一种神经网络运算系统,包括如上述任意实施方式公开的神经网络运算电路。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (7)

1.一种神经网络运算电路,其特征在于,包括:乘运算结构和加运算结构,所述乘运算结构用于对量化权重和定点量化激活值进行乘法操作,所述乘运算结构包括k*N个移位寄存器,每个所述移位寄存器的位宽为P+Q,每个所述移位寄存器用于对输入的定点量化激活值进行移位操作;
所述加运算结构用于对乘法操作后的结果进行求和操作,所述加运算结构包括k*N个全加器,每个移位寄存器的数据输出端与每个全加器的数据输入端一一对应连接,N个全加器及N个移位寄存器构成一个卷积核的一次卷积运算的运算行,共构成k个运算行;
其中,k为神经元网络的卷积核个数,N为卷积核尺寸的乘积,P为定点量化激活值的位宽,Q为移位操作的位数,量化权重为2的指数次幂或0;
其中,对于每个所述卷积核,在通过所述卷积核对应的N个移位寄存器进行乘法操作和通过N个全加器进行求和操作时,将一个所述移位寄存器和一个所述全加器作为一个乘加计算单元,采用流水线式的方式依次将各个所述乘加计算单元中的一个所述乘加计算单元的计算结果加载至相邻的下一个乘加计算单元中的全加器中,并在得到每个所述乘加计算单元的计算结果后,将每个所述乘加计算单元对应的输入数据加载至该卷积核的下一个卷积核的对应位置的乘加计算单元中。
2.根据权利要求1所述的神经网络运算电路,其特征在于,所述全加器包括数据输入端、部分和输入端、进位输入端、部分和输出端以及进位输出端,其中,每个运算行内的第i个全加器的数据输入端与第i个移位寄存器的数据输出端连接,第i个全加器的部分和输入端与第i-1个全加器的部分和输出端连接,第i个全加器的进位输入端与第i个全加器的进位输出端连接;
其中,i=1,2,…,N。
3.根据权利要求1或2所述的神经网络运算电路,其特征在于,所述全加器为1bit全加器。
4.根据权利要求1或2所述的神经网络运算电路,其特征在于,所述全加器为2bit全加器、4bit全加器或8bit全加器。
5.一种神经网络运算模块,其特征在于,包括:封装外壳,所述封装外壳外设置有输入引脚和输出引脚,所述封装外壳内设置有乘运算结构和加运算结构,所述乘运算结构与所述输入引脚连接,用于对量化权重和定点量化激活值进行乘法操作,所述乘运算结构包括k*N个移位寄存器,每个所述移位寄存器的位宽为P+Q,每个所述移位寄存器用于对输入的定点量化激活值进行移位操作;所述加运算结构与所述输出引脚连接,所述加运算结构用于对乘法操作后的结果进行求和操作,所述加运算结构包括k*N个全加器,每个移位寄存器的数据输出端与每个全加器的数据输入端一一对应连接,N个全加器及N个移位寄存器构成一个卷积核的一次卷积运算的运算行,共构成k个运算行;
其中,k为神经元网络的卷积核个数,N为卷积核尺寸的乘积,P为定点量化激活值的位宽,Q为移位操作的位数,量化权重为2的指数次幂或0;
其中,对于每个所述卷积核,在通过所述卷积核对应的N个移位寄存器进行乘法操作和通过N个全加器进行求和操作时,将一个所述移位寄存器和一个所述全加器作为一个乘加计算单元,采用流水线式的方式依次将各个所述乘加计算单元中的一个所述乘加计算单元的计算结果加载至相邻的下一个乘加计算单元中的全加器中,并在得到每个所述乘加计算单元的计算结果后,将每个所述乘加计算单元对应的输入数据加载至该卷积核的下一个卷积核的对应位置的乘加计算单元中。
6.一种终端,其特征在于,包括如权利要求1至4中任一项所述的神经网络运算电路。
7.一种神经网络运算系统,其特征在于,包括如权利要求1至4中任一项所述的神经网络运算电路。
CN202110043082.8A 2021-01-13 2021-01-13 神经网络运算电路 Active CN112766477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110043082.8A CN112766477B (zh) 2021-01-13 2021-01-13 神经网络运算电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110043082.8A CN112766477B (zh) 2021-01-13 2021-01-13 神经网络运算电路

Publications (2)

Publication Number Publication Date
CN112766477A CN112766477A (zh) 2021-05-07
CN112766477B true CN112766477B (zh) 2023-05-30

Family

ID=75700120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110043082.8A Active CN112766477B (zh) 2021-01-13 2021-01-13 神经网络运算电路

Country Status (1)

Country Link
CN (1) CN112766477B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253195A (en) * 1991-09-26 1993-10-12 International Business Machines Corporation High speed multiplier
CN106066783A (zh) * 2016-06-02 2016-11-02 华为技术有限公司 基于幂次权重量化的神经网络前向运算硬件结构
CN108874445A (zh) * 2017-10-30 2018-11-23 上海寒武纪信息科技有限公司 神经网络处理器及使用处理器执行向量点积指令的方法
CN110991623B (zh) * 2019-12-20 2024-05-28 中国科学院自动化研究所 基于数模混合神经元的神经网络运算系统
CN111985523A (zh) * 2020-06-28 2020-11-24 合肥工业大学 基于知识蒸馏训练的2指数幂深度神经网络量化方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路

Also Published As

Publication number Publication date
CN112766477A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
US10096134B2 (en) Data compaction and memory bandwidth reduction for sparse neural networks
EP3499428A1 (en) Method and electronic device for convolution calculation in neutral network
CN108345939B (zh) 基于定点运算的神经网络
US10491239B1 (en) Large-scale computations using an adaptive numerical format
CN110543939B (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
CN111652360B (zh) 一种基于脉动阵列的卷积运算装置
CN111985495A (zh) 模型部署方法、装置、系统及存储介质
US20210294874A1 (en) Quantization method based on hardware of in-memory computing and system thereof
CN112836813A (zh) 一种用于混合精度神经网络计算的可重构脉动阵列系统
CN110109646A (zh) 数据处理方法、装置和乘加器及存储介质
CN113741858A (zh) 存内乘加计算方法、装置、芯片和计算设备
CN110222833A (zh) 一种用于神经网络的数据处理电路
Niu et al. Reuse kernels or activations? A flexible dataflow for low-latency spectral CNN acceleration
CN110210611B (zh) 一种用于卷积神经网络计算的动态自适应数据截断方法
CN111008691A (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
CN111344719A (zh) 基于深度神经网络的数据处理方法、装置及移动设备
CN112561050A (zh) 一种神经网络模型训练方法及装置
CN118014030A (zh) 一种神经网络加速器及系统
CN112766477B (zh) 神经网络运算电路
CN111222090B (zh) 卷积计算模块、神经网络处理器、芯片和电子设备
US11436302B2 (en) Electronic system for computing items of an outer product matrix
CN111652359A (zh) 用于矩阵运算的乘法器阵列和用于卷积运算的乘法器阵列
Sanjeet et al. Energy-efficient FPGA implementation of power-of-2 weights-based convolutional neural networks with low bit-precision input images
CN113283591B (zh) 基于Winograd算法和近似乘法器的高效卷积实现方法及装置

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
GR01 Patent grant
GR01 Patent grant