CN111783973A - 一种面向液体状态机计算的神经形态处理器及设备 - Google Patents
一种面向液体状态机计算的神经形态处理器及设备 Download PDFInfo
- Publication number
- CN111783973A CN111783973A CN202010768355.0A CN202010768355A CN111783973A CN 111783973 A CN111783973 A CN 111783973A CN 202010768355 A CN202010768355 A CN 202010768355A CN 111783973 A CN111783973 A CN 111783973A
- Authority
- CN
- China
- Prior art keywords
- input
- module
- reservoir
- pulse
- liquid state
- 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
- 239000007788 liquid Substances 0.000 title claims abstract description 92
- 238000004364 calculation method Methods 0.000 title claims abstract description 51
- 210000005036 nerve Anatomy 0.000 title claims abstract description 11
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims abstract description 30
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000003068 static effect Effects 0.000 claims abstract description 13
- 210000002569 neuron Anatomy 0.000 claims description 112
- 239000000872 buffer Substances 0.000 claims description 58
- 210000002364 input neuron Anatomy 0.000 claims description 32
- 239000012528 membrane Substances 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 15
- 239000013598 vector Substances 0.000 claims description 15
- 210000000225 synapse Anatomy 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 abstract description 16
- 238000004891 communication Methods 0.000 abstract description 6
- 238000013528 artificial neural network Methods 0.000 description 23
- 238000000034 method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 239000012530 fluid Substances 0.000 description 8
- 230000002964 excitative effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 230000002401 inhibitory effect Effects 0.000 description 4
- 230000000946 synaptic effect Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 210000005215 presynaptic neuron Anatomy 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000009782 synaptic response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/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
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种面向液体状态机计算的神经形态处理器及设备,该神经形态处理器包括依次相连的输入模块、水库模块、读出层模块、数据传输模块,输入模块用于从全局静态随机存取存储器获取先行加载的输入脉冲序列并输出到水库模块,水库模块用于针对输入脉冲序列启动计算并将液体状态通过脉冲输出,读出层模块用于从脉冲输出模块读取液体状态并执行全连接层计算,数据传输模块用于将读出层模块的输出发送到CPU进行分类或误差计算,以及将输入脉冲序列和权值传输到全局静态随机存取存储器中。本发明能够执行和加速液体状态机的计算,能支持液体状态机的片上训练和推理,通信处理效率高,能够针对水库层计算的动态稀疏性进行优化以减少运行时间。
Description
技术领域
本发明涉及脉冲神经网络计算及加速设备,具体涉及一种面向液体状态机计算的神经形态处理器及设备。
背景技术
人类的大脑能够在消耗很少能量的情况下完成显著的感知任务。脑启发计算的目标是构建具有相同功能的机器,这需要高精度的算法和高效的硬件来执行。卡弗·米德在1990年提出的“神经形态计算”是近年来为实现这一目标而出现的,并可以作为冯·诺依曼系统的补充架构。与传统的冯·诺依曼架构相比,神经形态计算机具有执行更快、更省电、占用空间更小的特点和潜力。这些特性为开发采用神经形态架构的硬件提供了令人信服的理由。
水库计算被视为是神经网络的一种拓展框架,通过引入循环的方法允许信号双向传递。它由以下三个部分组成。输入层(由一个或多个神经元组成,属于前馈神经网络的一种),水库层(由多个神经元组成,属于递归神经网络的一种),输出层。其特点是其水库层权值是随机生成的且生成后就保持不变,而需要训练的只有输出层,这也使它比传统的神经网络训练起来更加简单。
脉冲神经网络是最新的一种计算模型之一。它旨在模仿生物神经系统的行为。因为依据目前的了解,生物神经元传递信息并执行计算是通过脉冲形式,而在传统的深度神经网络中模拟神经元相互通信是依靠连续的模拟信号真实值。许多应用程序已经使用脉冲神经网络实现,包括预测,图像处理,机器人控制系统和脑机接口。与传统的深度神经网络相比,脉冲神经网络由于其对生物大脑神经元行为进行建模的特性和计算的高能效,近年来获得了长足的发展。
作为水库计算的脉冲版本,液体状态机在图像分类、语音识别、语言翻译等多个应用领域显示出了优越性和巨大的潜力。液体状态机是一种特殊类型的脉冲神经网络,是水库计算的脉冲版,最早由Maass于2002年提出。近年来,由于其较低的训练成本,而越来越受到研究者的欢迎。液体状态机的网络结构包括三个部分:输入层、水库层和读出层。在水库层中的神经元是通过脉冲互相通信的,与深度神经网络中的通过模拟信号通信的神经元不同。通过随机生成的权值和随机产生的突触连接,输入被水库层转换成高维的表示,该表示被称为液体状态或内部状态。这些状态根据过去输入的衰减记忆动态演化。以内部状态为输入,可以对读出层进行训练,以做出最终的分类决策。此外,多个读出层可以为不同的应用进行训练,且共享相同的水库层。因此,液体状态机由于具有短时记忆,比较擅长时间序列分类。
如图1所示,液体状态机的典型结构由三部分组成:输入层、水库层和读出层。输入层神经元I1-Im接收来自外部的信息,它们被根据特定的编码方案处理为脉冲序列输入。输入层神经元分为兴奋和抑制两种类型。在拓扑结构中,兴奋性神经元随机且稀疏地连接到水库层神经元上,其产生的脉冲序列也会通过这些连接直接传递给水库神经元。水库层计算负责将输入脉冲转化为高维线性可分的液体状态向量。读出层神经元R1-Rn与水库层中兴奋神经元相连并对其产生的液体状态进行采样以作为读出层的输入。液体状态机的推理过程如图2所示,液体状态机的训练过程如图3所示。
然而由于神经元之间的连接在液体状态机中是不规则的,明显不同于普通神经网络的连接,并且液体状态机中的神经元在一个时间步中有可能不产生输出,这与传统深度神经网络也有很大的不同。因此液体状态机和常规神经网络之间的差异使大多数加速器设计难以被应用于液体状态机计算。但是由于液体状态机具有短时记忆,比较擅长时间序列分类。并且其训练比传统神经网络更加简单,因而具有巨大的潜力。为了解决传统深度神经网络加速器不能应用于液体状态机计算以及液体状态机计算需要加速的问题,必须设计一个新的体系结构来支持液体状态机计算。因为使用CPU或深度神经网络加速器不适合于液体状态机的不规则计算。此外,根据实验观察,在液体状态机中的产生的脉冲序列非常稀疏。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向液体状态机计算的神经形态处理器及设备,本发明能够执行和加速液体状态机的计算,能够支持液体状态机的片上训练和推理,通信处理效率高,能够针对水库层计算的动态稀疏性进行优化以减少运行时间。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向液体状态机计算的神经形态处理器,包括依次相连的输入模块、水库模块、读出层模块、数据传输模块,所述输入模块用于从全局静态随机存取存储器获取先行加载到片上的输入脉冲序列并输出到水库模块,所述水库模块用于针对输入脉冲序列启动计算并将液体状态通过脉冲输出,所述读出层模块用于从脉冲输出模块读取液体状态并执行全连接层计算,所述数据传输模块用于将读出层模块的输出发送到CPU进行分类或误差计算,以及将输入脉冲序列和权值传输到片上的全局静态随机存取存储器中。
可选地,所述输入模块包括包含多个输入神经元,每个神经元是以寄存器的形式实现的,输入神经元与脉冲输入的全局静态随机存取存储器相连,并从中读取脉冲输入序列;输入神经元与水库神经元的连接的权值存储在水库层神经元中的权值存储器中,与水库层神经元之间的互相连接的权值存放在同一个存储器中,所述权值存储器中用于存储每一个输入神经元的突触权值,且若任一输入神经元与水库模块中的液体神经元存在连接,则权值存储器中存储有该输入神经元的突触权值,且任一输入神经元与水库模块中的液体神经元不存在连接,则权值存储器中存储有该输入神经元的突触权值为0。
可选地,所述水库模块包括水库层阵列、脉冲移位寄存器、索引移位寄存器、脉冲内容寄存器和跳零逻辑,所述水库层阵列包括呈阵列状布置的多个水库神经元,所述脉冲移位寄存器用于为各个水库神经元提供脉冲输入,所述索引移位寄存器用于为各个水库神经元提供权值索引信息,所述脉冲移位寄存器、索引移位寄存器分别与水库层阵列中各个水库神经元相连,各个水库神经元的输出分别与脉冲内容寄存器相连,所述脉冲内容寄存器的输出端与跳零逻辑相连,所述跳零逻辑用于以脉冲内容寄存器的内容作为输入,经过首1检测电路检测和向量提取后,提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列。
可选地,所述水库神经元为LIF神经元,所述LIF神经元包括与逻辑、加法器、权值存储器、累加器、膜电压寄存器、阈值寄存器、比较器和缓冲寄存器,所述与逻辑用于将来自脉冲移位寄存器的一位脉冲信号与1进行与逻辑计算后作为权值存储器的读使能信号,所述加法器用于将地址指针、来自索引移位寄存器的索引相加生成权值存储器的访问地址,所述权值存储器在读使能信号有效的情况下根据生成的访问地址读出权值并发送给累加器,所述累加器对输入的权值累积形成膜电压并输出给膜电压寄存器,所述比较器用于在膜电压寄存器中的膜电压大于阈值寄存器中的阈值时输出脉冲信号,并在脉冲输出后重新设置膜电压的值。
可选地,所述跳零逻辑包括两个32位缓冲器,且每一个32位缓冲器都还有两个首“1”检测电路,其中一个首“1”检测电路按照从高位到低位顺序接入32位缓冲器以检测32位缓冲器中32位数据中的第一个“1”并输出索引F,另一个首“1”检测电路按照从低位到高位顺序接入32位缓冲器以检测32位缓冲器中32位数据中的最后一个“1”并输出索引L,所述索引F和索引L分别表示头部和尾部需要跳过的连续的零的数量,32位缓冲器提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列,索引F和索引L则分别被输出给索引移位寄存器。
可选地,所述首“1”检测电路包括31个或门构成的或门阵列、32个与门构成的与门阵列和译码器,32位缓冲器中的起始侧的31位被顺序连到31个或门,且该31个或门中的前30个或门的另一个输入来自于其右侧的或门的输出、最后一个或门的另一个输入是0;31个或门输出取反后分别作为32个与门中的高31个与门的一个输入、且剩下一个与门的一个输入是1,32位数据被顺序连接到32个与门的另一个输入,32个与门的输出端通过译码器译码生成索引F或索引L。
可选地,所述读出层模块包括液体状态缓冲、权值缓冲和多个处理单元构成的读出层阵列,所述处理单元用于执行乘法和累加操作来支持完全连接层的前向传播和后向传播计算以及权值更新函数,所述权值缓冲用于存储读出层的权值,所述液体状态缓冲用于存储水库模块产生的液体状态,所述液体状态缓冲、权值缓冲的输出端与读出层阵列的输入端相连。
此外,本发明还提供一种计算机设备,该计算机设备包含前述的面向液体状态机计算的神经形态处理器。
和现有技术相比,本发明具有下述优点:本发明神经形态处理器包括依次相连的输入模块、水库模块、读出层模块、数据传输模块,输入模块用于从全局静态随机存取存储器获取被配置的输入脉冲序列并输出到水库模块,水库模块用于针对输入脉冲序列启动计算并将液体状态通过脉冲输出,读出层模块用于从脉冲输出模块读取液体状态并执行全连接层计算,数据传输模块用于将读出层模块的输出发送到CPU进行分类或误差计算。与现有技术一般采用片上网络来完成神经元之间的通信相比,本发明采用移位寄存器的方式进行脉冲的发送,完成神经元之间的通信,避免了片上网络带来的拥塞和丢包问题,通信效率和准确率高。本发明能够执行和加速液体状态机的计算,能支持液体状态机的片上训练和推理,通信处理效率高,能够针对水库层计算的动态稀疏性进行优化以减少运行时间。
附图说明
图1为现有液体状态机典型结构。
图2为现有液体状态机的推理过程。
图3为现有液体状态机的训练过程。
图4为本发明实施例的神经形态处理器总体架构模块图。
图5为本发明实施例中的水库模块实现结构图。
图6为本发明实施例中的神经元硬件实现结构图。
图7为本发明实施例中的神经元计算过程波形图。
图8为本发明实施例中的跳零逻辑实现结构图。
图9为本发明实施例中的首“1”检测电路结构图。
具体实施方式
本发明面向液体状态机计算的神经形态处理器及设备的基本概念及原理如下:
水库层是一个随机、递归的相互连接的神经元池,其中包括兴奋性神经元和抑制性神经元。根据不同类型突触的连接概率,利用软件伪随机函数生成液态神经元之间的连接。这些生成的连接的权值也是按照特定的分布随机生成的。从输入到得到液体状态的过程可以描述为以下方程:
xM(t)=(LM*u)(t) (1)
上式中,xM(t)表示液体状态,即:每个神经元在采样时的累积的脉冲数,LM表示水库层的处理能力可以抽象为一个函数LM。水库层对每个输入u产生响应,并随时间t进行液体状态采样。
读出层可以被描述为一个函数F,它以液体状态xM(t)作为输入。F用于将液体状态转换为可解释的表示形式,它也是一个特定于任务的函数。我们把输出的y(t)表示成液体状态的函数如下式:
y(t)=F(xM(t)) (2)
上式中,y(t)表示读出层的输出,F表示读出层的函数,xM(t)表示液体状态。读出层的函数F有很多种,如人工神经网络、支持向量机、随机森林、线性回归、决策树等。在设计中可选择人工神经网络。选择不同的分类器并不影响液体状态机的精度,但需要不同的训练算法。需要说明的是,选择人工神经网络是因为它易于硬件实现,下文采用的人工神经网络是一个完全连接的层。
液体状态机的训练包括两部分:水库层的计算和读出层的训练。液体状态机的推理也包括两部分,第一部分与训练相同,第二部分是读出层的推理。需要说明的是,样本的每个特征尺寸在注入液体状态机之前都要经过若干个时间步转换成一个脉冲序列,时间步的数量与具体的数据集相关。例如,有一个以1000个样本作为训练集,以100个样本作为测试集的图像数据集。对于每个样本,传统上,样本的每个特征尺寸在注入液体状态机之前都要经过3000个时间步转换成一个脉冲序列。
一个被广泛使用的脉冲神经元模型是具有高生物学可信性和计算效率的泄漏-集成-点火(Leaky-Intergrated-Fire,LIF)模型。另外,考虑到脉冲神经元的数字电路硬件实现,本实施例中采用的LIF模型的计算过程如下:
R+=(Esp-Esn)*(1/τ1-1/τ2) (4)
R-=(Isp-Isn)*(1/τ1-1/τ2) (5)
Esp=Esp-Esp*(1/τ1)+(1/2)*W (6)
Esn=Esn-Esn*(1/τ2)+(1/2)*W (7)
Isp=Isp-Isp*(1/τ1)+(1/2)*W (8)
Isn=Isn-Isn*(1/τ2)+(1/2)*W (9)
R+=(Esp-Esn)*(1/τ1-1/τ2) (10)
R-=(Isp-Isn)*(1/τ1-1/τ2) (11)
Esp=Esp-Esp*(1/τ1)+(1/2)*W (12)
Esn=Esn-Esn*(1/τ2)+(1/2)*W (13)
Isp=Isp-Isp*(1/τ1)+(1/2)*W (14)
Isn=Isn-Isn*(1/τ2)+(1/2)*W (15)
式(3)~(15)中,V(t)为第t步时的膜电压,τ1和τ2为一阶动力学的时间常数。R+和R-分别是兴奋性突触前神经元和抑制性突触前神经元的二级突触反应。Esp,Esn,Isp,Isn分别是计算的中间状态,W是突触对应的突触权值。
在上述基本概念及原理的基础上,下文将进一步对本发明面向液体状态机计算的神经形态处理器进行进一步的详细说明。
如图4所示,本实施例面向液体状态机计算的神经形态处理器包括依次相连的输入模块1、水库模块2、读出层模块3、数据传输模块4,输入模块1用于从全局静态随机存取存储器获取先行加载到片上的输入脉冲序列并输出到水库模块2,水库模块2用于针对输入脉冲序列启动计算并将液体状态通过脉冲输出,读出层模块3用于从脉冲输出模块读取液体状态(液体状态liquid state,即水库层中神经元的状态)并执行全连接层计算,数据传输模块4用于将读出层模块3的输出发送到CPU进行分类或误差计算,以及将输入脉冲序列和权值传输到片上的全局静态随机存取存储器中。
本实施例面向液体状态机计算的神经形态处理器是一种协处理器,本实施例简称记为LsmCore。参见图4,在高层次上,LsmCore的设计包括四个主要的相互关联的组件,具体包括:输入模块1、水库模块2、读出层模块3和数据传输模块4。输入模块1用于从全局静态随机存取存储器中取出一个时间步中所需的输入脉冲序列,并将其发送到水库模块。水库模块2从输入神经元和水库神经元接收脉冲信号,根据脉冲的有无,将相应连接的权值累加1024个神经元的膜电位,生成下一个时间步所需的脉冲信号和液体状态信息。液体状态信息被从读出层模块3读出至读出层模块并执行全连接层计算。数据传输模块4(I/O模块)在处理器和片外存储器之间交换数据,并对存储在全局静态随机存取存储器中的压缩权值进行解压。需要说明的是,本实施例中1024个神经元仅仅是水库模块2的一种特例,水库模块2的实现并不局限于特定的神经元数量。
输入模块1的功能是获取各时间步的输入脉冲序列。本实施例中,输入模块1包括包含多个输入神经元,每个神经元是以寄存器的形式实现的,输入神经元与脉冲输入的全局静态随机存取存储器相连,并从中读取脉冲输入序列;输入神经元与水库神经元的连接的权值存储在水库层神经元中的权值存储器中,与水库层神经元之间的互相连接的权值存放在同一个存储器中,权值存储器中用于存储每一个输入神经元的突触权值,且若任一输入神经元与水库模块2中的液体神经元存在连接,则权值存储器中存储有该输入神经元的突触权值,且任一输入神经元与水库模块2中的液体神经元不存在连接,则权值存储器中存储有该输入神经元的突触权值为0。
本实施例中,输入模块1支持多达256个输入神经元。输入神经元被实现为存储在脉冲内容寄存器右侧部分的脉冲输入部分的256bit的位置。LsmCore最多支持256×1024的输入层突触连接。这是通过在每个神经元的权值存储器中为输入神经元的连接留下256个权值的空间来实现的。如果输入神经元和液体神经元之间存在连接,突触的权值存储在神经元的权值存储器中,否则,就会存储一个0表示连接不存在。
图5所示为水库模块2的微架构,图中水库层阵列是水库模块的核心组件。在图的右边部分是跳零逻辑。参见图5,水库模块2包括水库层阵列、脉冲移位寄存器、索引移位寄存器、脉冲内容寄存器和跳零逻辑,水库层阵列包括呈阵列状布置的多个水库神经元,脉冲移位寄存器用于为各个水库神经元提供脉冲输入,索引移位寄存器用于为各个水库神经元提供权值索引信息,脉冲移位寄存器、索引移位寄存器分别与水库层阵列中各个水库神经元相连,各个水库神经元的输出分别与脉冲内容寄存器相连,脉冲内容寄存器的输出端与跳零逻辑相连,跳零逻辑用于以脉冲内容寄存器的内容作为输入,经过首1检测电路检测和向量提取后,提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列。
水库层阵列包含1024个神经元作为水库神经元,每个水库神经元的功能都被实现为一个LIF神经元,它的功能遵循计算公式(3)~(9)。这些神经元除了在权值初始化阶段时使用脉动阵列数据流的方式传递配置权值之外,其余阶段彼此之间没有交互。本实施例中使用一维的脉动阵列结构连接1024个神经元。初始化时,全局存储器中的权值通过该结构互连将权值写入每个神经元。一旦处理器开始执行,直到网络模型需要更改时才会使用这些连接进行重新配置。在执行过程中,神经元通过脉冲移位寄存器接收脉冲。在水库模块2中,本实施例中设计了一个32bit的脉冲移位寄存器和一个索引移位寄存器。脉冲移位寄存器的每一位以及索引移位寄存器的每个索引寄存器都连接到32神经元以为它们提供脉冲和索引输入。本实施例中选择32是因为这是物理实现的一个可行扇出。一个时间步的神经元脉冲输出和下一个时间步的输入脉冲序列存储在1280位的脉冲内容寄存器中。然后其中的内容会被通过脉冲移位寄存器发送给水库层阵列,进行1024神经元的膜电压累积计算,生成下一个时间步所需的脉冲输出信号和液体状态信息。
如图6所示,水库神经元为LIF神经元,LIF神经元包括与逻辑、加法器、权值存储器、累加器、膜电压寄存器、阈值寄存器、比较器和缓冲寄存器,与逻辑用于将来自脉冲移位寄存器的一位脉冲信号与1进行与逻辑计算后作为权值存储器的读使能信号,加法器用于将地址指针、来自索引移位寄存器的索引相加生成权值存储器的访问地址,权值存储器在读使能信号有效的情况下根据生成的访问地址读出权值并发送给累加器,累加器对输入的权值累积形成膜电压并输出给膜电压寄存器,比较器用于在膜电压寄存器中的膜电压大于阈值寄存器中的阈值时输出脉冲信号,并在脉冲输出后重新设置膜电压的值。
LIF神经元有两种类型,兴奋性神经元和抑制性神经元。两类神经元的区别在于一阶动力学的时间常数τ的值不一样,导致其在进行膜电压累加计算和漏流计算时体现出差别。来自输入神经元和水库层神经元的连接的所有权值都存储在每个神经元的静态随机存取存储器中,需要时可以从中读取它们。因此,水库模块2支持256×1024的输入层突触连接和1024×1024的水库神经元之间的连接。
LIF神经元的计算过程如下:复位后,所有初始化的权值将从I/O模块转移到各个模块,包括输入层、水库层、读出层的权值。
LIF神经元的初始化过程如下:在LIF神经元的初始化过程中,从I/O模块读取的权值从左侧的神经元一个周期、一个周期地传递到右侧的LIF神经元(本实施例中具体为一个周期128bit的速率),并写入每个LIF神经元的权值静态随机存取存储器中,直到初始化完所有LIF神经元。
LIF神经元的膜电压累积计算过程如下:如图7的波形所示,其中Cycle表示周期,Spike_in表示输入的脉冲信号,Rd_en为读是能信号,Index_in表示脉冲和权值索引,Pointer表示读取权值的实际地址,Weight表示权值,Index F(索引F)和index L(索引L)分别表示一次输入32bit的脉冲序列的头部和尾部首个1的位置,同时也表示首部和尾部需要跳过的连续的零的数量。对于每个时间步,LIF神经元接收来自脉冲移位寄存器的脉冲,每个时钟周期1bit,以及来自索引移位寄存器的脉冲和权值索引,每个时钟周期一个索引。对于每个时钟周期,LIF神经元检查接收的脉冲输入是否为“1”,并通过将权值指针与接收的索引相加来生成访问权值存储器的地址。如果输入为零,LIF神经元就不工作。如果输入为“1”,它将使用生成的地址从权值存储器中读取权值。因此,一个周期接着一个周期,输入脉冲被累积到LIF神经元的膜电压上,直到脉冲移位寄存器中的所有脉冲被处理完毕。
LIF神经元的脉冲输出生成与膜电压重置过程如下:在一个时间步的末尾,LIF神经元执行膜电压泄漏操作并与阈值电压进行比较。如果LIF神经元的电压超过阈值,就会产生一个脉冲输出,并在脉冲输出后重新设置膜电压的值。
本实施例中,跳零逻辑包括两个32位缓冲器,且每一个32位缓冲器都还有两个首“1”检测电路,如图8所示,其中一个首“1”检测电路按照从高位到低位顺序接入32位缓冲器以检测32位缓冲器中32位数据中的第一个“1”并输出索引F,另一个首“1”检测电路按照从低位到高位顺序接入32位缓冲器以检测32位缓冲器中32位数据中的最后一个“1”并输出索引L,索引F和索引L分别表示头部和尾部需要跳过的连续的零的数量,32位缓冲器提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列,索引F和索引L则分别被输出给索引移位寄存器。跳零逻辑以脉冲内容寄存器的内容作为输入。经过首1检测电路检测和向量提取后,提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列。跳零逻辑中的每个缓冲区都有两个首“1”检测电路。用于检测缓冲区中32位数据中的第一个“1”和最后一个“1”。检测电路的输出是两个索引,索引F和索引L,它们表示头部和尾部需要跳过的连续的零的数量。
如图9所示,首“1”检测电路包括31个或门构成的或门阵列、32个与门构成的与门阵列和译码器,32位缓冲器中的起始侧的31位被顺序连到31个或门,且该31个或门中的前30个或门的另一个输入来自于其右侧的或门的输出、最后一个或门的另一个输入是0;31个或门输出取反后分别作为32个与门中的高31个与门的一个输入、且剩下一个与门的一个输入是1,32位数据被顺序连接到32个与门的另一个输入,32个与门的输出端通过译码器译码生成索引F或索引L(按照从高位到低位顺序接入则生成索引F,按照从低位到高位顺序接入32位缓冲器则生成索引L)。首“1”检测电路的工作原理如下:32位输入数据的右数第一个1在第一级或门阵列中,会把后面的位全部置为1,然后输出被左移一位,最低位补0,取反,再和原始32位数据进行与操作,就能得到右数第一个1的位置了。然后这个32位的输出会经过32-5译码器,从独热编码(onehot)变成5位的二进制数(索引F或索引L)输出。将跳零逻辑包括的两个32位缓冲器的缓冲区分别记为缓冲区A和B,跳零逻辑的工作顺序如图5中序号①~⑤所示。序号①:在每个时间步结束时,1024个神经元产生的脉冲输出被写入脉冲内容寄存器的脉冲输出部分。同时,从全局静态随机存取存储器取出下一个时间步所需的脉冲输入序列到脉冲内容寄存器的输入部分。序号②:缓冲区A和B分别从脉冲内容寄存器读取第一个和第二个32位的内容。序号③:然后,检测电路将检测缓冲区A/B中的第一个和最后一个“1”,并生成索引F和索引L。序号④:缓冲区A的索引F被发送到索引移位寄存器的右端。同时,从缓冲区A中提取的向量的第一个bit被发送到脉冲移位寄存器的右端。然后,一个周期、一个周期地将提取的向量中的所有位发送到脉冲移位寄存器,直到脉冲移位寄存器接收到向量中的最后一个“1”。序号⑤:当缓冲区A中的最后一个“1”被发送时,索引L被发送到索引移位寄存器,脉冲移位寄存器和索引移位寄存器切换到接受来自缓冲区B的输入。
本实施例中,读出层模块3包括液体状态缓冲、权值缓冲和多个处理单元构成的读出层阵列,处理单元用于执行乘法和累加操作来支持完全连接层的前向传播和后向传播计算以及权值更新函数,权值缓冲用于存储读出层的权值,液体状态缓冲用于存储水库模块产生的液体状态,液体状态缓冲、权值缓冲的输出端与读出层阵列的输入端相连。
本实施例中,读出层模块3的功能是执行一个1024×10全连接层的计算。本实施例中采用全连接的神经网络作为读出层,读出层模块3的处理单元在读出模块执行乘法和累加操作来支持完全连接层的前向传播和后向传播计算以及权值更新函数。为了进行推理,读出层模块3使用液体状态作为输入,经过全连接层的计算得到输出并将其发送到CPU进行分类。训练时,读出层模块3的输出发送到CPU进行误差计算。然后由CPU将误差传输回读出层模块3以执行权值更新过程。
本实施例中,数据传输模块4负责片内和片外的数据交换和数据解压。为了准备进行计算,数据传输模块4将配置参数、每个样本的输入脉冲序列、水库神经元的初始化权值和读出层的初始化权值从片外存储器传输到片上的全局静态随机存取存储器。在训练时,经过对一小批样本的计算,读出层的所有输出通过数据传输模块4传输到CPU。通过与标签进行比较,这些输出将用于后续的误差计算。之后,CPU将误差传输回片上进行权值更新。权值被压缩以减少存储以及减少数据传输延迟和带宽需求。在初始化过程中,存储在全局静态随机存取存储器中的权值被解压并写入神经元的权值存储器和读出层的权值缓冲区。
综上所述,本实施例提供了一种面向液体状态机计算的神经形态处理器(协处理器),该神经形态处理器支持液体状态机的训练和推理过程,最多可以支持256个输入神经元、1024个水库神经元和一个可训练的读出层,该神经形态处理器支持限定神经元数目下的任何拓扑结构。同时,对于突触和脉冲序列的稀疏性,该神经形态处理器对其计算进行了优化,方法是跳零逻辑。本实施例面向液体状态机计算的神经形态处理器能够执行和加速液体状态机的计算,采用了几种技术来实现水库层的不规则计算和读出层的规则计算,从而支持液体状态机的片上训练和推理。在水库层计算过程中,使用移位脉冲寄存器来实现神经元之间的脉冲通信,并使用跳零逻辑来开发水库层计算的动态稀疏性,从而减少运行时间。针对本实施例面向液体状态机计算的神经形态处理器进行实验验证,实验结果表明:1)采用32nm工艺下,该神经形态处理器工作频率可以达到500MHz,功率为1.43W,使用32纳米技术综合得到的芯片面积为46.28平方毫米。2)该神经形态处理器相对于CPU基线,在MNIST,N-MNIST,和FSDD三个数据集下的加速比分别为80.7倍、91.3倍和83.1倍。3)该神经形态处理器使用跳零逻辑与不使用跳零逻辑相比平均带来5.23倍-5.48倍的加速。
此外,本实施例还提供一种计算机设备,该计算机设备包前述面向液体状态机计算的神经形态处理器。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种面向液体状态机计算的神经形态处理器,其特征在于,包括依次相连的输入模块(1)、水库模块(2)、读出层模块(3)、数据传输模块(4),所述输入模块(1)用于从全局静态随机存取存储器获取先行加载到片上的的输入脉冲序列并输出到水库模块(2),所述水库模块(2)用于针对输入脉冲序列启动计算并将液体状态通过脉冲输出,所述读出层模块(3)用于从脉冲输出模块读取液体状态并执行全连接层计算,所述数据传输模块(4)用于将读出层模块(3)的输出发送到CPU进行分类或误差计算,以及将输入脉冲序列和权值传输到片上的全局静态随机存取存储器中。
2.根据权利要求1所述的面向液体状态机计算的神经形态处理器,其特征在于,所述输入模块(1)包括包含多个输入神经元,每个神经元是以寄存器的形式实现的,输入神经元与脉冲输入的全局静态随机存取存储器相连,并从中读取脉冲输入序列;输入神经元与水库神经元的连接的权值存储在水库层神经元中的权值存储器中,与水库层神经元之间的互相连接的权值存放在同一个存储器中,所述权值存储器中用于存储每一个输入神经元的突触权值,且若任一输入神经元与水库模块(2)中的液体神经元存在连接,则权值存储器中存储有该输入神经元的突触权值,且任一输入神经元与水库模块(2)中的液体神经元不存在连接,则权值存储器中存储有该输入神经元的突触权值为0。
3.根据权利要求1所述的面向液体状态机计算的神经形态处理器,其特征在于,所述水库模块(2)包括水库层阵列、脉冲移位寄存器、索引移位寄存器、脉冲内容寄存器和跳零逻辑,所述水库层阵列包括呈阵列状布置的多个水库神经元,所述脉冲移位寄存器用于为各个水库神经元提供脉冲输入,所述索引移位寄存器用于为各个水库神经元提供权值索引信息,所述脉冲移位寄存器、索引移位寄存器分别与水库层阵列中各个水库神经元相连,各个水库神经元的输出分别与脉冲内容寄存器相连,所述脉冲内容寄存器的输出端与跳零逻辑相连,所述跳零逻辑用于以脉冲内容寄存器的内容作为输入,经过首1检测电路检测和向量提取后,提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列。
4.根据权利要求3所述的面向液体状态机计算的神经形态处理器,其特征在于,所述水库神经元为LIF神经元,所述LIF神经元包括与逻辑、加法器、权值存储器、累加器、膜电压寄存器、阈值寄存器、比较器和缓冲寄存器,所述与逻辑用于将来自脉冲移位寄存器的一位脉冲信号与1进行与逻辑计算后作为权值存储器的读使能信号,所述加法器用于将地址指针、来自索引移位寄存器的索引相加生成权值存储器的访问地址,所述权值存储器在读使能信号有效的情况下根据生成的访问地址读出权值并发送给累加器,所述累加器对输入的权值累积形成膜电压并输出给膜电压寄存器,所述比较器用于在膜电压寄存器中的膜电压大于阈值寄存器中的阈值时输出脉冲信号,并在脉冲输出后重新设置膜电压的值。
5.根据权利要求3所述的面向液体状态机计算的神经形态处理器,其特征在于,所述跳零逻辑包括两个32位缓冲器,且每一个32位缓冲器都还有两个首“1”检测电路,其中一个首“1”检测电路按照从高位到低位顺序接入32位缓冲器以检测32位缓冲器中32位数据中的第一个“1”并输出索引F,另一个首“1”检测电路按照从低位到高位顺序接入32位缓冲器以检测32位缓冲器中32位数据中的最后一个“1”并输出索引L,所述索引F和索引L分别表示头部和尾部需要跳过的连续的零的数量,32位缓冲器提取的向量每个时钟周期移位1bit到脉冲移位寄存器作为输入传递给水库层阵列,索引F和索引L则分别被输出给索引移位寄存器。
6.根据权利要求5所述的面向液体状态机计算的神经形态处理器,其特征在于,所述首“1”检测电路包括31个或门构成的或门阵列、32个与门构成的与门阵列和译码器,32位缓冲器中的起始侧的31位被顺序连到31个或门,且该31个或门中的前30个或门的另一个输入来自于其右侧的或门的输出、最后一个或门的另一个输入是0;31个或门输出取反后分别作为32个与门中的高31个与门的一个输入、且剩下一个与门的一个输入是1,32位数据被顺序连接到32个与门的另一个输入,32个与门的输出端通过译码器译码生成索引F或索引L。
7.根据权利要求5所述的面向液体状态机计算的神经形态处理器,其特征在于,所述读出层模块(3)包括液体状态缓冲、权值缓冲和多个处理单元构成的读出层阵列,所述处理单元用于执行乘法和累加操作来支持完全连接层的前向传播和后向传播计算以及权值更新函数,所述权值缓冲用于存储读出层的权值,所述液体状态缓冲用于存储水库模块产生的液体状态,所述液体状态缓冲、权值缓冲的输出端与读出层阵列的输入端相连。
8.一种计算机设备,其特征在于,该计算机设备包含权利要求1~7中任意一项所述的面向液体状态机计算的神经形态处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010768355.0A CN111783973B (zh) | 2020-08-03 | 2020-08-03 | 一种面向液体状态机计算的神经形态处理器及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010768355.0A CN111783973B (zh) | 2020-08-03 | 2020-08-03 | 一种面向液体状态机计算的神经形态处理器及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111783973A true CN111783973A (zh) | 2020-10-16 |
CN111783973B CN111783973B (zh) | 2023-12-08 |
Family
ID=72765102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010768355.0A Active CN111783973B (zh) | 2020-08-03 | 2020-08-03 | 一种面向液体状态机计算的神经形态处理器及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111783973B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329327A (zh) * | 2020-11-26 | 2021-02-05 | 中国人民解放军国防科技大学 | 一种硬件感知的液体状态机网络生成方法及系统 |
CN112529176A (zh) * | 2020-12-03 | 2021-03-19 | 鹏城实验室 | 一种加速脉冲神经网络的训练方法、终端及存储介质 |
CN112598119A (zh) * | 2021-01-05 | 2021-04-02 | 中国人民解放军国防科技大学 | 一种面向液体状态机的神经形态处理器片上存储压缩方法 |
CN113158567A (zh) * | 2021-04-21 | 2021-07-23 | 中国人民解放军国防科技大学 | 一种液体状态机模型中通信的软硬件联合优化方法及系统 |
CN113298242A (zh) * | 2021-06-08 | 2021-08-24 | 浙江大学 | 一种基于脉冲神经网络的脑机接口解码方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108027896A (zh) * | 2015-03-18 | 2018-05-11 | 赫尔实验室有限公司 | 用于解码具有连续突触可塑性的脉冲储层的系统和方法 |
CN110232443A (zh) * | 2019-07-08 | 2019-09-13 | 中国人民解放军陆军工程大学 | 实现液体状态机的脉冲神经网络数模混合电路系统 |
CN111144556A (zh) * | 2019-12-31 | 2020-05-12 | 中国人民解放军国防科技大学 | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 |
-
2020
- 2020-08-03 CN CN202010768355.0A patent/CN111783973B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108027896A (zh) * | 2015-03-18 | 2018-05-11 | 赫尔实验室有限公司 | 用于解码具有连续突触可塑性的脉冲储层的系统和方法 |
CN110232443A (zh) * | 2019-07-08 | 2019-09-13 | 中国人民解放军陆军工程大学 | 实现液体状态机的脉冲神经网络数模混合电路系统 |
CN111144556A (zh) * | 2019-12-31 | 2020-05-12 | 中国人民解放军国防科技大学 | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329327A (zh) * | 2020-11-26 | 2021-02-05 | 中国人民解放军国防科技大学 | 一种硬件感知的液体状态机网络生成方法及系统 |
CN112529176A (zh) * | 2020-12-03 | 2021-03-19 | 鹏城实验室 | 一种加速脉冲神经网络的训练方法、终端及存储介质 |
CN112598119A (zh) * | 2021-01-05 | 2021-04-02 | 中国人民解放军国防科技大学 | 一种面向液体状态机的神经形态处理器片上存储压缩方法 |
CN113158567A (zh) * | 2021-04-21 | 2021-07-23 | 中国人民解放军国防科技大学 | 一种液体状态机模型中通信的软硬件联合优化方法及系统 |
CN113158567B (zh) * | 2021-04-21 | 2022-05-03 | 中国人民解放军国防科技大学 | 一种液体状态机模型中通信的软硬件联合优化方法及系统 |
CN113298242A (zh) * | 2021-06-08 | 2021-08-24 | 浙江大学 | 一种基于脉冲神经网络的脑机接口解码方法 |
CN113298242B (zh) * | 2021-06-08 | 2022-08-05 | 浙江大学 | 一种基于脉冲神经网络的脑机接口解码方法 |
WO2022257329A1 (zh) * | 2021-06-08 | 2022-12-15 | 浙江大学 | 一种基于脉冲神经网络的脑机接口解码方法 |
US11948068B2 (en) | 2021-06-08 | 2024-04-02 | Zhejiang University | Brain machine interface decoding method based on spiking neural network |
Also Published As
Publication number | Publication date |
---|---|
CN111783973B (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111783973B (zh) | 一种面向液体状态机计算的神经形态处理器及设备 | |
AU2019372063B2 (en) | An improved spiking neural network | |
CN111353076B (zh) | 训练跨模态检索模型的方法、跨模态检索的方法和相关装置 | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN111967586B (zh) | 一种用于脉冲神经网络存内计算的芯片及计算方法 | |
CN112598119B (zh) | 一种面向液体状态机的神经形态处理器片上存储压缩方法 | |
Folli et al. | Effect of dilution in asymmetric recurrent neural networks | |
Wu et al. | On the tuning of the computation capability of spiking neural membrane systems with communication on request | |
Wang et al. | LSMCore: a 69k-synapse/mm 2 single-core digital neuromorphic processor for liquid state machine | |
CN114675805A (zh) | 存储器中计算累加器 | |
CN114358319A (zh) | 基于机器学习框架的分类方法及相关装置 | |
Ardakani et al. | Learning to skip ineffectual recurrent computations in LSTMs | |
Li et al. | Input-aware dynamic timestep spiking neural networks for efficient in-memory computing | |
WO2024216857A1 (zh) | 基于乒乓架构的稀疏脉冲神经网络加速器 | |
Gross et al. | Hardware-aware design for edge intelligence | |
Huang et al. | Computational power of dynamic threshold neural P systems for generating string languages | |
CN116663627A (zh) | 数字神经形态计算处理器及计算方法 | |
Wang et al. | An SRAM-based implementation of a convolutional neural network | |
Babu et al. | SpinAPS: A high-performance spintronic accelerator for probabilistic spiking neural networks | |
US20240054330A1 (en) | Exploitation of low data density or nonzero weights in a weighted sum computer | |
CN113703837B (zh) | 数据处理装置以及人工智能处理器 | |
EP4386629A1 (en) | Monostable multivibrators-based spiking neural network training method | |
KR20240037146A (ko) | 다중 비트 누산기, 다중 비트 누산기를 포함하는 인 메모리 컴퓨팅(in memory computing) 프로세서 및 다중 비트 누산기의 동작 방법 | |
Sahu et al. | Enhancing Inference Performance through Include only Literal Incorporation in Tsetlin Machine | |
Wouafo et al. | Efficient scalable hardware architecture for highly performant encoded neural 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |