一种类脑计算芯片及计算设备的制作方法

文档序号:17948742发布日期:2019-06-18 23:52阅读:257来源:国知局
一种类脑计算芯片及计算设备的制作方法

本发明涉及芯片技术领域,特别是涉及一种类脑计算芯片及计算设备。



背景技术:

目前,人工神经元模型根据模拟生物神经元的精细程度和侧重不同具有很多种。如最典型的integrateandfire(if)模型,leakyintegrate-and-fire(lif)模型和izhikevich模型等。传统的类脑芯片(神经形态芯片)只会考虑其中1-2种模型,并采用纯asic方式实现,虽然它们大都具有执行效率高,功耗低,但可编程性不足,无法支持更多模型。虽然,传统芯片中会采用处理器众核的可编程的神经形态芯片,每个核是一个通用arm处理器,但由于其没有针对乘加的额外加速模块,使得运算效率低下。



技术实现要素:

鉴于上述问题,本发明提供了一种克服上述问题或至少部分地解决了上述问题的一种类脑计算芯片及计算设备。

根据本发明的一个方面,提供了一种类脑计算芯片,其特征在于,所述类脑计算芯片是由一个或多个功能核组成的众核系统,各功能核之间通过片上网络进行数据传输;

所述功能核包括:

至少一个可编程的神经元处理器,用于计算多种神经元模型;

至少一个协处理器,与所述神经元处理器耦合,用于执行积分运算和/或乘加类运算;

其中,所述神经元处理器可调用所述协处理器执行乘加类运算。

可选地,所述协处理器用于执行积分运算具体为:执行神经元模型中一组输入轴突到一组神经元的胞体之间的能量积分运算;所述能量积分运算过程通过以下方式表示:

y=wx;

其中,x表示一组突触;y表示一组神经元,w代表x到y的突触连接关系。

可选地,所述w表示为二维矩阵mxn;其中,w具有mxn个乘加运算;

所述协处理器,还用于至少部分地并行完成所述mxn个乘加运算。

可选地,所述乘加类运算包括以下至少之一:向量-矩阵的乘、向量-矩阵的加、向量加,向量求和、向量点乘、向量乘以及矩阵-矩阵乘。

可选地,所述神经元处理器,还用于将指定计算参数和/或计算数据源传输至所述协处理器;

所述协处理器,还用于基于所述神经元处理器传输的所述指定计算参数和计算数据源执行相应地数据运算,并在所述数据运算至少部分执行完成后向所述神经元处理器发送通知,由所述神经元处理器在接收到所述通知后执行其他运算。

可选地,所述神经元处理器,还用于在所述协处理器进行乘加类运算的同时,并行运行其他运算程序。

可选地,所述类脑计算芯片还包括:

存储器阵列,包括至少一个存储器,与所述神经元处理器和/或所述协处理器耦合;

所述存储器,用于对所述神经元处理器和/或协处理器的运算数据进行存储,并通过预设方式实现所述多个所述神经元处理器和/或协处理器的并发访问。

可选地,所述神经元处理器和所述协处理器至少共享一片存储器,并通过所述存储器交换数据。

可选地,所述类脑计算芯片还包括:

路由收发器,路由收发器,与所述神经元处理器和协处理器耦合,用于在所述神经元处理器和协处理器之间进行信号传输。

可选地,所述神经元模型包括脉冲神经网络snn模型。

根据本发明的另一个方面,还提供了一种计算设备,包括上述任一项所述的类脑计算芯片。

可选地,所述计算设备还包括:

存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由类脑计算芯片加载并执行。

本发明提供了一种新型类脑计算芯片及计算设备,通过采用并行乘加协处理器和神经元处理器协同工作的核结构,有效解决了神经形态芯片效率和灵活度之间的矛盾,并且每核具有高计算吞吐率的并行乘加协处理器和高灵活度的神经元处理器,从而可以高效率地计算各类snn模型,实现高精度的脑机制仿真以及高精度的类脑计算。

针对主流的大部分神经元模型对突触积分部分、大运算量的乘加操作需求,以及模型各异灵活度很高的神经元更新和激活模型,提供了高可编程性处理器,以及众核系统结构,进而实现大规模神经元并行计算。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例的众核系统结构示意图;

图2示出了本发明一个实施例的功能核结构示意图;

图3示出了本发明另一实施例的功能核结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

类脑计算芯片是以模拟生物脉冲神经网络为基本功能的硬件器件,是下一代人工智能的核心运算驱动力。传统的神经形态芯片实现大多只考虑较为简单的leakyintegrateandfire(lif)模型,此模型具有计算复杂度较低的特性,但依据此模型算法设计的芯片并不能用于其他模型的计算,因此可称为单一模型的神经形态芯片。另一种芯片属于通用数学计算芯片,具有细粒度的执行单元和调度能力,但并未对神经形态算法做专门的优化。因此,这两种芯片都不能称为可以用于富snn模型的类脑芯片。另外,神经形态的模型也不完全确定,一直在发展完善中,因此未知算法也对芯片兼容性提出挑战。

本发明实施例提供了一种新型类脑计算芯片,参见图1可知,本发明实施例提供的脑类计算芯片可以是由一个或多个功能核100组成的众核系统,各功能核100之间可以通过片上网络进行数据传输。

参见图2可知,本发明实施例提供的功能核100可以包括:至少一个神经元处理器110,用于计算多种神经元模型。如integrateandfire(积分-发放)、mccullochandpitts(m-p)、hodgkin-huxley模型、perceptron(感知器)、fitzhugh-nagumo(菲茨休-南云)、leakyintegrate-and-fire(lif)、morris-lecar、quadraticintegrate-and-fire(二次积分-发放)、time-varyingintegrate-and-firemodel(时变积分-发放模型)、wilsonpolynomial(wilson多项式)、integrate-and-fireorburst、resonate-and-fire、izhikevich、exponentialintegrate-and-fire(指数积分-发放)、generalizedintegrate-and-fire(广义积分-发放)、adaptiveexponentialintegrate-and-fire(自适应指数积分-发放)、mihalas-neibur等等。上述所列举的神经元模型为常见的神经元模型,实际应用中还可以包括其他神经元模型。另外,对于上述所列举各神经元模型对应的中文只是较为常用释义,并不做为对神经元模型本身的限定。

本发明实施例提供的神经元模型优选为脉冲神经网络snn模型。

脉冲神经网络(snn-spikingneuralnetworks)经常被誉为第三代人工神经网络,其模拟神经元更加接近生物脑。由于脉冲神经网络的仿生特性,具有由粗到精各种模型算法。另外,snn还具有各类时域编码方式,进一步体现了模型的丰富性。如unarycoding(元编码)、burstcoding(突发编码)、ratecoding(频率编码)、temporalcoding(时间编码)、spatial-temporalcoding(空间-时间编码)以及populationcoding(群编码)等。

本发明实施例中的神经元处理器110可以具备两个特性:其一,它是一个具有图灵完备性的处理器,具有与通用计算机完备性等价的指令集,可以编写用于神经元计算的程序,即该神经元处理器是可编程的。其二,它可以是根据snn模型定制优化的处理器,不同于gpu,dsp,x86cpu等通用处理器,它针对snn模型的运算特点进行了指令优化,具有专用的神经元处理指令。

继续参见图2可知,本发明实施例提供的功能核100还可以包括至少一个协处理器120,与神经元处理器110耦合,用于执行积分运算和/或乘加类运算。实际应用中,神经元处理器110和协处理器120可以通过核内总线或者内存接口电路连接,在总线模式下,二者可以共享内存。

可选地,本发明实施例中的协处理器120为并行乘加协处理器,其执行积分运算时,可以执行任一神经元模型中一组输入轴突到一组神经元的胞体之间的能量积分运算。在脉冲神经网络模型中,连在细胞膜上的分叉结构叫树突,是输入,那根长长的“尾巴”叫轴突,是输出。神经元输出的有电信号和化学信号。最主要的是沿着轴突细胞膜表面传播的一个电脉冲。树突和轴突都有大量的分支。轴突的末端通常连接到其他细胞的树突上,连接点上是一个叫“突触”的结构,一个神经元的输出通过突触传递给成千上万个下游的神经元。一个神经元有成千上万个上游神经元,积累它们的输入,产生输出。

可选地,一组输入轴突到一组神经元的胞体之间能量积分运算过程通过以下方式表示:y=wx;

其中,x表示一组突触;y表示一组神经元,w代表x到y的突触连接关系。另外,x所表示的一组突触为一维向量,y所标识的一组神经元也为一维向量。其中,w表示为二维矩阵mxn;其中,w具有mxn个乘加运算;协处理器120,还可以用于至少部分地并行完成上述mxn个乘加运算。由于上述过程的运算量很大,无法在神经元处理器高效率完成,因此本实施例中采用并行乘加协处理器完成,可进一步提升运算效率。其中,m、n均为大于1的整数,具体可以根据不同的情况进行设置,本发明不做限定。

上文提及,协处理器120还可以用于执行乘加类运算,乘加类运算可以包括以下至少之一:向量-矩阵的乘、向量-矩阵的加、向量加,向量求和、向量点乘、向量乘以及矩阵-矩阵乘。当然,除上述介绍的之外,协处理器120还可执行其他运算,本发明不做限定。上述多种类的乘加类运算复用乘加阵列,并以神经元处理器110中设置的协处理器120的调用指令的方式与神经元处理器110进行交互。

神经元处理器110在与协处理器120交互时,可调用协处理器120执行乘加类运算,具体可以包括将指定计算参数和计算数据源传输至协处理器120,或是通过预先编译的代码实现调用。即,神经元处理器110,还可以用于将指定计算参数和/或计算数据源传输至所述协处理器120;协处理器120,还可以用于基于神经元处理器110传输的所述指定计算参数和/或计算数据源执行相应地数据运算,并在所述数据运算至少部分执行完成后向所述神经元处理器110发送通知,由神经元处理器110在接收到所述通知后执行其他运算。可选地,神经元处理器110,还可以用于在协处理器120进行乘加类运算的同时,并行运行其他运算程序,如乘加类计算之外的调度,计算等程序。其中,神经元处理器110向协处理器120传输指定计算参数和/或计算数据源时,可以在预先传输或调用协处理器120执行乘加类运算时进行传输,本发明不做限定。

图3示出了本发明另一实施例的功能核结构示意图,参见图3可知,本发明另一实施例提供的功能核100还可以包括存储器阵列130,包括至少一个存储器,与神经元处理器110和/或所述协处理器120耦合。其中,所述存储器用于对所述神经元处理器110和/或协处理器120的运算数据进行存储,并通过预设方式实现所述多个所述神经元处理器110和/或协处理器120的并发访问。神经元处理器110和所述协处理器120至少共享一片存储器130,并通过存储器130交换数据。该预设方式可以是负载平衡或是其他方式,本发明不做限定。

也就是说,本实施例中,神经元处理器110和协处理器120的大批量数据交互采用共享内存完成,共享内存通过仲裁实现多个神经元处理器110和协处理器120的并发访问。举例来说,协处理器120与神经元处理器110同时访问内存时,先响应协处理器120的访问,并挂起神经元处理器110的访问,直到并协处理器120不再访问时再响应神经元处理器110的访问。当有多个协处理器120同时访问内存时,将协处理器120标号,按照序号小的先响应等等。

继续参见图3可知,本发明另一实施例提供的功能核100还可以包括路由收发器140,与神经元处理器110和协处理器120耦合,用于在所述神经元处理器110和协处理器120之间进行信号传输,协处理器120与神经元处理器110之间可以有其他控制信号,如启动信号,二者的获取状态信号等。

除上述介绍的之外,本发明实施例提供的类脑计算芯片,还可以用于非snn的其他类神经网络的计算、图计算和高速路由交换机等设备。

下面通过几个具体实施例如何采用神经元处理器和并行乘加协处理器实现模型计算进行介绍说明。

实施例一,leakyintegrateandfire(lif)模型

1、神经元膜电位值更新:在t时刻更新lif脉冲神经元的膜电位值v1(t),在t时刻时神经元的膜电位值v1(t)可以表示为:轴突输入x(t)和突触权重w1的点积,与上一时刻神经元保持的膜电位值v1rst(t)经膜电位衰减系数α作用后的数值的和,如下公式所示:

v1(t)=x(t)·w1+αv1rst(t-1)公式(1)

2.神经元输出判断:lif脉冲神经元的输出为由0或者1表示的脉冲的有无,所述输出脉冲y1(t)由t时刻神经元膜电位v1(t)加上偏置项b(也被称为长治衰减项)后,与神经元阈值vth作比较,当所述偏置后的膜电位值大于或等于神经元阈值vth时,y1(t)为1,反之当偏置后的膜电位值小于神经元阈值vth时,y1(t)为0,如下公式所示:

y1(t)=argmax(vth,v1(t)+b)公式(2)

3.神经元膜电位复位:当lif脉冲神经元由脉冲产生,即y1(t)为1时,需要对神经元模电为进行复位操作,其可由如下数学形式表示:当前神经元膜电位v1(t)减去一个复位常熟β的值和输出脉冲y1(t)的积,得到复位操作作用之后的神经元膜电位v1rst(t)

v1rst(t)=v1(t)-βy1(t)公式(3)

其中,y=argmax(a,b)的定义为:当b>a,y=1;否则,y=0.

在本实施例中,阵列乘加协处理器具备以下功能:

向量矩阵乘指令:vector=vec_mat_mul(matrix,vector)

向量点乘:vector=vec_mul(vector1,vector2)

向量加法:vector=vec_add(vector1,vector2)

向量减法:vector=vec_sub(vector1,vector2)

神经元处理器实现argmax函数。

则上述lif过程可以表示为代码:

router_read(x)

i1=vec_mat_mul(w1,x)//协处理器高效实现

i2=vec_mul(α,v1)//协处理器高效实现

v1=vec_add(i1,i2)//协处理器高效实现

v2=vec_add(v1,b)//协处理器高效实现

y1=argmax(vth,v2)

y2=vec_mul(y1,β)//协处理器高效实现

v1=vec_sub(v1,y2)//协处理器高效实现

router_send(v1)//协处理器高效实现

其中vec_mat_mul,vec_mul,vec_add,vec_sub由阵列乘加协处理器计算,argmax等其他操作及运算流程由神经元处理器通过编程处理。

这个代码存放于神经元处理器中,神经元处理器调用乘加协处理器完成对应功能,对于乘加协处理器没有的功能,如argmax,采用神经元处理器软件代码实现。

实施例二izhikevichmodel模型

izhikevichmodel是用微分方程表示神经元膜电位的更新,如下公式所示,其中v表示izhikevich神经元的膜电位;u为恢复变量,用于描述生物神经元中na+、k+的活动;i表示神经元接受到的输入刺激,同发明实施例一类似输入刺激由轴突输入x和突触权重w的乘积得到。

公式(4)表示了神经元膜电位v随时间的变化由其自身,当前的恢复变量u和输入刺激i共同决定,公式(5)表示了恢复变量u随时间的变化由其自身和当前的神经元膜电位v共同决定,公式(6)则描述了神经元的输出判断和神经元膜电位及恢复变量的复位更新逻辑,当神经元膜电位v大于阈值v_th神经元回输出一个脉冲信号(spike,与发明实施例一中的y1(t)相同,为由0和1表示的脉输出脉冲的有无),同时更新膜电位v和恢复变量u的值;公式中的a、b、c、d均为不同的神经元参数,进一步的,在本发明的实施例中,公式(4)中所出现的常数值(0.04、5、140),在由协处理器高效实现时也可以被配置为其他值,以实现更加灵活的膜电位更新。

ifv>vth,spike&v=c&u=u+d公式(6)

对应实现代码如下:

//以下代码用于计算

un=vec_sub(0,u)//协处理器高效实现

v1=vec_add(un,input)//协处理器高效实现

v1=vec_add(v1,140)//协处理器高效实现

v2=vec_mul(5,v)//协处理器高效实现

v1=vec_add(v1,v2)//协处理器高效实现

v2=vec_mul(v,v)//协处理器高效实现

v2=vec_mul(v2,0.04)//协处理器高效实现

v1=vec_add(v1,v2)//协处理器高效实现

v=vec_add(v1,v)//协处理器高效实现

//以下代码用于计算和fu>uth,spike&v=c&u=u+d

v1=vec_mul(b,v)//协处理器高效实现

v1=vec_sub(v1,u)//协处理器高效实现

u1=vec_mul(v1,a)//协处理器高效实现

u1=vec_add(u1,u)//协处理器高效实现

u2=vec_mul(para1,v)//协处理器高效实现

u=vec_sub(u2,u1)//协处理器高效实现

s=argmax(vth,v)

v=sel(s,c,v)

ud=vec_add(u,d)//协处理器高效实现

u=sel(s,ud,u)

y=sel(c,a,b)的执行方式是当c=1时,y=a,否则y=b。

可见采用神经元处理器调用乘加协处理器的方式可以高效地执行lif,izhikevich等各类神经元模型。具有高效性和灵活性。

基于同一发明构思,本发明实施例还提供了一种计算设备,包括上述任一实施例所述的类脑计算芯片。

在本发明一可选实施例中,所述计算设备还包括:

存储设备,用于存储计算机程序,所述计算机程序在所述计算设备中运行时由类脑计算芯片加载并执行。

本发明实施例提供的类脑计算芯片,用于高效率地实现各类神经形态算法,尤其是对于富snn模型的计算特点,具有高运算密度的突触计算,高灵活度需求的胞体计算,以实现对富snn模型类脑计算的优化。并且,通过采用并行乘加协处理器和神经元处理器协同工作的核结构,有效解决了神经形态芯片效率和灵活度之间的矛盾,并且每核具有高计算吞吐率的并行乘加协处理器和高灵活度的神经元处理器,从而可以高效率地计算各类snn模型,实现高精度的脑机制仿真以及高精度的类脑计算。

针对主流的大部分神经元模型对突触积分部分、大运算量的乘加操作需求,以及模型各异灵活度很高的神经元更新和激活模型,提供了高可编程性处理器,以及众核系统结构,进而实现大规模神经元并行计算。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1