CN113033769A - 一种概率计算神经网络方法和异步逻辑电路 - Google Patents
一种概率计算神经网络方法和异步逻辑电路 Download PDFInfo
- Publication number
- CN113033769A CN113033769A CN202110229150.XA CN202110229150A CN113033769A CN 113033769 A CN113033769 A CN 113033769A CN 202110229150 A CN202110229150 A CN 202110229150A CN 113033769 A CN113033769 A CN 113033769A
- Authority
- CN
- China
- Prior art keywords
- value
- neural network
- random number
- input activation
- pulse
- 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.)
- Granted
Links
Images
Classifications
-
- 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/047—Probabilistic or stochastic 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)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Dc Digital Transmission (AREA)
Abstract
本申请公开了一种概率计算神经网络方法及异步逻辑电路,其中,电路结构包括:异步逻辑控制电路、概率计算脉冲生成器、突触运算结构与激活函数运算结构。概率计算神经网络运算过程包含以下步骤:神经网络输入值经过概率计算脉冲生成器生成离散脉冲串,离散脉冲串经过对应突触运算结构获得乘积结果,乘积结果输入激活函数运算结构获得激活结果。本发明使用概率计算的编码机制实现神经网络运算,发挥脉冲神经网络类脑神经结构的特性,既能充分利用人工神经网络在识别分类应用中高准确率的优点,又能有效利用概率计算脉冲编码机制实现电路的低功耗设计。
Description
技术领域
本申请涉及人工智能及集成电路设计领域,尤其涉及一种概率计算神经网络及异步逻辑构造。
背景技术
人工神经网络广泛应用于计算机视觉领域,在图像分类、目标识别与视频监测等方面已经获得了较为成熟的应用。但随着神经网络识别率的逐步升高,神经网络结构变得愈加复杂,网络参数的数量呈现几何倍增长,因而使用硬件电路实现人工神经网络功能对于电路的运算速率与功耗产生了严峻的考验。
而作为计算电路核心的冯诺依曼架构因其数据存储与计算分立、控制单元独立运行的特性,在面对海量的计算数据与片上内存带宽的矛盾时会导致系统的计算瓶颈。
因其参数量巨大、运算步骤众多,神经网络的推理运算过程在传统冯诺依曼结构的电路系统中的实现具有较多不利之处:使用CPU进行运算很容易达到计算瓶颈,速率不高;使用GPU进行运算所花费功耗较高,无法实现边缘运算,因此需要设计新的电路架构实现高效率与低功耗并行的神经网络运算。
发明内容
为解决神经网络在电路上进行运算时算力低、功耗高、不适合在边缘运算中实现的问题,本申请提出一种概率计算神经网络方法和异步逻辑电路。
本申请实施例提供一种概率计算神经网络方法,在神经网络的每一层,根据多个输入激活值和多个权重值计算该层的输出值,本方法包括以下步骤:
对每一个输入激活值进行离散概率计算脉冲编码,生成驱动信号,所述驱动信号为离散脉冲串,其中离散脉冲的数量表示输入激活值,离散脉冲的位置随机分布;
通过所述驱动信号控制累加器,每一个离散脉冲使权重值自加一次;进而多个所述输入激活值生成的驱动信号分别控制累加器,实现多个所述输入激活值分别和多个所述权重值进行乘法计算,所得到的全部乘积经过累加获得乘累加结果;
所述乘累加结果经过激活函数运算获得该层神经元的输出值,即下层神经网络的输入值。
优选地,任意一个输入激活值与概率计算脉冲生成器所生成的2N个伪随机数进行比较,生成一个有2N个周期的驱动信号,当所述输入激活值大于等于第i个随机数时,在第i个周期输出离散脉冲数值为1;当输入激活值小于第i个随机数时,在第i个周期输出离散脉冲数值为0,其中,i=1~2N,N为输入激活值的二进制位宽。
本申请实施例还提出一种概率计算神经网络异步逻辑电路,用于实现本申请任意一项方法实施例,包括异步逻辑控制电路、概率计算脉冲生成器、突触运算结构和激活函数运算结构;
所述异步逻辑控制电路,用于产生异步时钟信号;
所述概率计算脉冲生成器,用于将输入激活值转换为对应的离散脉冲串;
所述突触运算结构,用于实现输入激活值与权重的乘法;
所述激活函数运算结构,用于实现对多个乘积的相加,并对乘累加结果进行激活函数运算。
优选地,所述异步逻辑控制电路由异步控制单元使用异步控制单元构成流水线,分别控制所述概率计算脉冲生成器、突触运算结构与激活函数运算结构。进一步优选地,所述异步控制单元为Muller C单元、click单元或Mousetrap单元。
优选地,所述概率计算脉冲生成器包含伪随机数生成器和比较器。所述伪随机数生成器,用于在每一个随机数生成周期内,生成2N个伪随机数。所述比较器,用于比较所述伪随机数和输入激活值,生成一个有2N个周期的驱动信号,当所述输入激活值大于等于第i个随机数时,在第i个周期输出离散脉冲数值为1;当输入激活值小于第i个随机数时,在第i个周期输出离散脉冲数值为0,其中,i=1~2N,N为输入激活值的二进制位宽。
优选地,述突触运算结构包含多路选择器和累加器。所述多路选择器,用于选择所述输入激活值生成的驱动信号和权重值。所述突出运算结构,用于根据离散脉冲串的脉冲数量,累加权重值,当离散脉冲串数值为1时,累加结果加一次权重值;当离散脉冲串数值为0时,累加结果不变。伪随机数生成器在一个随机数生成周期结束时,突触运算结构中的累加结果输出至激活函数运算结构。
优选地,所述激活函数运算结构包含加法器和比较器。所述加法器,用于对所述突出运算结构输出的多个累加结果进行累加,得到乘累加结果。所述比较器,用于对所述乘累加结果最高位进行正、负判定,乘累加结果高位为0,则不变动地输出乘累加结果;乘累加结果最高位为1,则输出0。
作为本申请装置的最佳实施例,对于一个输入激活值,当需要实现与多个权重的乘法时,仅需通过一个概率计算脉冲生成器产生对应的离散脉冲串,然后将所述离散脉冲串传送至多个存储了单一权重的突触运算结构,即可完成一个输入值与多个权重的乘法运算。
作为本申请装置的最佳实施例,对多个输入激活值进行离散概率计算脉冲编码时,仅需通过一个随机数生成器产生伪随机数序列,与所述多个输入激活值进行比较,同时生成多个驱动信号,每一个驱动信号来自一个输入激活值。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
生物神经元细胞采用峰电位脉冲串传递信息,而来源于此的脉冲神经网络具备以离散脉冲作为输入的网络结构,在实现高性能、网络稀疏性与缓解过拟合方面具有优势。
相较于现有神经网络加速器设计方案使用二进制数作为运算数据流与使用同步电路设计电路的方案,本申请提出使用概率计算将二进制数转换为离散脉冲串进行乘累加运算的方案以缩减电路资源消耗,从而减小功耗花费,此外使用异步电路设计进一步减小功耗,提高电路运行速率。
该结构通过概率计算实现了使用脉冲编码机制运行神经网络运算,在神经网络运算过程中发挥脉冲编码类脑神经结构的特性,既能充分利用人工神经网络在识别分类应用中高准确率的优点,又能有效利用概率计算脉冲编码机制实现电路的低功耗设计。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为脉冲神经网络神经元模型示意图;
图2为本申请提出的一种概率计算申请网络方法的实施例流程图;
图3为本发明提出的概率计算神经网络异步逻辑电路实施例;
图4为本发明实施例的异步逻辑控制电路示意图;
图5为可用作异步控制单元的Click单元电路图;
图6为可用作异步控制单元的Muller C单元电路图;
图7为可用作异步控制单元的Mousetrap单元电路图;
图8为一步控制单元的时序逻辑波形图;
图9为本申请所述电路完成一次全连接层运算的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为脉冲神经网络神经元模型示意图。
脉冲神经网络神经元模型示意图如图1所示。从图1可以看出,相较于传统的神经网络神经元模型,脉冲神经网络神经元模型主要具有以下区别:
传统的神经网络系统输入形式为数字,范围为全体自然数;而脉冲神经网络系统输入形式为脉冲串,在数字电路中转化为离散脉冲串,即在一个时刻下输入为0或1。
传统的神经网络输入值xi(t)与对应的突触权重值(图中的w1,w2,…,wn)一一进行乘法,多个乘积结果再进行加法,最终获得的乘累加结果输入至激活函数;而脉冲神经网络输入为0或1,因此输入为1时突触权重值加至膜电位数值,每离散时刻的膜电位数值再输入至激活函数。
基于上述的区别,本申请采用概率计算随机数生成的方式将神经网络的输入激活值转换为离散脉冲串,并采用概率计算的方式完成输入激活值与突触权重值的乘法。神经网络的运算主要为大量的乘累加运算,因此在硬件电路中运行神经网络需要消耗大量乘法器资源,导致电路运行所需的功耗较高。而概率计算所需逻辑门资源较传统乘法器所消耗逻辑门资源少很多,本申请使用了改良的概率计算方式实现输入激活值与对应权重之间的乘法计算:进行概率计算首先需要将乘数转换为离散脉冲串形式的随机数,本申请将乘数之一的激活值转化为离散脉冲串,之后根据离散脉冲的数量对于权重进行累加;另外对于神经网络内乘法乘数具有重复性的特征,本申请将输入激活值生成的离散脉冲串同时传输给对应的多个权重值进行上述运算,以提高系统的运算速度。
图2为本申请提出的一种概率计算申请网络方法的实施例流程图。
在神经网络的每一层,根据多个输入激活值和多个权重值计算该层的输出值,本方法包括以下步骤:
步骤201、对每一个输入激活值进行离散概率计算脉冲编码,生成驱动信号,所述驱动信号为离散脉冲串,其中离散脉冲的数量表示输入激活值,离散脉冲的位置随机分布;这里的离散脉冲,是指离散脉冲的值为1。
在步骤201中,例如,神经网络每层的输入特征图数值通过概率计算脉冲生成器生成离散脉冲串。所述离散脉冲串是通过输入特征值与概率计算脉冲生成器所生成的随机数进行比较生成。其中,随机数的值为自然数,且随机数的最大值大于所述输入激活值。
例如,随机数最小值为1,以离散脉冲值为1作为驱动电平,当输入数值大于等于随机数时,输出离散脉冲的值为1;当输入数值小于随机数时,输出离散脉冲的值为0。或者,随机数最小值为0,以离散脉冲值为1作为驱动电平,当输入数值大于随机数时,输出离散脉冲的值为1;当输入数值小于等于随机数时,输出离散脉冲的值为0。这里“离散脉冲的值为0”,表示不存在离散脉冲。
再例如,随机数最小值为1,以离散脉冲值为0作为驱动电平,当输入数值大于等于随机数时,输出离散脉冲的值为0;当输入数值小于随机数时,输出离散脉冲的值为1。或者,随机数最小值为0,以离散脉冲值为0作为驱动电平,当输入数值大于随机数时,输出离散脉冲的值为0;当输入数值小于等于随机数时,输出离散脉冲的值为1。
输入激活值(特征图数值)与概率计算脉冲生成器所生成的随机数进行比较,当输入激活值大于等于随机数时,输出离散脉冲数值为1;当输入激活值小于随机数时,输出离散脉冲数值为0;输入激活值与多个随机数比较后,生成表示输入激活值的离散脉冲串。
优选地,任意一个输入激活值与概率计算脉冲生成器所生成的2N个均匀分布的伪随机数进行比较,生成一个有2N个周期的驱动信号,当所述输入激活值大于等于第i个随机数时,在第i个周期输出离散脉冲数值为1;当输入激活值小于第i个随机数时,在第i个周期输出离散脉冲数值为0,其中,i=1~2N,N为输入激活值的二进制位宽。
步骤202、通过所述驱动信号控制累加器,每一个离散脉冲使权重值自加一次;
在步骤202中,基于离散脉冲串的神经元计算实现输入值与该输入对应权重的概率计算式乘法;
可选地,权重值根据离散脉冲串的数值在突触运算结构中进行累加,当离散脉冲的值为1时,累加结果加一次权重数值;当离散脉冲的值为0时,累加结果不变。
在硬件电路实现中参与运算的数字为动态量化定点数的形式,以输入激活值与权重值位宽均8bit数为例,则伪随机数生成器生成的随机数位宽8bit,乘积结果位宽为15bit。
位宽8bit的伪随机数生成器在128个时钟周期内等概率地生成0~127共128个数字,将每个时钟周期内生成的随机数与输入激活值进行比较,当输入激活值大于随机数时,生成离散脉冲,以驱动输入至累加器的权重值自加一次。
经过128个时钟周期后,伪随机数生成器输出脉冲释放完成信号,驱动累加器的计算结果输出至激活函数运算结构,完成一个突触运算结构内的概率乘法计算。
步骤203、多个所述输入激活值生成的驱动信号分别控制累加器,实现多个所述输入激活值分别和多个所述权重值进行乘法计算,得到多个乘积;
步骤204、所得到的全部乘积经过累加获得乘累加结果;
通过步骤203~204,多神经元输入与权值的概率计算乘积经过累加获得乘累加结果;在步骤203中,多次从缓存中读取输入激活值与权重并进行概率乘法运算,在步骤204中,将多个乘积输入至激活函数运算结构进行加法运算。
步骤205、所述乘累加结果经过激活函数运算获得该层神经元的输出值,即下层神经网络的输入值。
在完成乘累加运算后,在比较器内对于乘累加结果最高位进行正负判定:乘累加结果最高位为0,则不变动地输出乘累加结果;乘累加结果最高位为1,则输出0,从而实现relu激活函数的运算功能。
图3为本发明提出的概率计算神经网络异步逻辑电路实施例。
本发明技术方案的第二个目的是提供与上述概率计算神经网络结构相对应的异步运算电路,以提升上述概率计算神经网络结构的运行速率与降低功耗。因此本申请实施例还提出一种概率计算神经网络异步逻辑电路,用于实现本申请任意一项方法实施例,包括异步逻辑控制电路、概率计算脉冲生成器、突触运算结构和激活函数运算结构。
所述异步逻辑控制电路,用于产生异步时钟信号。所述概率计算脉冲生成器,用于将输入激活值转换为对应的离散脉冲串。所述突触运算结构,用于实现输入激活值与权重的乘法。所述激活函数运算结构,用于实现对多个乘积的相加,并对乘累加结果进行激活函数运算。
概率计算脉冲生成器、突触运算结构与激活函数运算结构内部的D触发器均由异步逻辑控制结构产生的start信号控制。概率计算脉冲生成器内部的比较器的输入为输入数值与随机数,输出为离散脉冲串;突触运算结构的输入为权重值与离散脉冲串,输出为乘积结果;激活函数运算结构输入为乘积,输出为最后的运算结果。
实现概率计算神经网络运行所需要的异步逻辑控制结构要求在每级流水线内插入一个异步控制单元。异步控制单元的作用是产生替代同步时钟电路clk信号的异步控制信号start,用于激励流水线寄存器工作与协调异步电路时序,防止冒险与竞争的发生。
在硬件电路使用概率计算实现神经网络的离散脉冲化,有利于破解计算瓶颈,实现更高的性能目标。而基于生物神经元脉冲传递的事件驱动性,这种电路架构易于异步实现,异步电路以握手信号取代同步电路中的全局时钟,具有低功耗、高速率、电磁兼容性好与无时钟偏移等方面的特性,因此使用异步电路有利于实现高性能神经网络加速器。
图4为本发明实施例的异步逻辑控制电路示意图。
本发明所设计的电路结构的流水线级数为3级,因此所述异步逻辑控制电路由异步控制单元使用三个异步控制单元构成三级流水线,分别控制所述概率计算脉冲生成器、突触运算结构与激活函数运算结构。
进一步优选地,所述异步控制单元为Muller C单元、click单元或Mousetrap单元。异步控制单元具有多种可选择的具体实现方式:click单元可实现两项捆绑握手协议,其电路结构图如图5所示;Muller C单元可实现四项/两项的捆绑/双轨握手协议,其电路结构图如图6所示;Mousetrap可实现两项捆绑握手协议,其电路结构图如图7所示;还可以选择不同频率的时钟信号作为异步控制单元,从而实现全局异步局部同步电路设计。
异步控制单元具有相似的结构:输入输出有与前一级相连接的输入reqt_in、输出ack_in与后一级相连的输出req_out、输入ack_out与控制数据通路的输出信号start。其两项捆绑握手协议的时序逻辑波形图如图7所示。异步控制单元的输出信号start替代同步电路中的clk信号:每当输入信号req_in发生翻转时,都会产生一个输出脉冲start,start信号的上升沿驱动边沿D触发器,从而完成电路的时序逻辑。
将异步逻辑控制结构与其他计算结构进行连接,获得的人工神经网路全连接层运算电路结构如图3所示。图5、6、7所示异步控制单元为图3~4中Asyn control模块的具体实现方式,可选择图5、6、7中之一来具体搭建异步电路的控制模块。其中click单元易于FGPGA实现,Muller C单元易于异步EDA实现,Mousetrap单元用于高速流水线设计。
所述概率计算脉冲生成器还可以进一步包含伪随机数生成器和比较器。所述伪随机数生成器,用于在每一个随机数生成周期内,生成多个伪随机数,例如生成2N个均匀分布的伪随机数。所述比较器,用于比较所述伪随机数和输入激活值,生成一个多周期(例如,有2N个周期)的驱动信号,当所述输入激活值大于等于第i个随机数时,在第i个周期输出离散脉冲数值为1;当输入激活值小于第i个随机数时,在第i个周期输出离散脉冲数值为0,其中,i=1~2N,N为输入激活值的二进制位宽。
所述突触运算结构还可以进一步包含多路选择器和累加器。所述多路选择器,用于选择所述输入激活值生成的驱动信号和权重值。所述突出运算结构,用于根据离散脉冲串的脉冲数量,累加权重值。例如,以离散脉冲值为1作为驱动电平,当离散脉冲数值为1时,累加结果加一次权重值;当离散脉冲数值为0时,累加结果不变。概率计算脉冲生成器具有周期性,伪随机数生成器在一个随机数生成周期结束时,突触运算结构中的累加结果作为输入数值与权重的乘积输出至激活函数运算结构。
优选地,所述激活函数运算结构包含加法器和比较器。所述加法器,用于对所述突出运算结构输出的多个累加结果进行累加,得到乘累加结果。所述比较器,用于对所述乘累加结果最高位进行正、负判定,乘累加结果高位为0,则不变动地输出乘累加结果;乘累加结果最高位为1,则输出0。
作为本申请装置的最佳实施例,对于一个输入激活值,当需要实现与多个权重的乘法时,仅需通过一个概率计算脉冲生成器产生对应的离散脉冲串,然后将所述离散脉冲串传送至多个存储了单一权重的突触运算结构,即可完成一个输入值与多个权重的乘法运算。
作为本申请装置的最佳实施例,对多个输入激活值进行离散概率计算脉冲编码时,仅需通过一个随机数生成器产生伪随机数序列,与所述多个输入激活值进行比较,同时生成多个驱动信号,每一个驱动信号来自一个输入激活值。
可选地,对于多个输入激活值时,可采用多个概率计算脉冲生成器生成对应的离散脉冲串,也可时分复用同一个概率计算脉冲生成器。
图8为异步控制单元的时序逻辑波形图。
所述异步逻辑控制结构,用于产生替代同步电路中全局时钟clk的异步控制信号;所述异步逻辑控制结构由异步控制单元构成多级流水线,对于三级流水线使用三个异步控制单元,每级流水线内的异步控制单元在接收到异步握手信号时产生start信号驱动本级流水线内的D触发器工作。
所述异步控制单元可为Muller C单元、click单元、Mousetrap单元等,还可以为不同频率的时钟信号,当异步控制单元为不同频率的时钟信号时,电路属于全局异步局部同步电路。
所述概率计算脉冲生成器由一个伪随机数生成器与一个比较器构成,伪随机数生成器由该级流水线的异步控制单元产生的start信号上升沿驱动。
所述概率计算脉冲生成器在其伪随机数生成器完成一个周期的随机数生成后产生一个脉冲串生成结束信号。
所述突触运算结构由一个多路选择器与一个累加器构成,累加器由该级流水线的异步控制单元产生的start信号上升沿与概率计算脉冲生成器产生的离散脉冲共同驱动。
所述激活函数运算结构由一个加法器与一个比较器构成,由该级流水线的异步控制单元产生的start信号上升沿与脉冲串生成结束信号共同驱动。
图9为本申请所述电路完成一次全连接层运算的流程示意图。
以8输入8输出的全连接层结构为例,输入特征图为8个8bit动态定点数,输出为8个15bit动态定点数。权重为64个8bit动态定点数。
步骤901、异步逻辑控制结构接收到req_in信号,电路开始运行:从外部缓存中读取第1个输入激活值,8个突触运算结构读取对应的8个权重值;
步骤902、在start1信号上升沿到来时,伪随机数生成器生成8bit随机数,输入激活值经过概率计算脉冲生成器生成离散脉冲;
步骤903、在start2信号上升沿到来时,离散脉冲传输至8个突触运算结构,分别与8个权重进行概率乘法运算,在经过127次随机数生成后,输出累加寄存器中的乘法结果;
步骤904、在start3信号上升沿到来时,并行的8个乘法结果输出至8个激活函数运算结构,与加法寄存器的数值进行加法运算,获得的加法结果暂存加法寄存器;
步骤905、读取第2个输入激活值与对应的8个权重值,重复步骤901至904,剩余6个输入激活值同理,共完成8次并行的概率乘法计算,实现8个神经元的乘累加运算;
步骤906、将8个加法寄存器中的乘累加运算结果传输至比较器,输出8个relu函数运算结果,完一个8输入8输出神经网络全连接层的运算。
本申请的方案针对人工神经网络在硬件电路中运算功耗高的问题,采用概率计算的方式减小了神经网络乘法器资源消耗,同时设计了异步控制结构,通过以上两点达到减小电路功耗的目的;此外设计了数据复用的电路结构减少神经网络乘数的多次调用,使用精简化的概率计算方式提高乘法运算速率,通过以上两点达到提高人工神经网络在硬件电路中运算速率的目的
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种概率计算神经网络方法,在神经网络的每一层,根据输入激活值和权重值计算该层的输出值,其特征在于,包括以下步骤:
对每一个输入激活值进行离散概率计算脉冲编码,生成驱动信号,所述驱动信号为离散脉冲串,其中离散脉冲的数量表示输入激活值,离散脉冲的位置随机分布;
通过所述驱动信号控制累加器,每一个离散脉冲使权重值自加一次;进而多个所述输入激活值生成的驱动信号分别控制累加器,实现多个所述输入激活值分别和多个所述权重值进行乘法计算,所得到的全部乘积经过累加获得乘累加结果;
所述乘累加结果经过激活函数运算获得该层神经元的输出值,即下层神经网络的输入值。
2.如权利要求1所述方法,其特征在于:任意一个输入激活值与概率计算脉冲生成器所生成的2N个伪随机数进行比较,生成一个有2N个周期的驱动信号,当所述输入激活值大于等于第i个随机数时,在第i个周期输出离散脉冲数值为1;当输入激活值小于第i个随机数时,在第i个周期输出离散脉冲数值为0,其中,i=1~2N,N为输入激活值的二进制位宽。
3.一种概率计算神经网络异步逻辑电路,用于实现权利要求1或2所述方法,其特征在于:包括异步逻辑控制电路、概率计算脉冲生成器、突触运算结构和激活函数运算结构;
所述异步逻辑控制电路,用于产生异步时钟信号;
所述概率计算脉冲生成器,用于将输入激活值转换为对应的离散脉冲串;
所述突触运算结构,用于实现输入激活值与权重的乘法;
所述激活函数运算结构,用于实现对多个乘积的相加,并对乘累加结果进行激活函数运算。
4.如权利要求3所述概率计算神经网络异步逻辑电路,其特征在于,所述异步逻辑控制电路由异步控制单元使用异步控制单元构成流水线,分别控制所述概率计算脉冲生成器、突触运算结构与激活函数运算结构。
5.如权利要求4所述概率计算神经网络异步逻辑电路,其特征在于,所述异步控制单元为Muller C单元、click单元或Mousetrap单元。
6.如权利要求3所述概率计算神经网络异步逻辑电路,其特征在于,
所述概率计算脉冲生成器包含伪随机数生成器和比较器;
所述伪随机数生成器,用于在每一个随机数生成周期内,生成2N个伪随机数;
所述比较器,用于比较所述伪随机数和输入激活值,生成一个有2N个周期的驱动信号,当所述输入激活值大于等于第i个随机数时,在第i个周期输出离散脉冲数值为1;当输入激活值小于第i个随机数时,在第i个周期输出离散脉冲数值为0,其中,i=1~2N,N为输入激活值的二进制位宽。
7.如权利要求3所述概率计算神经网络异步逻辑电路,其特征在于,
所述突触运算结构包含多路选择器和累加器;
所述多路选择器,用于选择所述输入激活值生成的驱动信号和权重值;
所述突出运算结构,用于根据离散脉冲串的脉冲数量,累加权重值,当离散脉冲串数值为1时,累加结果加一次权重值;当离散脉冲串数值为0时,累加结果不变;
伪随机数生成器在一个随机数生成周期结束时,突触运算结构中的累加结果输出至激活函数运算结构。
8.如权利要求3所述概率计算神经网络异步逻辑电路,其特征在于,所述激活函数运算结构包含加法器和比较器;
所述加法器,用于对所述突出运算结构输出的多个累加结果进行累加,得到乘累加结果;
所述比较器,用于对所述乘累加结果最高位进行正、负判定,乘累加结果高位为0,则不变动地输出乘累加结果;乘累加结果最高位为1,则输出0。
9.如权利要求3所述概率计算神经网络异步逻辑电路,其特征在于,对于一个输入激活值,当需要实现与多个权重的乘法时,仅需通过一个概率计算脉冲生成器产生对应的离散脉冲串,然后将所述离散脉冲串传送至多个存储了单一权重的突触运算结构,即可完成一个输入值与多个权重的乘法运算。
10.根据权利要求3所述概率计算神经网络异步逻辑电路,其特征在于,对多个输入激活值进行离散概率计算脉冲编码时,仅需通过一个随机数生成器产生伪随机数序列,与所述多个输入激活值进行比较,同时生成多个驱动信号,每一个驱动信号来自一个输入激活值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110229150.XA CN113033769B (zh) | 2021-03-02 | 2021-03-02 | 一种概率计算神经网络方法和异步逻辑电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110229150.XA CN113033769B (zh) | 2021-03-02 | 2021-03-02 | 一种概率计算神经网络方法和异步逻辑电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113033769A true CN113033769A (zh) | 2021-06-25 |
CN113033769B CN113033769B (zh) | 2022-08-16 |
Family
ID=76465329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110229150.XA Active CN113033769B (zh) | 2021-03-02 | 2021-03-02 | 一种概率计算神经网络方法和异步逻辑电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113033769B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936626A (zh) * | 2022-05-19 | 2022-08-23 | 常州大学 | 一种用于离散神经元网络的初值控制方法 |
CN115545190A (zh) * | 2022-12-01 | 2022-12-30 | 四川轻化工大学 | 一种基于概率计算的脉冲神经网络及其实现方法 |
WO2024103639A1 (zh) * | 2022-11-14 | 2024-05-23 | 清华大学 | 支持在线学习的气体识别方法、装置、设备、介质和产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108133267A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为最后级高速缓存片或神经网络单元存储器操作的存储器阵列的处理器 |
-
2021
- 2021-03-02 CN CN202110229150.XA patent/CN113033769B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108133267A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有可作为最后级高速缓存片或神经网络单元存储器操作的存储器阵列的处理器 |
Non-Patent Citations (6)
Title |
---|
ELENA-IOANA VATAJELU ET AL.: "Special Session: Reliability of Hardware-Implemented Spiking Neural Networks (SNN)", 《2019 IEEE 37TH VLSI TEST SYMPOSIUM (VTS)》 * |
HONGGE LI ET AL.: "Hardware Implementation of an Inverse Function Delayed Neural Network Using Stochastic Logic", 《IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS》 * |
SEAN C. SMITHSON ET AL.: "Stochastic Computing Can Improve Upon Digital Spiking Neural Networks", 《2016 IEEE INTERNATIONAL WORKSHOP ON SIGNAL PROCESSING SYSTEMS》 * |
YANG YANG LEE ET AL.: "Stochastic computing in convolutional neural network implementation: a review", 《PEERJ COMPUTER SCIENCE》 * |
YUAN JI ET AL.: "A Hardware Implementation of a Radial Basis Function Neural Network Using Stochastic Logic", 《2015 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION》 * |
ZHANGKONG XIAN ET AL.: "Weight Isolation-Based Binarized Neural Networks Accelerator", 《2020 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936626A (zh) * | 2022-05-19 | 2022-08-23 | 常州大学 | 一种用于离散神经元网络的初值控制方法 |
CN114936626B (zh) * | 2022-05-19 | 2023-10-27 | 常州大学 | 一种用于离散神经元网络的初值控制方法 |
WO2024103639A1 (zh) * | 2022-11-14 | 2024-05-23 | 清华大学 | 支持在线学习的气体识别方法、装置、设备、介质和产品 |
CN115545190A (zh) * | 2022-12-01 | 2022-12-30 | 四川轻化工大学 | 一种基于概率计算的脉冲神经网络及其实现方法 |
CN115545190B (zh) * | 2022-12-01 | 2023-02-03 | 四川轻化工大学 | 一种基于概率计算的脉冲神经网络及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113033769B (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113033769B (zh) | 一种概率计算神经网络方法和异步逻辑电路 | |
Zhao et al. | F-CNN: An FPGA-based framework for training convolutional neural networks | |
KR102637735B1 (ko) | 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩 | |
US20210287074A1 (en) | Neural network weight encoding | |
CN107766935B (zh) | 多层人造神经网络 | |
Liu et al. | FPGA-NHAP: A general FPGA-based neuromorphic hardware acceleration platform with high speed and low power | |
CN114611686B (zh) | 基于可编程神经拟态核的突触延时实现系统及方法 | |
CN112598119B (zh) | 一种面向液体状态机的神经形态处理器片上存储压缩方法 | |
CN113537449A (zh) | 基于脉冲神经网络的数据处理方法、计算核电路和芯片 | |
Shrestha et al. | A spike-based long short-term memory on a neurosynaptic processor | |
Xiyuan et al. | A Review of FPGA‐Based Custom Computing Architecture for Convolutional Neural Network Inference | |
Ji et al. | Forecasting wind speed time series via dendritic neural regression | |
CN115392445A (zh) | 脉冲神经网络芯片架构、芯片及系统 | |
Schoenauer et al. | MASPINN: novel concepts for a neuroaccelerator for spiking neural networks | |
KR20200020117A (ko) | 파이프라인 구조를 가지는 인공신경망용 연산 가속 장치 | |
CN115136141A (zh) | 用于实现混合信号集成电路的受限计算的操作变换的系统和方法 | |
Liu et al. | A cloud server oriented FPGA accelerator for LSTM recurrent neural network | |
CN114708639B (zh) | 一种基于异构脉冲神经网络的人脸识别的fpga芯片 | |
CN110245756A (zh) | 用于处理数据组的可编程器件及处理数据组的方法 | |
Kim et al. | Two-step spike encoding scheme and architecture for highly sparse spiking-neural-network | |
JP2021189727A (ja) | 計算機システム、学習方法、および脳型コンピューティングデバイス | |
CN112949833B (zh) | 一种概率计算神经元计算单元和构造方法 | |
Li et al. | FEAS: A Faster Event-driven Accelerator Supporting Inhibitory Spiking Neural Network | |
CN110321816B (zh) | 图像识别方法及装置 | |
CN117350345A (zh) | 一种融合神经形态与通用计算的可重构处理器及执行方法 |
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 |