CN108334942B - 神经网络的数据处理方法、装置、芯片和存储介质 - Google Patents
神经网络的数据处理方法、装置、芯片和存储介质 Download PDFInfo
- Publication number
- CN108334942B CN108334942B CN201711408060.7A CN201711408060A CN108334942B CN 108334942 B CN108334942 B CN 108334942B CN 201711408060 A CN201711408060 A CN 201711408060A CN 108334942 B CN108334942 B CN 108334942B
- Authority
- CN
- China
- Prior art keywords
- module
- membrane potential
- value
- current
- routing
- 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
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/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
- G06N3/065—Analogue 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
Abstract
本发明提供一种神经网络的数据处理方法、装置、芯片和存储介质。该方法包括:控制第一轴突模块将从第一路由模块中获取的第一发放数值存储至第一轴突模块的存储单元中;控制第一树突模块向第一轴突模块请求获取第一发放数值,并根据第一发放数值以及第一突触模块提供的突触权重进行模电位积分运算,得到当前神经元的积分模电位,并将积分模电位存储至模电位存储器中;控制第一胞体模块从模电位存储器中读取积分模电位,并对积分模电位进行发放运算处理,得到当前神经元的第二发放数值,并将第二发放数值输出至第一路由模块;控制第一路由模块继续将第二发放数值输出至目的计算核。该方法大大提高了神经网络数据的处理效率。
Description
技术领域
本发明涉及神经网络,特别是涉及神经网络的数据处理方法、装置、芯片和存储介质。
背景技术
随着人工智能技术的不断发展,基于神经形态工程的类脑计算研究逐渐成为近几年来新兴的学术热点,其可广泛用于语音识别、图像识别、视频检索、机器人控制、虚拟现实技术等领域。神经形态芯片被公认为类脑计算的高效硅实现方法,它借鉴人脑信息处理方式,打破“冯·诺依曼”架构的束缚,实现了存储和计算的一体化,并采用大规模的神经元互联结构实现了类人脑神经网络的高效电路。
传统技术中的神经形态电路对神经元的仿真是基于神经元整体的不可拆分的模拟,即神经形态电路不能单独执行所模拟的神经元整体中的轴突部分、树突部分或者胞体部分的工作。因此,传统技术中的神经形态电路在处理神经网络中的数据时,数据处理的每一个环节耦合性较强,数据处理效率低。
发明内容
基于此,有必要针对传统技术中神经形态电路在处理神经网络中的数据时,数据处理的每一个环节耦合性较强,数据处理效率低的技术问题,提供一种神经网络的数据处理方法、装置、电路、芯片和存储介质。
第一方面,本发明实施例提供一种神经网络的数据处理方法,包括:
控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中;
控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电位积分运算,得到当前神经元的积分膜电 位,并将所述积分模电位存储至膜电 位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块;
控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核。
在其中的一个实施例中,所述控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,包括:
控制所述第一树突模块在需要发放数值时,向所述第一轴突模块发送请求信号;
控制所述第一轴突模块向所述第一树突模块发送响应信号,并输出所需要的发放数值;其中,所述响应信号的长度与所需要的发放数值的个数相关。
在其中的一个实施例中,所述控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核,包括:
控制所述第一路由模块在接收到所述第一胞体模块的发送指令后,根据所述第一胞体模块发送的当前神经元标识和预设的映射关系,确定当前神经元对应的路由信息;其中,所述映射关系包括不同的神经元标识与路由信息之间的对应关系;
控制所述第一路由模块根据所述第二发放数值和所述当前神经元对应的路由信息生成路由数据包,并输出至所述目的计算核。
在其中的一个实施例中,所述当前神经元对应的路由信息包括:所述当前计算核相对于所述目的计算核的坐标偏移信息、所述目的计算核的第二轴突模块中的存储单元地址、膜电 位发放类型中的至少一个。
在其中的一个实施例中,所述控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中,包括:
控制所述第一轴突模块解析从所述第一路由模块接收的路由数据包,得到所述第一发放数值和所述第一发放数值对应在第一轴突模块中的存储单元地址;
控制所述第一轴突模块将所述第一发放数值存储至所述存储单元地址对应的存储单元中。
在其中的一个实施例中,所述方法还包括:
控制所述第一轴突模块向所述第一突触模块提供所述第一发放数值对应在第一轴突模块中的存储单元地址;
控制所述第一突触模块根据所述第一发放数值对应在第一轴突模块中的存储单元地址,确定所述第一发放数值对应的突触权重。
在其中的一个实施例中,所述控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,包括:
控制所述第一胞体模块根据所述积分膜电 位确定当前神经元的偏置膜电 位;
控制所述第一胞体模块根据所述偏置膜电 位和神经网络类型,得到当前神经元的第二发放数值;
控制所述第一胞体模块将所述当前神经元的偏置膜电 位存储至所述膜电 位存储器中,并将所述偏置膜电 位作为当前神经元进行下一次膜电 位积分运算的初始值。
上述神经网络的数据处理方法,由于第一轴突模块中存储单元的设置,使得第一路由模块的第一发放数值无需立刻送入第一树突模块中,当第一树突模块需要获取第一发放数值时,需要向第一轴突模块请求该第一发放数值,故而,第一树突模块和第一轴突模块各自的工作互相独立,没有直接或者间接的耦合联系;另外,由于第一树突模块和第一胞体模块之间的膜电 位存储器的设置,第一树突模块所计算的积分膜电 位仅需存储膜电 位存储器即可,也无需立刻送入第一胞体模块中,因此第一胞体模块无需随着第一树突模块的启动而启动,故而,第一树突模块和第一胞体模块各自的工作互相独立,没有直接或者间接的耦合联系。故而,本实施例提供的方法,轴突模块、树突模块和胞体模块之间可以独立工作,其可以单独执行所模拟的神经元整体中某一部分的功能,三者之间的工作时刻可以部分重叠,因此大大提高了神经网络数据的处理效率。
第二方面,本发明实施例提供一种神经网络的数据处理装置,包括:
第一控制模块,用于控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中;
第二控制模块,用于控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电 位积分运算,得到当前神经元的积分膜电 位,并将所述积分膜电 位存储至膜电 位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
第三控制模块,用于控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块;
第四控制模块,用于控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核。
第三方面,本发明实施例提供一种计算核电路,包括:处理器、轴突模块、树突模块、胞体模块、路由模块、突触模块和膜电 位存储器,所述轴突模块、所述树突模块、所述胞体模块、所述突触模块和所述路由模块均与所述控制器电连接,所述轴突模块分别于所述路由模块和所述树突模块电连接,所述树突模块与所述突触模块电连接,且所述树突模块通过所述膜电 位存储器与所述胞体模块电连接;
所述处理器用于,控制所述轴突模块将从路由模块中获取的第一发放数值存储至所述轴突模块的存储单元中;以及控制所述树突模块向轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及所述突触模块提供的突触权重进行膜电 位积分运算,得到当前神经元的积分膜电 位,并将所述积分膜电 位存储至所述膜电 位存储器中;以及,控制所述胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述路由模块;以及控制所述路由模块将所述第二发放数值作为新的第一发放数值输出至目的计算核;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
第四方面,本发明实施例提供一种芯片,包括:存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机指令,其中,还包括:多个如上述第三方面所述的计算核电路,所述芯片中的多个计算核电路采用虚拟2D-mesh 网络进行通信连接;所述处理器执行所述计算机指令时实现上述任一实施例中所述方法的步骤。
第五方面,本发明实施例提供一种计算机存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上述任一实施例中所述方法的步骤。
上述神经网络的数据处理装置、电路、芯片和存储介质,能够用于控制第一轴突模块利用其内部的存储单元,使得第一路由模块的第一发放数值无需立刻送入第一树突模块中,当第一树突模块需要获取第一发放数值时,需要向第一轴突模块请求该第一发放数值,故而,第一树突模块和第一轴突模块各自的工作互相独立,没有直接或者间接的耦合联系;另外,由于第一树突模块和第一胞体模块之间的膜电 位存储器的设置,第一树突模块所计算的积分膜电 位仅需存储膜电 位存储器即可,也无需立刻送入第一胞体模块中,因此第一胞体模块无需随着第一树突模块的启动而启动,故而,第一树突模块和第一胞体模块各自的工作互相独立,没有直接或者间接的耦合联系。故而,本实施例提供的方法,轴突模块、树突模块和胞体模块之间可以独立工作,其可以单独执行所模拟的神经元整体中某一部分的功能,三者之间的工作时刻可以部分重叠,因此大大提高了神经网络数据的处理效率。
附图说明
图1为本发明一个实施例提供的芯片结构示意图;
图1a为本发明另一个实施例提供的神经形态电路的结构示意图;
图2为本发明一个实施例提供的神经网络的数据处理方法的流程示意图;
图3为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图;
图4为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图;
图5为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图;
图6为本发明一个实施例提供的神经网络的数据处理装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的神经网络的数据处理方法,其执行主体可以是神经网络中的数据处理装置,该数据处理装置可以通过软件、硬件或者软硬件结合的方式实现。可选的,该数据处理装置可以为图1所示的神经形态芯片结构示意图中所示的计算核电路的部分或者全部。为了便于介绍后续的方法实施例,下述方法实施例中以执行主体是芯片为例来进行介绍。
如图1所示,该芯片包括处理器和多个计算核电路(该计算核电路在图1 中以“核”简称),这些计算核电路之间采用虚拟2D-mesh网络进行通信连接。其中,每个计算核电路包括:控制器、轴突模块、树突模块、胞体模块、路由模块、突触模块和膜电 位存储器,其中,轴突模块、树突模块、胞体模块、突触模块和路由模块均与控制器电连接,轴突模块分别于路由模块和所述树突模块电连接,树突模块与突触模块电连接,且树突模块通过膜电 位存储器与胞体模块电连接。需要说明的是,在一种可能的实施方式中,图1中的轴突模块、树突模块、胞体模块、突触模块、路由模块、控制器、处理器均可以通过硬件电路的方式实现。可选的,图1所示的芯片中还可以包括存储器,或者该芯片可以与外围电路中的存储器连接,从而使得该芯片中的处理器可以调用存储器中的代码或者计算机指令以控制计算核电路执行相应的功能。其中,一个计算核电路可以处理N个神经元和N×N的神经元互联接,即一个计算核电路可以对多个神经元的膜电 位进行处理。
另外,还需要说明的是,多个上述图1所示的芯片也可以通过虚拟2D-mesh 网络的通信连接方式形成神经形态电路,参见图1a所示的神经形态电路示意图。本实施例中,相连接的两个芯片间或者两个计算核电路之间的通信采用下述方法实施例中的路由数据包的格式,即本实施例中的片间通信、核间通信、以及芯片所在的设备与设备之间的通信均采用下述方法实施例中描述的数据包格式,从而大大支持支持芯片的板级扩展以及与各个兼容设备之间的连接。
可选的,在一种可能的实施方式中,片间通信时的片间接口可以是串行的,但逻辑上可以等效为并行的2D-mesh网络。可选的,在两个芯片实际的数据接收和发送过程中,发送时片间接口可以将并行的连接结构转为串行连接,接收时片间接口将串行连接转为并行连接。例如,图1中,一个芯片包括16个计算核电路和4个芯片间路由器(即片间接口),其中,每个计算核电路都具有独立的时序控制并且可各自设置功能,每个计算核电路都包含256个神经元和256× 256的可配置Crossbar全连接结构。另外,计算核与计算核之间的核间路由采用的是2D-mesh网络、并行传输的方式,即芯片内部的每个计算核的数据是可以并行传输的。但是,当该芯片与外部设备通信时,片间接口需要将并行的多路计算核数据转换成一路发送至外部设备(即上述所描述的发送时片间接口可以将并行的连接结构转为串行连接),当该芯片接收外部设备发送的数据时,片间接口需要将接收到的一路数据转换成内部的多路并行数据(即上述所描述的接收数据时片间接口可以将串行的连接结构转为并行连接)。另外,针对片间路由,本实施例采用的是高速串行数据通讯连接(即SerDes协议)。并且,上述多个计算核的运行时序可以依赖时间步脉冲和相位脉冲(单个时间步含有多个相位,相位数可配置)进行控制。
另外,本实施例中树突模块为可以对神经网络中的神经元进行膜电 位积分运算的电路模块,其模拟的是神经元网络中的树突部分;胞体模块为可以对神经网络中的神经元进行发放运算处理的电路模块,其模拟的是神经元网络中的胞体部分;突触模块为可以提供突触权重的电路模块,其模拟的是神经元网络中的神经突触部分;轴突模块为可以存储发放数值的电路模块,其模拟的是神经元网络中的轴突部分;上述路由模块为可以对胞体模块计算的发放数值执行发放操作的电路模块。上述树突模块、轴突模块、胞体模块、突触模块和路由模块均可以通过相应的专用逻辑电路来实现。可选的,本发明实施例涉及的神经网络,可以是人工神经网络,还可以是脉冲神经网络,本发明实施例对此并不做限制。
传统技术中,神经形态电路对神经元的仿真是基于神经元整体的不可拆分的模拟,即神经形态电路不能单独执行所模拟的神经元整体中某一部分的功能,其模块间的工作是相互耦合的,例如一旦树突模块启动,胞体模块就需要启动,或者,一旦轴突模块启动,树突模块就需要相应的启动。因此,传统技术中的神经形态电路在处理神经网络中的数据时,数据处理的每一个环节耦合性较强,数据处理效率低。
本发明实施例提供的神经网络的数据处理方法、装置、芯片和存储介质,旨在解决传统技术的如上技术问题。
下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例中,轴突模块将获取的发放数值存储在轴突模块内部的存储单元中,树突模块在需要发放数值时与轴突模块进行交互以获得发放数值,并且轴突模块利用发放数值进行积分运算后的结果存储至膜电 位存储器中,胞体模块在需要时从膜电 位存储器中读取。即本实施例涉及的是通过轴突模块的存储单元的设置以及膜电 位存储器的设置,避免模块间的强耦合,使得神经形态芯片中的各个模块间可以独立工作的具体过程。如图2所示,该方法包括如下步骤:
S101:控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中。
具体的,本实施例中的执行主体为图1所示的芯片,该芯片包括多个计算核电路(以下简称计算核),相连接的两个计算核之间可以进行通信。另外,一个神经形态电路中可以包括多个图1所示的芯片,芯片与芯片之间通过片间接口进行数据的通信。本实施例中,当前计算核和下述的目的计算核可以位于同一个芯片中,也可以位于不同的芯片中。其中,当前计算核指的是当前正在进行数据处理的计算核,其可以作为发送计算核,也可以作为接收数据用的接收计算核。上述目的计算核与当前计算核对应,目的计算核指的是接收当前计算核发送的数据的计算核。
当启动神经网络的数据处理流程后,芯片首先控制当前计算核的第一轴突模块从当前计算核的第一路由模块中获取第一发放数值,并将该第一发放数值存储至第一轴突模块的存储单元中,该存储单元对应模拟神经网络中的一个轴突。可选的,上述第一发放数值可以为一个数值,还可以为多个数值,凡是被第一轴突模块存储至存储单元的膜电 位均为第一发放数值。需要说明的是,第一发放数值为当前计算核所模拟的当前神经元的前一个神经元发放到路由上的值;且,第一轴突模块和第一路由模块之间的传输为单向传输,即第一轴突模块可以接收第一路由模块的数据,无法向第一路由模块发送数据。
S102:控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电 位积分运算,得到当前神经元的积分膜电 位,并将所述积分膜电 位存储至膜电 位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值。
具体的,本实施例的S101和S102的之间没有先后顺序的限定。即当芯片控制当前计算核的第一树突模块获取第一轴突模块存储的第一发放数值时,第一树突模块就向第一轴突模块请求获取第一发放数值。该请求获取的结果可以包括两种,一种是当第一轴突模块中有存储的第一发放数值时,则第一树突模块可以获取到,另一种是当第一轴突模块中没有存储第一发放数值时,则第一树突模块就无法获取到相应的发放数值。
也就是说,第一树突模块的启动,仅受限于芯片的独立控制,与第一轴突模块中是否存储了第一发放数值没有耦合联系,且由于上述第一轴突模块中存储单元的设置,第一轴突模块对从第一路由模块获得的第一发放数值的存储与否,与第一树突模块是否启动也没有直接或者间接的耦合联系。因此,本实施例中,第一轴突模块和第一树突模块之间为相互独立工作的结构,二者之间没有紧密的耦合联系。
假设第一树突模块通过请求第一轴突模块获得了第一发放数值,其在芯片的控制下,该第一树突模块可以从位于第一树突模块和第一胞体模块之间的模电位存储器中读取当前时刻的上一时刻神经元的初始膜电 位V(p)',然后根据第一发放数值(设为X)和当前计算核中的第一突触模块提供的突触权重(设为 W)进行膜电 位积分运算,即采用公式V(p)=V(p)'+XtWt,p,得到当前神经元在当前时刻的积分膜电 位V(p),并将该积分膜电 位存储至膜电 位存储器中。需要说明的是,这里所说的突触权重与第一发放数值对应,即一个第一发放数值对应一个突触权重。紧接着,第一树突模块还可以继续对当前神经元的下一个神经元进行当前时刻的膜电 位积分运算,并将结果存储至膜电 位存储器中。
由上述描述可以看出,第一树突模块的膜电 位积分运算仅取决于芯片的控制,第一树突模块所计算的结果无需立刻送入第一胞体模块,因此,无需第一胞体模块随着第一树突模块的启动而启动。故而,本实施例中,第一树突模块与第一胞体模块之间没有直接或者间接的耦合联系。
S103:控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块。
具体的,本实施例的S102和S103的之间没有先后顺序的限定。即当芯片控制当前计算核的第一胞体模块从膜电 位存储器中读取当前神经元对应的积分膜电 位时,第一胞体模块才去读取膜电 位存储器。该读取的结果可以包括两种,一种是能够读取到当前神经元对应的积分膜电 位,另一种是没有读取到当前神经元对应的积分膜电 位。也就是说,第一胞体模块的启动,仅受限于芯片的独立控制,与膜电 位存储器何时存储、是否存储当前神经元的积分膜电 位没有直接或者间接的耦合联系。
因此,由上述S101至S103的过程可以看出,第一轴突模块与第一树突模块之间,由于第一轴突模块中存储单元的设置,使得第一路由模块的第一发放数值无需立刻送入第一树突模块中,当第一树突模块需要获取第一发放数值时,需要向第一轴突模块请求该第一发放数值,故而,第一树突模块和第一轴突模块各自的工作互相独立,没有直接或者间接的耦合联系;另外,由于第一树突模块和第一胞体模块之间的膜电 位存储器的设置,第一树突模块所计算的积分膜电 位仅需存储膜电 位存储器即可,无需立刻送入第一胞体模块中,因此第一胞体模块无需随着第一树突模块的启动而启动,故而,第一树突模块和第一胞体模块各自的工作互相独立,没有直接或者间接的耦合联系。
当第一胞体模块从膜电 位存储器中读取到积分膜电 位后,第一胞体模块对该积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值。之后,第二胞体模块会根据该第二发放数值、掩模和相应的阈值信息决定是否需要发放该第二发放数值。如果需要发放,则第二胞体模块会检查第一路由模块的输入端口是否空闲,如果空闲,则向第一路由模块输出发送指令。
S104:控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核。
具体的,当第一路由模块接收到第一胞体模块的发送指令之后,第一路由模块将该第二发放数值作为新的第一发放数值输出至目的计算核的路由模块中,由目的计算核的第二路由模块将该新的第一发放数值输出至目的计算核的第二轴突模块的存储单元中。当目的计算核与当前计算核位于不同的芯片中时,第一路由模块会检查与外部芯片的通信接口是否空闲,如果空闲,则将该新的第一发放数值发送到外部,否则,第一路由模块将该新的第一发放数值缓存在内部缓冲区。
本实施例提供的神经网络的数据处理方法,由于第一轴突模块中存储单元的设置,使得第一路由模块的第一发放数值无需立刻送入第一树突模块中,当第一树突模块需要获取第一发放数值时,需要向第一轴突模块请求该第一发放数值,故而,第一树突模块和第一轴突模块各自的工作互相独立,没有直接或者间接的耦合联系;另外,由于第一树突模块和第一胞体模块之间的膜电 位存储器的设置,第一树突模块所计算的积分膜电 位仅需存储膜电 位存储器即可,也无需立刻送入第一胞体模块中,因此第一胞体模块无需随着第一树突模块的启动而启动,故而,第一树突模块和第一胞体模块各自的工作互相独立,没有直接或者间接的耦合联系。故而,本实施例提供的方法,轴突模块、树突模块和胞体模块之间可以独立工作,其可以单独执行所模拟的神经元整体中某一部分的功能,三者之间的工作时刻可以部分重叠,因此大大提高了神经网络数据的处理效率。
图3为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例涉及的是在芯片的控制逻辑下,当前计算核的第一树突模块向第一轴突模块请求获取第一发放数值的具体过程。在上述实施例的基础上,作为上述 S102中“控制当前计算核的第一树突模块向第一轴突模块请求获取第一发放数值”这一步骤的一种可选的实施方式,该步骤可以包括:
S201:控制所述第一树突模块在需要发放数值时,向所述第一轴突模块发送请求信号。
S202:控制所述第一轴突模块向所述第一树突模块发送响应信号,并输出所需要的发放数值;其中,所述响应信号的长度与所需要的发放数值的个数相关。
具体的,本实施例中,第一树突模块和第一轴突模块之间的连接是基于握手的。在芯片的控制逻辑下,第一树突模块在对神经网络中的多个神经元(假设为N个)进行膜电 位积分运算时,其需要每个神经元的前一个神经元发放给当前神经元的第一发放数值,因此,这里的第一发放数值可以是多个。此时,第一树突模块需要向第一轴突模块发送请求信号,第一轴突模块准备好数据之后,向第一树突模块发送响应信号,并输出第一树突模块所需要的发放数值,其中,该响应信号的长度与所需要的发放数值的个数相关。由于每一个发放数值的长度是固定的,因此,当响应信号的长度等于所需要的发放数值的数据等长时,第一树突模块就可以通过该响应信号来获知第一轴突模块向自己发送了多少个发放数值。可选的,第一轴突模块可以将第一树突模块所需要的发放数值按时间顺序先后输出,也可以不按照时间顺序输出。
由上述描述可以看出,本实施例中,由于第一轴突模块将获取的第一发放数值存储在轴突模块内部的存储单元中,第一树突模块在需要发放数值时,需要与第一轴突模块进行请求与响应的交互,才能获得所需要的发放数值。因此,本实施例中的第一树突模块和第一轴突模块各自的工作互相独立,没有直接或者间接的耦合联系,第一轴突模块和第一树突模块其可以单独执行所模拟的神经元整体中轴突部分和树突部分的功能,二者之间的工作时刻可以部分重叠(即第一树突模块的启动和第一轴突模块的启动之间可以是异步的,但二者启动后,二者在某个时间段是可以同时工作的),因此大大提高了神经网络数据的处理效率。
图4为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例涉及的是在芯片的控制逻辑下,第一路由模块将第二发放数值输出至目的计算核的过程。在上述实施例的基础上,可选的,上述S104可以包括如下步骤:
S301:控制所述第一路由模块在接收到所述第一胞体模块的发送指令后,根据所述第一胞体模块发送的当前神经元标识和预设的映射关系,确定当前神经元对应的路由信息;其中,所述映射关系包括不同的神经元标识与路由信息之间的对应关系。
具体的,在芯片的控制逻辑下,第二胞体模块在检查第一路由模块的输入端口空闲时,会向第一路由模块输出发送指令和当前神经元标识。第一路由模块在接收到第一胞体模块的发放指令后,第一路由模块会通过当前神经元标识查找预设的映射关系,确定当前神经元对应的路由信息。可选的,当前神经元对应的路由信息包括:当前计算核相对于目的计算核的坐标偏移信息、目的计算核的第二轴突模块中的存储单元地址、膜电 位发放类型中的至少一个。该模电位发放类型包括兴奋或者抑制,该路由信息用于向第一路由模块指示第二发放数值的发送地址。
S302:控制所述第一路由模块根据所述第二发放数值和所述当前神经元对应的路由信息生成路由数据包,并输出至所述目的计算核。
具体的,当第一路由模块确定当前神经元对应的路由信息之后,第一路由模块根据该第二发放数值和所确定的路由信息生成路由数据包,并将该路由数据包输出至目的计算核。
可选的,上述路由数据包可以采用一种带有相对地址位置的路由结构,如下述表1所示,其中目的计算核相对当前计算核的x坐标、目的计算核相对当前计算核的y坐标各占8个比特,可以实现-64到63范围的数据包传播。上述目的计算核中第二轴突模块的存储单元地址(也可以称之为轴突编号)占8个比特,可以指定256个存储单元中的的一个。发放数值占8个比特,数值发放类型指示占1个比特,用于标明该路由数据包为兴奋型的还是抑制型的。需要说明的是,路由数据包除发放数值之外的部分均可以为称为路由信息,其可以由离线的计算机根据神经网络结构生成。下述表1仅是路由数据包格式的一种示例。
表1
路由数据包 | 含义 |
32 | 兴奋/抑制指示 |
31-24 | 目的地址的x偏移量 |
23-16 | 目的地址的y偏移量 |
15-8 | 存储单元地址 |
7-0 | 发放数值 |
基于上述S301和S302的描述,上述S101中第一轴突模块从当前计算核的第一路由模块中获取的第一发放数值也可以以路由数据包的形式存在。即,上述S101中“第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至第一轴突模块的存储单元中”,具体可以为;芯片控制第一轴突模块解析从第一路由模块接收的路由数据包,得到该路由数据包中第一发放数值和第一发放数值对应在第一轴突模块中的存储单元地址;然后基于该存储单元地址,第一轴突模块将第一发放数值存储至该存储单元地址对应的存储单元中,为第一树突模块的下一步提供信息。
可选的,针对上述第一突触模块提供的第一发放数值对应的突触权重,具体可以是:第一轴突模块将第一发放数值对应在第一轴突模块中的存储单元地址发送给第一突触模块,由于一个存储单元地址(即所模拟的轴突的轴突编号) 对应一个突触权重,因此,第一突触模块可以根据该第一发放数值对应在第一轴突模块中的存储单元地址,确定第一发放数值对应的突触权重,从而使得第一树突模块可以根据第一发放数值和所对应的突触权重进行膜电 位积分运算。
本实施例中所提供的路由数据包格式的设计,使得计算核与计算核之间、芯片与芯片之间以及各个兼容设备之间可以实现神经元信息的传递,其可以大大支持芯片的板级扩展以及神经形态电路的扩展。
图5为本发明另一个实施例提供的神经网络的数据处理方法的流程示意图。本实施例涉及的是在芯片的控制逻辑下,第一胞体模块从膜电 位存储器中读取积分膜电 位,并对积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值的具体过程。在上述实施例的基础上,可选的,上述S103可以包括如下步骤:
S401:控制所述第一胞体模块根据所述积分膜电 位确定当前神经元的偏置膜电位。
具体的,在芯片的控制逻辑下,当第一胞体模块从膜电 位存储器读取到当前神经元(假设当前神经元为第p个神经元)的积分膜电 位(假设为V(p))之后,第一胞体模块将该积分膜电 位和预设的偏置值Vb(p)的和值,确定为该当前神经元的偏置膜电 位,即当前神经元的偏置膜电 位等于V(p)+Vb(p)。
S402:控制所述第一胞体模块根据所述偏置膜电 位和神经网络类型,得到当前神经元的第二发放数值。
具体的,在芯片的控制逻辑下,第一胞体模块可以根据上述偏置膜电 位和神经网络类型,确定当前神经元的第二发放数值。该神经网络类型可以为人工神经网络,还可以为脉冲神经网络。可选的,第一胞体模块确定第二发放数值的方式可以包括以下两种:
第一种可能的实施方式:在人工神经网络中,芯片控制第一胞体模块根据当前神经元的偏置膜电 位与发放值查找表fLUT,即采用F(p)=fLUT(V(p)+Vb(p))得到当前神经元的第二发放数值。
第二种可能的实施方式:在脉冲神经网络中,芯片控制第一胞体模块根据当前神经元的偏置膜电 位以及预设阈值,确定当前神经元的第二发放数值。
具体的,在该可能的实施方式中,第一胞体模块可以基于当前神经元的偏置膜电位V(p)+Vb(p)和预设阈值Vth(p)的大小,确定当前神经元的第二发放数值 F(p),具体可以根据下述公式实现:该公式中,若当前神经元的偏置膜电位V(p)+Vb(p)大于或者等于预设阈值,则第一胞体模块确定发放当前神经元,第二发放数值等于1,若当前神经元的偏置膜电 位 V(p)+Vb(p)小于预设阈值时,胞体模块确定不向路由上发放当前神经元,第二发放数值即为0。
S403:控制所述第一胞体模块将所述当前神经元的偏置膜电 位存储至所述膜电位存储器中,并将所述偏置膜电 位作为当前神经元进行下一次膜电 位积分运算的初始值。
需要说明的是,步骤S402和S403之间没有时序关系的限定,二者可以并行执行,还可以一前一后的执行,本实施例对此并不做限定。另外,由上述S402 中两种可能的实施方式描述内容可以得知,芯片会控制第一胞体模块将当前神经元的偏置膜电 位V(p)”存储至膜电 位存储器中,并将该偏置膜电 位作为当前神经元在下一时刻进行膜电 位积分运算的初始值。
本实施例的方法,通过在由于第一树突模块和第一胞体模块之间的膜电 位存储器的设置,使得第一树突模块和第一胞体模块各自的工作互相独立,没有直接或者间接的耦合联系,其大大提高了神经网络数据的处理效率。
图6为本发明一个实施例提供的神经网络的数据处理装置的结构示意图。如图6所示,该装置包括:第一控制模块21、第二控制模块22、第三控制模块 23和第四控制模块24。
具体的,第一控制模块21,用于控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中;
第二控制模块22,用于控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电 位积分运算,得到当前神经元的积分模电位,并将所述积分膜电 位存储至膜电 位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
第三控制模块23,用于控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块;
第四控制模块24,用于控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核。
本实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中的一个实施例中,上述第二控制模块22,具体用于控制所述第一树突模块在需要发放数值时,向所述第一轴突模块发送请求信号;并控制所述第一轴突模块向所述第一树突模块发送响应信号,并输出所需要的发放数值;其中,所述响应信号的长度与所需要的发放数值的个数相关。
在其中的一个实施例中,上述第二控制模块22,具体用于控制所述第一路由模块在接收到所述第一胞体模块的发送指令后,根据所述第一胞体模块发送的当前神经元标识和预设的映射关系,确定当前神经元对应的路由信息;并控制所述第一路由模块根据所述第二发放数值和所述当前神经元对应的路由信息生成路由数据包,并输出至所述目的计算核;其中,所述映射关系包括不同的神经元标识与路由信息之间的对应关系。
在其中的一个实施例中,当前神经元对应的路由信息包括:所述当前计算核相对于所述目的计算核的坐标偏移信息、所述目的计算核的第二轴突模块中的存储单元地址、膜电 位发放类型中的至少一个。
在其中的一个实施例中,上述第一控制模块21,具体用于控制所述第一轴突模块解析从所述第一路由模块接收的路由数据包,得到所述第一发放数值和所述第一发放数值对应在第一轴突模块中的存储单元地址;并控制所述第一轴突模块将所述第一发放数值存储至所述存储单元地址对应的存储单元中。
在其中的一个实施例中,上述第一控制模块21,还用于控制所述第一轴突模块向所述第一突触模块提供所述第一发放数值对应在第一轴突模块中的存储单元地址;以及控制所述第一突触模块根据所述第一发放数值对应在第一轴突模块中的存储单元地址,确定所述第一发放数值对应的突触权重。
在其中的一个实施例中,上述第三控制模块23,具体用于控制所述第一胞体模块根据所述积分膜电 位确定当前神经元的偏置膜电 位;以及控制所述第一胞体模块根据所述偏置膜电 位和神经网络类型,得到当前神经元的第二发放数值;以及控制所述第一胞体模块将所述当前神经元的偏置膜电 位存储至所述模电位存储器中,并将所述偏置膜电 位作为当前神经元进行下一次膜电 位积分运算的初始值。
上述实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
本发明的一个实施例中,还提供一种如图1中所示的计算核电路,该计算核电路包括控制器11、轴突模块12、树突模块13、胞体模块14、路由模块15、突触模块16和膜电 位存储器17,所述轴突模块12、所述树突模块13、所述胞体模块14、所述突触模块16和所述路由模块15均与所述控制器11电连接,所述轴突模块12分别于所述路由模块15和所述树突模块13电连接,所述树突模块13与所述突触模块16电连接,且所述树突模块13通过所述膜电 位存储器与所述胞体模块14电连接;
所述控制器11用于,控制所述轴突模块12将从路由模块15中获取的第一发放数值存储至所述轴突模块12的存储单元中;以及控制所述树突模块13向轴突模块12请求获取所述第一发放数值,并根据所述第一发放数值以及所述突触模块16提供的突触权重进行膜电位积分运算,得到当前神经元的积分膜电 位,并将所述积分膜电 位存储至所述膜电 位存储器中;以及,控制所述胞体模块14 从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述路由模块15;以及控制所述路由模块15将所述第二发放数值作为新的第一发放数值输出至目的计算核;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值。
本实施例提供的计算核电路,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
本发明的一个实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述方法实施例中涉及的神经网络的数据处理方法。
上述实施例可以全部或者部分的通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或者部分地以计算机程序产品的形式实现,所述计算机程序产品可以包括一个或者多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或者部分地产生按照本发明实施例所述的流程或者功能。其中,所述计算机可以是通用的计算机、专用计算机、计算机网络或者其他可编程装置;所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤数字用户线DSL)或者无线(例如红外、无线、微波等) 方式向另一个网站站点、计算机、服务器或者数据中心进行传输;所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或者多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如软盘、硬盘、磁带、光介质(例如DVD)、或者半导体介质(例如固态硬盘SSD)等。
在本发明的一个实施例中,还提供一种芯片,包括:存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机指令,还包括:多个如图1 所示结构中的计算核电路,所述芯片中的多个计算核电路采用虚拟2D-mesh网络进行通信连接;所述处理器执行所述计算机指令时实现上述神经网络的数据处理方法,所述方法包括:
控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中;
控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电位积分运算,得到当前神经元的积分膜电 位,并将所述积分模电位存储至膜电 位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块;
控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核。
在其中的一个实施例中,所述控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,包括:
控制所述第一树突模块在需要发放数值时,向所述第一轴突模块发送请求信号;
控制所述第一轴突模块向所述第一树突模块发送响应信号,并输出所需要的发放数值;其中,所述响应信号的长度与所需要的发放数值的个数相关。
在其中的一个实施例中,所述控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核,包括:
控制所述第一路由模块在接收到所述第一胞体模块的发送指令后,根据所述第一胞体模块发送的当前神经元标识和预设的映射关系,确定当前神经元对应的路由信息;其中,所述映射关系包括不同的神经元标识与路由信息之间的对应关系;
控制所述第一路由模块根据所述第二发放数值和所述当前神经元对应的路由信息生成路由数据包,并输出至所述目的计算核。
在其中的一个实施例中,所述当前神经元对应的路由信息包括:所述当前计算核相对于所述目的计算核的坐标偏移信息、所述目的计算核的第二轴突模块中的存储单元地址、膜电 位发放类型中的至少一个。
在其中的一个实施例中,所述控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中,包括:
控制所述第一轴突模块解析从所述第一路由模块接收的路由数据包,得到所述第一发放数值和所述第一发放数值对应在第一轴突模块中的存储单元地址;
控制所述第一轴突模块将所述第一发放数值存储至所述存储单元地址对应的存储单元中。
在其中的一个实施例中,所述方法还包括:
控制所述第一轴突模块向所述第一突触模块提供所述第一发放数值对应在第一轴突模块中的存储单元地址;
控制所述第一突触模块根据所述第一发放数值对应在第一轴突模块中的存储单元地址,确定所述第一发放数值对应的突触权重。
在其中的一个实施例中,所述控制当前计算核的第一胞体模块从所述膜电 位存储器中读取所述积分膜电 位,并对所述积分膜电 位进行发放运算处理,得到当前神经元的第二发放数值,包括:
控制所述第一胞体模块根据所述积分膜电 位确定当前神经元的偏置膜电 位;
控制所述第一胞体模块根据所述偏置膜电 位和神经网络类型,得到当前神经元的第二发放数值;
控制所述第一胞体模块将所述当前神经元的偏置膜电 位存储至所述膜电 位存储器中,并将所述偏置膜电 位作为当前神经元进行下一次膜电 位积分运算的初始值。
上述实施例提供的芯片,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/ 或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,在没有超过本申请的范围内,可以通过其他的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种神经网络的数据处理方法,其特征在于,包括:
控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中;
控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电位积分运算,得到当前神经元的积分膜电位,并将所述积分膜电位存储至膜电位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
控制当前计算核的第一胞体模块从所述膜电位存储器中读取所述积分膜电位,并对所述积分膜电位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块;
控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至目的计算核。
2.根据权利要求1所述的方法,其特征在于,所述控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,包括:
控制所述第一树突模块在需要发放数值时,向所述第一轴突模块发送请求信号;
控制所述第一轴突模块向所述第一树突模块发送响应信号,并输出所需要的发放数值;其中,所述响应信号的长度与所需要的发放数值的个数相关。
3.根据权利要求1所述的方法,其特征在于,所述控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至所述目的计算核,包括:
控制所述第一路由模块在接收到所述第一胞体模块的发送指令后,根据所述第一胞体模块发送的当前神经元标识和预设的映射关系,确定当前神经元对应的路由信息;其中,所述映射关系包括不同的神经元标识与路由信息之间的对应关系;
控制所述第一路由模块根据所述第二发放数值和所述当前神经元对应的路由信息生成路由数据包,并输出至所述目的计算核。
4.根据权利要求3所述的方法,其特征在于,所述当前神经元对应的路由信息包括:所述当前计算核相对于所述目的计算核的坐标偏移信息、所述目的计算核的第二轴突模块中的存储单元地址、膜电位发放类型中的至少一个。
5.根据权利要求4所述的方法,其特征在于,所述控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中,包括:
控制所述第一轴突模块解析从所述第一路由模块接收的路由数据包,得到所述第一发放数值和所述第一发放数值对应在第一轴突模块中的存储单元地址;
控制所述第一轴突模块将所述第一发放数值存储至所述存储单元地址对应的存储单元中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
控制所述第一轴突模块向所述第一突触模块提供所述第一发放数值对应在第一轴突模块中的存储单元地址;
控制所述第一突触模块根据所述第一发放数值对应在第一轴突模块中的存储单元地址,确定所述第一发放数值对应的突触权重。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述控制当前计算核的第一胞体模块从所述膜电位存储器中读取所述积分膜电位,并对所述积分膜电位进行发放运算处理,得到当前神经元的第二发放数值,包括:
控制所述第一胞体模块根据所述积分膜电位确定当前神经元的偏置膜电位;
控制所述第一胞体模块根据所述偏置膜电位和神经网络类型,得到当前神经元的第二发放数值;
控制所述第一胞体模块将所述当前神经元的偏置膜电位存储至所述膜电位存储器中,并将所述偏置膜电位作为当前神经元进行下一次膜电位积分运算的初始值。
8.一种神经网络的数据处理装置,其特征在于,包括:
第一控制模块,用于控制当前计算核的第一轴突模块将从当前计算核的第一路由模块中获取的第一发放数值存储至所述第一轴突模块的存储单元中;
第二控制模块,用于控制当前计算核的第一树突模块向所述第一轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及当前计算核中的第一突触模块提供的突触权重进行膜电位积分运算,得到当前神经元的积分膜电位,并将所述积分膜电位存储至膜电位存储器中;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值;
第三控制模块,用于控制当前计算核的第一胞体模块从所述膜电位存储器中读取所述积分膜电位,并对所述积分膜电位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述第一路由模块;
第四控制模块,用于控制所述第一路由模块继续将所述第二发放数值作为新的第一发放数值输出至目的计算核。
9.一种计算核电路,其特征在于,包括:控制器、轴突模块、树突模块、胞体模块、路由模块、突触模块和膜电位存储器,所述轴突模块、所述树突模块、所述胞体模块、所述突触模块和所述路由模块均与所述控制器电连接,所述轴突模块分别于所述路由模块和所述树突模块电连接,所述树突模块与所述突触模块电连接,且所述树突模块通过所述膜电位存储器与所述胞体模块电连接;
所述控制器用于,控制所述轴突模块将从路由模块中获取的第一发放数值存储至所述轴突模块的存储单元中;以及控制所述树突模块向轴突模块请求获取所述第一发放数值,并根据所述第一发放数值以及所述突触模块提供的突触权重进行膜电位积分运算,得到当前神经元的积分膜电位,并将所述积分膜电位存储至所述膜电位存储器中;以及,控制所述胞体模块从所述膜电位存储器中读取所述积分膜电位,并对所述积分膜电位进行发放运算处理,得到当前神经元的第二发放数值,并将所述第二发放数值输出至所述路由模块;以及控制所述路由模块将所述第二发放数值作为新的第一发放数值输出至目的计算核;所述第一发放数值为所述当前神经元的前一个神经元发放到路由上的值。
10.一种芯片,其特征在于,包括:存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机指令,其特征在于,还包括:多个如权利要求9所述的计算核电路,所述芯片中的多个计算核电路采用虚拟2D-mesh网络进行通信连接;
所述处理器执行所述计算机指令时实现权利要求1-7任一项所述方法的步骤。
11.一种计算机存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711408060.7A CN108334942B (zh) | 2017-12-22 | 2017-12-22 | 神经网络的数据处理方法、装置、芯片和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711408060.7A CN108334942B (zh) | 2017-12-22 | 2017-12-22 | 神经网络的数据处理方法、装置、芯片和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334942A CN108334942A (zh) | 2018-07-27 |
CN108334942B true CN108334942B (zh) | 2020-08-04 |
Family
ID=62923290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711408060.7A Active CN108334942B (zh) | 2017-12-22 | 2017-12-22 | 神经网络的数据处理方法、装置、芯片和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334942B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220004856A1 (en) * | 2018-11-06 | 2022-01-06 | Genesys Logic, Inc. | Multichip system and data processing method adapted to the same for implementing neural network application |
CN112686364B (zh) * | 2019-10-18 | 2023-12-08 | 华为技术有限公司 | 一种神经网络计算芯片及计算方法 |
CN112101535B (zh) * | 2020-08-21 | 2024-04-09 | 深圳微灵医疗科技有限公司 | 脉冲神经元的信号处理方法及相关装置 |
CN112163673B (zh) * | 2020-09-28 | 2023-04-07 | 复旦大学 | 一种用于大规模类脑计算网络的种群路由方法 |
CN112596881B (zh) * | 2020-12-25 | 2022-10-25 | 清华大学 | 存储部件及人工智能处理器 |
CN112766475B (zh) * | 2020-12-25 | 2023-04-28 | 清华大学 | 处理部件及人工智能处理器 |
CN112784972B (zh) * | 2021-01-15 | 2022-10-11 | 之江实验室 | 一种面向片上神经网络的突触实现架构 |
CN113011572B (zh) * | 2021-03-18 | 2024-04-16 | 北京灵汐科技有限公司 | 一种轴突变化量确定方法和装置、权重处理方法和装置 |
CN113607628B (zh) * | 2021-09-02 | 2023-02-10 | 清华大学 | 神经形态计算驱动图像流式细胞仪对细胞图像流处理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279217B (zh) * | 2011-05-27 | 2014-04-16 | 东南大学 | 单神经元及多神经元集群间神经信号传递特性探测装置 |
US10318861B2 (en) * | 2015-06-17 | 2019-06-11 | International Business Machines Corporation | Artificial neuron apparatus |
US10733500B2 (en) * | 2015-10-21 | 2020-08-04 | International Business Machines Corporation | Short-term memory using neuromorphic hardware |
CN106056212B (zh) * | 2016-05-25 | 2018-11-23 | 清华大学 | 一种人工神经网络计算核 |
CN106201651A (zh) * | 2016-06-27 | 2016-12-07 | 鄞州浙江清华长三角研究院创新中心 | 神经形态芯片的模拟器 |
-
2017
- 2017-12-22 CN CN201711408060.7A patent/CN108334942B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108334942A (zh) | 2018-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334942B (zh) | 神经网络的数据处理方法、装置、芯片和存储介质 | |
JP6250054B2 (ja) | ニューラル・コア回路 | |
US11295201B2 (en) | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network | |
US9818058B2 (en) | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation | |
US9311596B2 (en) | Methods for memory management in parallel networks | |
US8719199B2 (en) | Systems and methods for providing a neural network having an elementary network description for efficient implementation of event-triggered plasticity rules | |
TWI514164B (zh) | 用於仿神經系統之基本網路描述 | |
US8712941B2 (en) | Elementary network description for efficient link between neuronal models and neuromorphic systems | |
US10984307B2 (en) | Peripheral device interconnections for neurosynaptic systems | |
CN113098773B (zh) | 数据处理方法、装置及系统 | |
CN108229687B (zh) | 数据处理方法、数据处理装置及电子设备 | |
KR102191408B1 (ko) | 뉴럴 네트워크 프로세서 | |
EP2482195A1 (en) | Semiconductor device and host apparatus | |
KR20180046363A (ko) | Dram 기반 프로세싱 장치를 위한 확장 아키텍처 | |
US20140214739A1 (en) | Cortical simulator | |
CN106489132B (zh) | 读写数据的方法、装置、存储设备和计算机系统 | |
CN115136123A (zh) | 用于集成电路架构内的自动化数据流和数据处理的瓦片子系统和方法 | |
US20210264257A1 (en) | AI Accelerator Virtualization | |
CN114564434B (zh) | 一种通用多核类脑处理器、加速卡及计算机设备 | |
CN104866460B (zh) | 一种基于SoC的容错自适应可重构系统与方法 | |
CN113033785B (zh) | 芯片、神经网络训练系统、内存管理方法及装置、设备 | |
CN112970037B (zh) | 用于实施神经网络应用的多芯片系统、适用于多芯片系统的数据处理方法、和非暂时性计算机可读介质 | |
CN106815638B (zh) | 输入权重拓展的神经元信息处理方法和系统 | |
CN108171326B (zh) | 神经网络的数据处理方法、装置、芯片、设备和存储介质 | |
JP7453229B2 (ja) | データ処理モジュール、データ処理システム、およびデータ処理方法 |
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 |