掌桥专利:专业的专利平台
掌桥专利
首页

脑仿真处理方法及装置、电子设备、计算机可读存储介质

文献发布时间:2024-04-18 20:01:55


脑仿真处理方法及装置、电子设备、计算机可读存储介质

技术领域

本公开涉及计算机技术领域,特别涉及一种脑仿真处理方法及装置、电子设备、计算机可读存储介质。

背景技术

随着人工智能(AI)技术,尤其是深度学习技术的不断发展,深度神经网络模型在多个领域内得到了广泛应用,但深度神经网络模型的规模也在不断增大,这导致许多深度神经网络难以在一些存储受限的嵌入式设备上部署实现。

相关技术中,在对神经网络进行脑仿真时,需要在脑仿真前构建神经元之间的连接关系,即突触信息,在脑仿真运行期间读取突触信息并执行突触计算。在突触信息的规模较大时,片内存储空间不足,只能存储于片外存储空间(例如DDR存储器)。在该情况下,读取突触信息会占用很大的时间开销,影响脑仿真的速度;并且,在片外存储空间容量有限的情况下,无法存储更大容量的突触信息,也就无法支持更大规模的脑仿真,导致脑仿真的规模受限。

发明内容

本公开提供一种基于众核系统的脑仿真处理方法及装置、处理核、电子设备、计算机可读存储介质。

第一方面,本公开提供了一种脑仿真处理方法,用于脑仿真的神经网络包括多个神经元簇,神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征;该方法包括:根据第一神经元簇中产生发放的第一神经元的发放索引信息,从突触查找表中确定出第一神经元的突触信息,突触信息至少包括第一神经元的突触权重和第二神经元簇中作为第一神经元的发放目标的第二神经元的标号;

其中,第一神经元簇为神经网络的任一神经元簇,第二神经元簇为第一神经元簇的后神经元簇,突触查找表包括多组突触信息,每组突触信息至少包括突触权重和第二神经元簇中神经元的标号,发放索引信息至少包括针对突触查找表的索引地址和发放数量;

根据第二神经元簇的各个第二神经元接收到的各个第一神经元的突触信息,确定第二神经元簇的发放结果。

第二方面,本公开提供了一种脑仿真处理装置,用于脑仿真的神经网络包括多个神经元簇,神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征;该装置包括:

突触信息查找模块,用于根据第一神经元簇中产生发放的第一神经元的发放索引信息,从突触查找表中确定出第一神经元的突触信息,突触信息至少包括第一神经元的突触权重和第二神经元簇中作为第一神经元的发放目标的第二神经元的标号;

其中,第一神经元簇为神经网络的任一神经元簇,第二神经元簇为第一神经元簇的后神经元簇,突触查找表包括多组突触信息,每组突触信息至少包括突触权重和第二神经元簇中神经元的标号,发放索引信息至少包括针对突触查找表的索引地址和发放数量;

发放结果确定模块,用于根据第二神经元簇的各个第二神经元接收到的各个第一神经元的突触信息,确定第二神经元簇的发放结果。

第三方面,本公开提供了一种电子设备,该电子设备包括:多个处理核;以及,片上网络,被配置为交互多个处理核间的数据和外部数据;其中,一个或多个处理核中存储有一个或多个指令,一个或多个指令被一个或多个处理核执行,以使一个或多个处理核能够执行上述的脑仿真处理方法。

第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的脑仿真处理方法。

本公开所提供的实施例,设置有包括多组突触信息的查找表,能够在脑仿真中根据前神经元簇产生发放的神经元的索引,从查找表中查找出包括突触权重和后神经元标号的突触信息;后神经元簇的神经元根据突触信息确定发放结果,从而仅存储少量突触信息就能实现大规模神经网络的脑仿真,显著减少存储的数据量,并提升计算效率。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:

图1为本公开实施例提供的神经元簇之间的连接的示意图;

图2为本公开实施例提供的一种脑仿真处理方法的流程图;

图3为本公开实施例提供的一种脑仿真处理方法的众核系统实现的示意图;

图4为本公开实施例提供的一种脑仿真处理装置的框图;

图5为本公开实施例提供的一种电子设备的框图。

具体实施方式

为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。

如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。

本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。

在一些可能的实现方式中,可通过神经网络进行脑仿真处理,以实现相应的处理任务。该神经网络可例如为脉冲神经网络SNN、人工神经网络ANN等;相应的处理任务例如为图像处理任务、文本处理任务、音频处理任务等,本公开对神经网络的具体网络类型和处理任务的具体任务类型均不做限制。

其中,该神经网络可包括多个神经元,神经元之间的连接通过突触权重来表征,无连接的神经元之间的突触权重为0,有连接的神经元之间的突触权重大于0,突触权重的取值表示神经元之间的连接强度,例如取值为0~1之间的数。本公开对突触权重的具体取值不做限制。

在一些可能的实现方式中,可构建神经网络的多簇模型,也即将神经网络的神经元划分为多个神经元簇,每个神经元簇包括一个或多个神经元。可例如通过神经元之间的连接数量、连接强度、连接密度等划分神经元簇,本公开对神经元簇的具体划分方式不做限制。

在一些可能的实现方式中,神经元簇之间的连接具有前后关系,在脑仿真时,前神经元簇会向后神经元簇发放信息。假设神经元簇A(前神经元簇,神经元数量为K)与神经元簇B(后神经元簇,神经元数量为Q)之间的突触信息可用(W、P、D、L)

在一些可能的实现方式中,每组突触信息包括连接数量L、突触权重W、后神经元标号P、突触延迟信息D。其中,连接数量L表示前神经元所连接的后神经元的数量,L为标量,例如L=3,表示该前神经元连接到3个后神经元;突触权重W表示前神经元的L个突触的权重,即突触连接强度,为长度L的向量,也可表示为W

图1为本公开实施例提供的神经元簇之间的连接的示意图。如图1所示,前神经元簇A的前神经元数量K=5,后神经元簇B的后神经元数量Q=6,前神经元簇A的前神经元A0~A4的连接数量L0~L4分别为3、2、2、2、5;1表示发放,0表示不发放;交叉处有黑点表示有突触连接,无黑点表示无突触连接,则根据前神经元A0~A4发放情况和对应的各组突触信息,可确定后神经元B0~B5在d个时间延迟内接收的发放信息,即图1中的各组电流值I

应当理解,本领域技术人员可根据实际情况设置一组突触信息的具体内容,一组突触信息中也可包括其它信息,本公开对此不做限制。

相关技术中,需要在脑仿真前构建神经元之间的连接关系,即突触信息,其包括相连接的后神经元的标号、突触权重、突触延迟信息等,以便在脑仿真运行期间读取突触信息并执行突触计算,每个前神经元都要存储突触信息,占用的存储空间较大。在突触信息的规模较大时,片内存储空间不足,只能存储于片外存储空间(例如DDR存储器),读取突触信息会占用很大的时间开销,影响脑仿真的速度,并且脑仿真的规模受限。

根据本公开的实施例,提供了一种脑仿真处理方法,能够在片内存储空间预存储少量的突触信息(突触权重、后神经元的标号、突触延迟信息等),作为查找表LUT,并通过预置的生成种子生成读取查找表的起始地址的方式,使得仅需要存储少量的突触信息(通常可放置于片上),且无需额外生成或从片外读取突触信息,从而显著提升计算效率。

根据本公开实施例的脑仿真处理方法,能够适用于以下应用场景:在用于脑仿真的神经网络中,少量突触的分布信息与完全存储的突触的分布信息一致或基本一致,且仅关注神经元突触的统计特性而非突触的个体特性的情况,例如只关心海量神经元仿真的发放效率特性而不是个别神经元的发放/突触变化量。应当理解,本领域技术人员可根据实际情况设置本公开实施例的应用场景,本公开对此不做限制。

根据本公开实施例的脑仿真处理方法可以由终端设备或服务器等电子设备执行,终端设备可以为车载设备、用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,该方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。或者,可通过服务器执行该方法。

在一些可能的实现方式中,根据本公开实施例的脑仿真处理方法可应用于众核系统,也即通过众核系统来运行用于脑仿真的神经网络。该众核系统可包括一个或多个神经形态芯片,神经形态芯片包括采用全交叉阵列(crossbar)方式布置的多个处理核以及片上网络,处理核用于根据指令/指令流来执行相应的处理任务,片上网络用于交互多个处理核间的数据和外部数据。其中,处理核可包括核内的存储空间和/或与处理核对应的片上存储空间,用于存储处理指令、突触信息等,以便处理核对相应神经元/神经元簇的输入数据进行处理。

图2为本公开实施例提供的一种脑仿真处理方法的流程图。参照图2,该方法包括:

在步骤S21中,根据第一神经元簇中产生发放的第一神经元的发放索引信息,从突触查找表中确定出第一神经元的突触信息,突触信息至少包括第一神经元的突触权重和第二神经元簇中作为第一神经元的发放目标的第二神经元的标号;

其中,第一神经元簇为神经网络的任一神经元簇,第二神经元簇为第一神经元簇的后神经元簇,突触查找表包括多组突触信息,每组突触信息至少包括突触权重和第二神经元簇中神经元的标号,发放索引信息至少包括针对突触查找表的索引地址和发放数量;

在步骤S22中,根据第二神经元簇的各个第二神经元接收到的各个第一神经元的突触信息,确定第二神经元簇的发放结果。

举例来说,可预先将神经网络的神经元划分为多个神经元簇并确定神经元簇之间的前后连接关系。对于神经网络的任一神经元簇(以下称为第一神经元簇),可将第一神经元簇的后神经元簇称为第二神经元簇,在脑仿真过程中,第一神经元簇的神经元会向第二神经元簇的神经元发放信息。

在一些可能的实现方式中,针对第一神经元簇和第二神经元簇,可预先生成一定数量的突触信息存储于片上或片外,作为突触查找表LUT。突触查找表包括多组突触信息,每组突触信息至少包括突触权重和第二神经元簇中神经元的标号。每组突触信息还可以包括突触延迟信息等,本公开对此不做限制。

在示例中,在突触信息包括突触权重、标号及突触延迟信息的情况下,突触查找表可如表1所示:

如表1所示,该突触查找表包括R组突触信息(R≥Q),Q为第二神经元簇中神经元的数量,每组突触信息有突触权重W、后神经元标号P、突触延迟信息D这三个值,记为(Wj,Pj,Dj),0≤j≤R-1。其中,W、P、D的取值需满足突触分布的统计信息,例如突触权重W满足正态分布N(μ,σ

在一些可能的实现方式中,可为第一神经元簇中的每个前神经元存储一个发放索引信息,作为前神经元的特异性信息。该发放索引信息可包括针对突触查找表的索引地址C和发放数量L,索引地址C表示从突触查找表中开始读取的位置,发放数量L表示要读取的突触信息的组数。其中,索引地址C可以为(0, R-1)之间的一个随机值,满足均匀分布。发放索引信息也可包括其它内容,本公开对发放索引信息的具体内容、索引地址C和发放数量L的具体分布方式均不做限制。

其中,当前神经元发放信息时才需要读取突触信息并计算,否则无需读取及计算。这样,对于同一个前神经元,其每次发放时读取到的突触信息是不变的。也即突触信息是静态的,当不同仿真时间拍的输入一致时,输出的电流值(突触积分结果)也是一致的。并且,不同的神经元对应的突触信息有可能重叠,因此可理解为神经元突触信息的共享。但由于开始读取的索引地址不同,发放数量不同,因此各个神经元的突触信息仍然不同,满足预设的分布规律且静态。

通过这种方式,能够提高脑仿真结果的一致性,提高脑仿真的精度。

在一些可能的实现方式中,在脑仿真处理中的任一个时间拍,针对第一神经元簇和第二神经元簇,可在步骤S21中确定第一神经元簇中产生发放的神经元(以下称第一神经元),根据第一神经元的发放索引信息,从突触查找表中确定出第一神经元的突触信息。

在一些可能的实现方式中,对于任一个第一神经元,在发放索引信息包括索引地址C和发放数量L的情况下,可根据索引地址C确定突触查找表中确定第一个读取位置,根据发放数量L确定读取组数,从索引地址C开始读取L组突触信息,作为该第一神经元的突触信息。

例如,第一神经元A1的索引地址C1=2,发放数量L1=3,则从表1的突触查找表中的位置2(W2,P2,D2)开始读,共读取三组突触信息(W2,P2,D2)、(W3,P3,D3)、(W3,P4,D4),从而得到第一神经元A1的突触信息。

在一些可能的实现方式中,如果C+L>R,则可在读取到突触查找表的尾部后回到突触查找表的首位继续读取,该过程称为循环缓冲(ringbuffer)。也即,当读取到突触查找表中某个大于R的地址,例如地址C+L时,实际读取到的突触信息位于突触查找表的(C+L)

这样,对产生发放的各个第一神经元进行读取,可得到各个第一神经元的突触信息。

在一些可能的实现方式中,在得到第一神经元簇的各个第一神经元的突触信息后,可在步骤S22中,根据各个第一神经元的突触信息中作为第一神经元的发放目标的第二神经元的标号,确定第二神经元簇的各个第二神经元接收到的突触信息。也即,根据第一神经元的各组突触信息中神经元标号P,确定各个第二神经元接收到的突触信息。

在一些可能的实现方式中,针对第二神经元簇中的任一第二神经元,可根据向该第二神经元发放的各个第一神经元的突触信息,对该第二神经元进行突触积分处理,得到该第二神经元的突触积分结果(也即积分电流)。其中,如果突触信息中仅包括突触权重W和后神经元标号P,则直接根据各个突触权重W进行突触积分,得到突触积分结果;如果突触信息中还包括突触延迟信息,则根据各个第一神经元的突触延迟信息,确定相应第一神经元的发放时间拍;根据之前的历史时间拍确定的发放情况和当前时间拍的发放情况,确定当前时间拍发放的各个第一神经元的突触权重W,并根据各个突触权重W进行突触积分,得到突触积分结果。本公开对突触积分的具体处理方式不做限制。

这样,对第二神经元簇中的各个第二神经元进行处理,可得到第二神经元簇的发放结果。根据该第二神经元簇的发放结果,可采用步骤S21-S22的处理方式,对该第二神经元簇的后神经元簇进行处理。进而,对神经网络的所有神经元簇进行上述处理,可得到神经网络在当前时间拍的脑仿真处理结果。经过多个时间拍的处理,可得到神经网络最终的脑仿真处理结果。

根据本公开的实施例,设置有包括多组突触信息的查找表,能够在脑仿真中根据前神经元簇产生发放的神经元的索引,从查找表中查找出突触信息;后神经元簇的神经元根据突触信息确定发放结果。通过这种突触信息共享的方式,能够仅存储少量突触信息就能实现大规模神经网络的脑仿真,从而显著减少存储的数据量;并且使得突触信息能够放置于片上,无需从片外读取突触信息,从而显著提升计算效率。

下面对根据本公开实施例的脑仿真处理方法进行展开说明。

如前所述,针对神经网络的第一神经元簇(前神经元簇)和第二神经元簇(后神经元簇),可预先生成一定数量的突触信息存储于片上或片外,作为突触查找表LUT1。突触查找表包括多组突触信息,每组突触信息至少包括突触权重和第二神经元簇中神经元的标号。

在一些可能的实现方式中,该方法应用于电子设备,突触查找表存储于该电子设备的内部存储空间。也就是说,可将突触查找表存储于该电子设备的内部存储空间中,以减少处理中搬运的数据量,并提高读取速度以提高计算效率。

在示例中,在该电子设备为常规的终端或服务器时,内部存储空间可为终端或服务器的内存;在该电子设备为包括一个或多个神经形态芯片的众核系统时,内部存储空间可为核内的存储空间和/或与处理核对应的片上存储空间,本公开对此不做限制。

在一些可能的实现方式中,在脑仿真处理中的任一个时间拍,针对第一神经元簇和第二神经元簇,可在步骤S21中确定第一神经元簇中产生发放的第一神经元,根据第一神经元的发放索引信息,从突触查找表中确定出第一神经元的突触信息。

在一些可能的实现方式中,在发放索引信息包括索引地址C和发放数量L的情况下,步骤S21可包括:

针对任一第一神经元,根据第一神经元的发放索引信息的索引地址,确定第一神经元在突触查找表中的读取起始地址;

根据突触查找表的突触信息组数,在突触查找表中读取从读取起始地址开始的、与发放数量对应的至少一组突触信息,得到第一神经元的突触信息。

也就是说,对于任一第一神经元,如果发放索引信息仅包括索引地址C和发放数量L,则可根据索引地址C确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取突触信息。

在一些可能的实现方式中,如果读取起始地址C+发放数量L≤R,则从读取起始地址C开始顺序读取L组突触信息,将该L组突触信息作为第一神经元的突触信息。如表1所示,例如第一神经元A1的索引地址C1=2,发放数量L1=3,则从表1的突触查找表中的位置2(W2,P2,D2)开始读,共读取三组突触信息(W2,P2,D2)、(W3,P3,D3)、(W3,P4,D4),从而得到第一神经元A1的突触信息。

在一些可能的实现方式中,如果读取起始地址C+发放数量L>R,则从读取起始地址C开始顺序读取(R-C)组突触信息,到达突触查找表的尾部;再回到突触查找表的首位继续读取(C+L-R)组突触信息,得到L组突触信息,将该L组突触信息作为第一神经元的突触信息。

通过这种方式,能够实现对产生发放的第一神经元的突触信息的读取,无需完全存储的突触信息,从而减少存储的数据量,提高仿真的规模和计算效率。

在一些可能的实现方式中,对第一神经元从起始地址C开始连续读取L组突触信息的处理方式,与对其它第一神经元读取到的突触信息可能仍然存在重合度较高的情况。该情况下,可在发放索引信息中加入其它信息,以便提高读取到的突触信息的随机性,降低各个第一神经元的突触信息的重合度。

在一些可能的实现方式中,发放索引信息还可包括标号补偿信息Poffset(简称Po),也即发放索引信息为(C、L、Po),标号补偿信息用于对读取到的突触信息的标号进行补偿。其中,第一神经元簇的每个神经元的标号补偿信息Po的具体取值是随机的,且在确定取值后保持静态不变。本公开对标号补偿信息Po的具体分布规律不做限制。

在一些可能的实现方式中,在发放索引信息还包括标号补偿信息的情况下,步骤S21可包括:

针对任一第一神经元,根据第一神经元的发放索引信息的索引地址,确定第一神经元在突触查找表中的读取起始地址;

在突触查找表中读取从读取起始地址开始的、与发放数量对应的至少一组突触信息;

根据突触信息中第二神经元的标号和标号补偿信息,确定补偿后的第二神经元的标号,并更新突触信息;

根据更新后的至少一组突触信息,确定第一神经元的突触信息。

举例来说,对于任一第一神经元,根据该第一神经元的索引地址C,确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取突触信息。

在一些可能的实现方式中,可从读取起始地址开始,从突触查找表中顺序读取L组突触信息;如果读取位置超出突触查找表的突触信息组数R,则在读取到突触查找表的尾部后回到突触查找表的首位继续读取,得到L组突触信息。

在一些可能的实现方式中,设L组突触信息中第二神经元的标号为P

例如,读取到的某组突触信息(W1、P1、D1)中的标号为P1=12,标号补偿信息为2,则将标号加2到14,得到更新的该组突触信息(W1、14、D1),后续根据该突触信息发放和计算。也即,将原本应该发放给标号为12的神经元的信息,改为发放给标号为14的神经元,从而提高了发放目标的随机性和突触信息中的突触权重等信息的随机性。

在一些可能的实现方式中,可采用补偿后的第二神经元的标号P

通过这种方式,能够提高读取到的突触信息的随机性,降低各个第一神经元的突触信息的重合度,从而提高脑仿真的处理效果。

在一些可能的实现方式中,发放索引信息还可包括读取间隔S,也即发放索引信息为(C、L、S),读取间隔用于表征读取的各组突触信息之间的地址间隔。其中,S≥1,第一神经元簇的每个神经元的读取间隔S的具体取值是随机的,且在确定取值后保持静态不变。本公开对读取间隔S的具体分布规律不做限制。

在一些可能的实现方式中,在发放索引信息还包括读取间隔的情况下,步骤S21可包括:

针对任一第一神经元,根据第一神经元的发放索引信息的索引地址,确定第一神经元在突触查找表中的读取起始地址;

根据读取间隔,在突触查找表中读取从读取起始地址开始的、与发放数量对应的至少一组突触信息,得到第一神经元的突触信息。

举例来说,对于任一第一神经元,根据该第一神经元的索引地址C,确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取突触信息。

在一些可能的实现方式中,可从读取起始地址C开始,以读取间隔S从突触查找表中顺序读取L组突触信息,也即依次读取地址C、C+S、C+2S、……、C+(L-1)S的各组突触信息;如果读取位置超出突触查找表的突触信息组数R,则在读取到突触查找表的尾部后回到突触查找表的首位继续读取,得到L组突触信息。例如,某个第一神经元的C=1,S=2,L=3,则读取到(W1、P1、D1)、(W3、P3、D3)、(W5、P5、D5)三组突触信息,作为该第一神经元的突触信息。

通过这种方式,能够提高读取到的突触信息的随机性,降低各个第一神经元的突触信息的重合度,从而提高脑仿真的处理效果。

在一些可能的实现方式中,发放索引信息还可同时包括标号补偿信息Po和读取间隔S,也即发放索引信息为(C、L、Po、S)。类似地,在步骤S21中,对于任一第一神经元,根据该第一神经元的索引地址C,确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取突触信息。

在一些可能的实现方式中,可从读取起始地址C开始,以读取间隔S从突触查找表中顺序读取L组突触信息,也即依次读取地址C、C+S、C+2S、……、C+(L-1)S的各组突触信息;如果读取位置超出突触查找表的突触信息组数R,则在读取到突触查找表的尾部后回到突触查找表的首位继续读取,得到L组突触信息;进而,根据该第一神经元的标号补偿信息Po对L组突触信息的标号进行补偿,根据补偿后的标号P

通过这种方式,能够进一步提高读取到的突触信息的随机性,进一步降低各个第一神经元的突触信息的重合度。

在一些可能的实现方式中,还可增加突触查找表中突触信息的组数R,以便进一步降低各个第一神经元的突触信息的重合度,本公开对降低突触信息重合度所采用的具体技术手段不做限制。

在一些可能的实现方式中,神经元簇可能连接到多个后神经元簇,在脑仿真时会向多个后神经元簇发放信息,也即第一神经元簇对应有多个第二神经元簇。如果有多个第二神经元簇,且多个第二神经元簇的神经元分布情况不同,则需要分别产生针对每个第二神经元簇突触查找表和第一神经元簇中神经元的特异性信息(也即发放索引信息),以便将发放信息分别输入到各个第二神经元簇,后续的突触积分过程也需要遍历各个第二神经元簇。

在一些可能的实现方式中,多个第二神经元簇可共用一个突触查找表,但需要前神经元簇与后神经元簇之间的连接规律满足一定的共有条件。例如,有神经元簇A、B、E,神经元簇A为前神经元簇,神经元簇B、E为A的后神经元簇,神经元簇之间的连接表示为C

在一些可能的实现方式中,可设置针对各个第二神经元簇的突触转换信息,以便在处理中对读取到的初始突触信息进行转换,该突触转换信息用于表征初始突触信息与转换后的目标突触信息之间的映射关系。例如,第二神经元簇B的突触转换信息包括μ

在一些可能的实现方式中,在多个第二神经元簇共用一个突触查找表的情况下,步骤S21可包括:

根据第一神经元簇中产生发放的第一神经元的发放索引信息,从突触查找表中确定出第一神经元的初始突触信息,初始突触信息包括第一神经元的初始权重和作为第一神经元的发放目标的第二神经元的初始标号;

针对任一第二神经元簇,根据第二神经元簇的突触转换信息,对第一神经元的初始突触信息进行转换,得到第一神经元针对第二神经元簇的目标突触信息,突触转换信息用于表征初始突触信息与目标突触信息之间的映射关系。

举例来说,在脑仿真处理中的任一个时间拍,针对第一神经元簇中产生发放的第一神经元,可根据第一神经元的发放索引信息中的索引地址,确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取与发放数量对应的L组突触信息,作为该第一神经元的初始突触信息。

在一些可能的实现方式中,针对任一第二神经元簇,可根据该第二神经元簇的突触转换信息,对第一神经元的初始突触信息进行转换,得到该第一神经元针对该第二神经元簇的目标突触信息。例如,读取到的某组突触信息为(W、P、D),第二神经元簇B的突触转换信息包括μ

W

经公式(1)转换后,可得到第一神经元针对第二神经元簇B的一组目标突触信息(W

类似地,第二神经元簇E的突触转换信息包括μ

W

经公式(2)转换后,可得到第一神经元针对第二神经元簇E的一组目标突触信息(W

这样,分别对各个第一神经元的初始突触信息进行转换,可得到各个第一神经元针对各个第二神经元簇的目标突触信息,以便后续根据目标突触信息分别进行处理。

通过这种方式,能够实现多个后神经元簇的突触查找表共享,进一步减少存储的突触信息的数据量,提升计算效率。

在一些可能的实现方式中,对于神经元存在多个离子通道(Channel)的情况,可将每个通道视为对应一个后神经元,多个通道即对应多个后神经元。在该情况下,可设置针对第二神经元簇的突触转换信息,以便在处理中对读取到的初始突触信息进行转换,该突触转换信息可例如为第二神经元簇的神经元数量Q。

在一些可能的实现方式中,在脑仿真处理中的任一个时间拍,针对第一神经元簇中产生发放的第一神经元,可根据第一神经元的发放索引信息中的索引地址,确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取与发放数量对应的L组突触信息,作为该第一神经元的初始突触信息。

在一些可能的实现方式中,可根据第二神经元簇的突触转换信息Q,对第一神经元的初始突触信息进行转换。设读取到的某组突触信息为(W、P、D),第二神经元簇有F个通道,对于编号f(0≤f≤F-1)的通道,有P

通过这种方式,能够实现多通道情况下的处理,进一步减少存储的突触信息的数据量。

为了进一步减少需要存储的突触信息的数量,可在上述方案的基础上进行改进,比如第一神经元的发放索引信息中索引地址的共享、突触查找表中突触权重、突触延迟信息的共享等。

在一些可能的实现方式中,发放索引信息包括第一神经元簇的各个神经元的标号、发放数量及初始索引地址。也即,整个第一神经元簇共享一个初始索引地址,第一神经元簇的各个神经元的索引地址不完全随机。对于产生发放的第一神经元,可根据其标号和初始索引地址等信息,计算该第一神经元的索引地址。

在该情况下,步骤S21可包括:

针对第一神经元簇中产生发放的任一第一神经元,根据第一神经元的标号,确定第一神经元之前的多个神经元的发放总数量;

根据初始索引地址和发放总数量,确定第一神经元的索引地址;

根据第一神经元的索引地址和发放数量,从突触查找表中确定出第一神经元的突触信息。

举例来说,在从突触查找表中查找之前,可先确定第一神经元的索引地址。其中,对于产生发放的任一第一神经元,可根据该第一神经元的标号,确定在第一神经元之前的多个神经元的发放总数量。例如该第一神经元的标号为n,标号在第一神经元之前的多个神经元为0~n-1,发放数量分别为L0、L1、……、Ln-1,则发放总数量L

在一些可能的实现方式中,根据初始索引地址和发放总数量,可确定该第一神经元的索引地址。例如,初始索引地址为C0,发放总数量L

在一些可能的实现方式中,根据第一神经元n的索引地址,可确定该第一神经元在突触查找表中的读取起始地址;进而,根据突触查找表中总的突触信息组数R,从读取起始地址开始读取突触信息;将读取到的Ln组突触信息,作为该第一神经元的突触信息。

通过这种方式,能够实现索引地址的共享,进一步减少需要存储的突触信息的数据量。

在一些可能的实现方式中,可在突触查找表中实现权重的共享,也即多个标号P复用一组权重W。该情况下,突触查找表包括权重子表和标号子表,权重子表包括多组突触子信息,标号子表包括第二神经元簇中神经元的标号,其中,突触子信息至少包括突触权重,还可包括突触延迟信息等,本公开对此不做限制。

在示例中,在突触子信息包括突触权重和突触延迟信息的情况下,权重子表和标号子表可分别如表2和表3所示:

/>

其中,权重子表和标号子表在逻辑上可构成如下表4的对应关系:

可见,采用该权重共享的方式,能够进一步减少存储的突触信息数量。

在一些可能的实现方式中,权重子表的突触子信息组数G小于标号子表的标号数量R。其中,突触子信息组数G也可称为宏变量Wrap。R可以是G整数倍,例如表2和表3中G=3、R=9,标号数量R为突触子信息组数G的3倍;R也可以不是G的整数倍,例如2.5倍,本公开对此不做限制。

在一些可能的实现方式中,在突触查找表包括权重子表和标号子表的情况下,步骤S21可包括:

针对任一第一神经元,根据第一神经元的索引地址和权重子表的突触子信息组数,确定第一神经元在权重子表中的第一读取起始地址;

根据第一神经元的索引地址和标号子表的标号数量,确定第一神经元在标号子表中的第二读取起始地址;

根据权重子表的突触子信息组数及第一读取起始地址,标号子表的标号数量及第二读取起始地址,分别从权重子表和标号子表读取与发放数量对应的突触子信息和标号,得到第一神经元的突触信息。

举例来说,对于任一第一神经元,如果突触查找表包括权重子表和标号子表,则可分别从两个子表中读取信息。

在一些可能的实现方式中,对于权重子表,可根据索引地址C和突触子信息组数G,确定该第一神经元在权重子表中的第一读取起始地址。如果索引地址C≤G,则第一读取起始地址即为地址C;如果索引地址C>G,则第一读取起始地址为对G求模后的地址,表示为C

在一些可能的实现方式中,可从第一读取起始地址开始,在权重子表中读取L组突触子信息,如果C

在一些可能的实现方式中,对于标号子表,可根据索引地址C和标号子表的标号数量R,确定第一神经元在标号子表中的第二读取起始地址。该情况下,C≤R,第二读取起始地址即为地址C。

在一些可能的实现方式中,可从第二读取起始地址C开始,在标号子表中读取L个标号。如果C+L≤R,则直接读取L个标号;如果C+L>R,则可在读取到标号子表的尾部后回到标号子表的首位继续读取,读取到L个标号。

在一些可能的实现方式中,可将L组突触子信息和L个标号中相对应位置的突触子信息和标号合并,得到L组突触信息,作为第一神经元的突触信息。这样,对产生发放的各个第一神经元分别进行读取,可得到各个第一神经元的突触信息。

通过这种方式,能够实现突触权重的共享,进一步减少需要存储的突触信息的数据量,使得相应的电子设备能够支持更大规模的神经网络的脑仿真,从而提高脑仿真的上限。

在一些可能的实现方式中,在步骤S21中得到第一神经元簇的各个第一神经元的突触信息后,可在步骤S22中,根据各个第一神经元的突触信息中作为第一神经元的发放目标的第二神经元的标号,确定第二神经元簇的各个第二神经元接收到的突触信息。也即,根据第一神经元的各组突触信息中神经元标号P,确定各个第二神经元接收到的突触信息。并且,在步骤S22中,根据第二神经元簇的各个第二神经元接收到的各个第一神经元的突触信息,进行相应的处理。

在一些可能的实现方式中,步骤S22可包括:

针对任一第二神经元,根据向第二神经元发放的各个第一神经元的突触信息,对第二神经元进行突触积分处理,得到第二神经元的突触积分结果;

在突触积分结果满足发放条件的情况下,确定第二神经元为第二神经元簇中产生发放的神经元;

根据第二神经元簇中产生发放的各个神经元,确定第二神经元簇的发放结果。

举例来说,针对第二神经元簇中的任一第二神经元,可根据向该第二神经元发放的各个第一神经元的突触信息,对该第二神经元进行突触积分处理,得到该第二神经元的突触积分结果(也即总积分电流I)。本公开对突触积分的具体处理方式不做限制。

在一些可能的实现方式中,在突触信息仅包括突触权重W和标号P的情况下,突触积分结果可表示为I(P)+=W,该公式表示根据第二神经元P接收到的各个突触权重W分别计算积分电流,并对各个积分电流求和,得到第二神经元P的突触积分结果。

在一些可能的实现方式中,突触信息在包括突触权重W和标号P之外,还包括突触延迟信息,用于表征前神经元发放到后神经元的延迟。例如,突触延迟信息为3,则表示后神经元在前神经元发放的时间拍t0后的3个时间拍t3时接收到发放信息,也即后神经元在t3时进行突触积分处理。

在一些可能的实现方式中,在突触信息包括突触延迟信息的情况下,步骤S22中根据向第二神经元发放的各个第一神经元的突触信息,对第二神经元进行突触积分处理的步骤,可包括:

根据向第二神经元发放的各个第一神经元的突触延迟信息,确定当前时间拍向第二神经元发放的第一神经元;

根据当前时间拍向第二神经元发放的第一神经元的突触权重,对第二神经元进行突触积分处理,得到第二神经元的突触积分结果。

举例来说,针对任一个第二神经元,如果突触信息中还包括突触延迟信息,则可根据向该第二神经元发放的各个第一神经元的突触延迟信息,确定相应第一神经元的发放时间拍。例如当前时间拍t0,获取到的某个第一神经元的突触延迟信息为3,则发放时间拍为t3,可先缓存该第一神经元的突触权重,在之后的时间拍t3进行突触积分。

进而,根据之前的历史时间拍确定的发放情况和当前时间拍的发放情况,确定当前时间拍向该第二神经元发放的各个第一神经元;根据各个第一神经元的突触权重W进行突触积分,得到突触积分结果。本公开对突触积分的具体处理方式不做限制。

其中,突触积分结果可表示为I(P,D)+=W,该公式表示根据第二神经元P在当前时间拍D接收到的各个神经元的突触权重W分别计算积分电流,并对各个积分电流求和,得到第二神经元P的突触积分结果。

在脑仿真处理中加入突触延迟的处理方式,能够使得脑仿真更接近实际的处理过程,提高脑仿真的精度。

在一些可能的实现方式中,如果第二神经元P的突触积分结果满足发放条件,例如达到发放电流阈值,则确定该第二神经元P为第二神经元簇中产生发放的神经元,需要向第二神经元簇的后神经元簇中的神经元发放;反之,如果第二神经元P的突触积分结果未满足发放条件,则确定该第二神经元P未产生发放。

在一些可能的实现方式中,可对第二神经元簇中的各个第二神经元分别进行上述处理,从而确定出第二神经元簇中产生发放的各个神经元,得到第二神经元簇的发放结果。

通过这种方式,能够确定后神经元簇发放结果,从而实现后神经元簇在当前时间拍的处理过程。

在一些可能的实现方式中,根据该第二神经元簇的发放结果,可采用步骤S21-S22的处理方式,对该第二神经元簇的后神经元簇进行处理。进而,对神经网络的所有神经元簇进行上述处理,可得到神经网络在当前时间拍的脑仿真处理结果。经过多个时间拍的处理,可得到神经网络最终的脑仿真处理结果。

在一些可能的实现方式中,根据本公开实施例的脑仿真处理方法可应用于众核系统,该众核系统包括多个处理核。神经网络的每个神经元簇对应于至少一个处理核。在相关技术中,会完全存储突触信息,需要从众核系统的完全信息存储区(通常是外部存储空间)读取突触信息,处理效率交底且占用大量存储空间。根据本公开的实施例,可将突触查找表存储在内部存储空间,也即处理核内的存储空间和/或与处理核对应的片上存储空间。

在一些可能的实现方式中,每个神经元簇对应多个处理核中的至少一个处理核,该处理核中存储有相应神经元簇的突触查找表。在脑仿真过程中的每个时间拍,相应的处理核对自身的神经元簇进行突触查找表读取和积分过程,实现脑仿真处理。

图3为本公开实施例提供的一种脑仿真处理方法的众核系统实现的示意图。如图3所示,处理核1、2、3分别对应一个神经元簇,各神经元簇中的神经元以Cij阵列的形式表示,处理核1对应的神经元簇的神经元包括C11、C21、C31、C41、C12、C22、C32;处理核2对应的神经元簇的神经元包括C23、C43;处理核3对应的神经元簇的神经元包括C44、C34。

在示例中,每个处理核均具有输入缓冲区和输出缓冲区,输入缓冲区用于缓存其它处理核传输的发放信息,输出缓冲区用于缓存待传输到其它处理核的发放信息。例如,处理核1有输入缓冲区S1、S2、S3、S4和输出缓冲区S1、S2;处理核2有输入缓冲区S2、S4和输出缓冲区S3;处理核3有输入缓冲区S4、S3和输出缓冲区S4。其中,输入缓冲区对应于神经元阵列的行,输出缓冲区对应于神经元阵列的列。本公开对输入缓冲区和输出缓冲区的具体布置方式不做限制。

在示例中,图3中的箭头表示路由关系,各个处理核在每个时间拍处理完成后,将发放信息分别缓存到对应的输出缓冲区;并且按照路由关系的指示,通过片上网络将发放信息传输到指定处理核的指定输入缓冲区。例如,处理核1的神经元C12、C22、C32的发放信息缓存到输出缓冲区S2,并从输出缓冲区S2传输到处理核1的输入缓冲区S2和处理核2的输入缓冲区S2。

在一些可能的实现方式中,在通过众核系统的处理核实现的情况下,设第二神经元簇对应于多个处理核中的目标处理核,目标处理核中存储有对应于第一神经元簇和第二神经元簇的突触查找表,以及第一神经元簇的各个神经元的发放索引信息。

在一些可能的实现方式中,在步骤S21之前,根据本公开实施例的脑仿真处理方法还可包括:根据目标处理核的输入缓冲区接收到的、第一神经元簇针对第二神经元簇的发放结果,确定产生发放的第一神经元的发放索引信息;

举例来说,在脑仿真处理中的任一个时间拍(当前时间拍),第一神经元簇对应的处理核在前一个时间拍中读取和积分得到的发放结果,会通过其输出缓冲区路由传输到目标处理核的输入缓冲区;目标处理核的输入缓冲区接收到该发放结果后,在当前时间拍,目标处理核可从内部存储空间读取产生发放的第一神经元的发放索引信息,包括索引地址C和发放数量L等。

在一些可能的实现方式中,在步骤S21中,目标处理核根据各个第一神经元的发放索引信息,分别从目标处理核的内部存储空间的突触查找表读取各个第一神经元的突触信息;在步骤S22中,根据各个第一神经元的突触信息中的第二神经元标号,确定第二神经元簇的各个第二神经元接收到的突触信息;并且,针对任一第二神经元,可根据当前时间拍向该第二神经元发放的各个第一神经元的突触信息,对该第二神经元进行突触积分处理,得到该第二神经元在当前时间拍的突触积分结果,突触积分结果满足发放条件则发放。这样,目标处理核对第二神经元簇中的各个第二神经元进行处理,可得到第二神经元簇的发放结果。

在一些可能的实现方式中,在步骤S22之后,根据本公开实施例的脑仿真处理方法还可包括:将第二神经元簇的发放结果放置到目标处理核的输出缓冲区,并通过众核系统的片上网络传输到与第二神经元簇的后神经元簇对应的处理核的输入缓冲区。

也就是说,目标处理核可将第二神经元簇的发放结果缓存到目标处理核的输出缓冲区,并通过众核系统的片上网络传输到与第二神经元簇的后神经元簇对应的处理核的输入缓冲区,以便该处理核在下一个时间拍中根据发放结果进行读取和积分处理,实现脑仿真处理过程。

在示例中,处理核1的神经元C12、C22、C32在前一时间拍的发放信息缓存到其输出缓冲区S2,并从输出缓冲区S2传输到处理核1的输入缓冲区S2和处理核2的输入缓冲区S2;同样的,处理核3的神经元C44、C34在前一时间拍的发放信息缓存到其输出缓冲区S4,并从输出缓冲区S4传输到处理核1的输入缓冲区S4和处理核2的输入缓冲区S4。

在示例中,在当前时间拍,处理核2根据输入缓冲区S2和S4的发放信息,确定发放的前神经元,从处理核2的内部存储空间读取前神经元的发放索引信息;根据发放索引信息,从处理核2的内部存储空间的突触查找表读取各个前神经元的突触信息;根据各个前神经元的突触信息中的神经元标号,确定神经元C23、C43接收到的突触信息;并分别进行突触积分处理,得到神经元C23和C43在当前时间拍的突触积分结果,突触积分结果满足发放条件则发放,从而得到处理核2的发放结果。

在示例中,处理核2的发放结果缓存到其输出缓冲区S3,并从输出缓冲区S3传输到处理核1的输入缓冲区S3和处理核3的输入缓冲区S3,以便处理核1和3在下一时间拍中根据发放结果进行读取和积分处理,实现脑仿真处理过程。

通过这种方式,一方面能够显著减少存储的数据量,使得突触信息能够放置于片上,提升处理效率;另一方面,各个处理核能够进行自身的查找表读取和积分过程,实现核间的并行处理,从而实现脑仿真处理的众核加速,进一步提升处理效率。

而相关技术中,每个处理核所需的突触信息均需要从外部存储空间的接口(例如DDR接口)调入,是串行的,无法实现并行,处理效率较低。

根据本公开实施例的脑仿真处理方法,由于采用的查找表LUT的方式,跟全存储的实现方案相比,存储的数据量可变得很小,例如只有原数据规模的1/100即可工作;而神经元的特异性信息(即发放索引信息)的数据量与前神经元数量N有关,是O(N)的,也即与前神经元数量N正相关。而相关技术的数据量是O(N

在示例中,设电子设备有效的内部存储空间为100MB(10

6×10

公式(3)中,地址C的存储需要3B,发放数量L的存储需要2B,读取间隔S的存储需要1B。根据公式(3),可得x≤1656.66×10

根据本公开实施例的脑仿真处理方法,通过预存储少量的突触信息作为查找表LUT的方式实现突触信息的共享,使得仅需要存储少量的突触信息(通常可放置于片内存储空间,更快),且无需额外生成或从片外读取突触信息,就能实现大规模神经网络的脑仿真,从而显著减少存储的数据量,并可仿真远大于全存储的神经网络的网络规模的脑仿真(更大)。

根据本公开实施例的脑仿真处理方法,在前神经元发放信息时才需要读取突触信息并计算,否则无需读取及计算;对于同一个前神经元,其每次发放时读取到的突触信息是不变的,也即突触信息是静态的,当不同仿真时间拍的输入一致时,输出的电流值(突触积分结果)也是一致的,从而能够提高脑仿真结果的一致性,提高脑仿真的精度。

根据本公开实施例的脑仿真处理方法,对突触信息的分布方式没有限制,能够支持各种权重分布方式,相比于完全存储或在线生成权重的方式,具有更高的灵活度和适配范围;并且,根据本公开的实施例,能够动态条件突触查找表的尺寸,从而能够适配任意大小的查找表到应用网络上;并且,根据本公开的实施例,还支持众核系统仿真及神经形态芯片实现,实现核间的并行处理,从而实现脑仿真处理的众核加速,进一步提升处理效率。

可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

此外,本公开还提供了脑仿真处理装置、电子设备、计算机可读存储介质,上述均可用来实现本公开提供的任一种脑仿真处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。

图4为本公开实施例提供的一种脑仿真处理装置的框图。

参照图4,本公开实施例提供了一种脑仿真处理装置,用于脑仿真的神经网络包括多个神经元簇,神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征,该装置包括:

突触信息查找模块41,用于根据第一神经元簇中产生发放的第一神经元的发放索引信息,从突触查找表中确定出第一神经元的突触信息,突触信息至少包括第一神经元的突触权重和第二神经元簇中作为第一神经元的发放目标的第二神经元的标号;

其中,第一神经元簇为神经网络的任一神经元簇,第二神经元簇为第一神经元簇的后神经元簇,突触查找表包括多组突触信息,每组突触信息至少包括突触权重和第二神经元簇中神经元的标号,发放索引信息至少包括针对突触查找表的索引地址和发放数量;

发放结果确定模块42,用于根据第二神经元簇的各个第二神经元接收到的各个第一神经元的突触信息,确定第二神经元簇的发放结果。

在一些可能的实现方式中,突触信息查找模块41,用于:针对任一第一神经元,根据第一神经元的发放索引信息的索引地址,确定第一神经元在突触查找表中的读取起始地址;根据突触查找表的突触信息组数,在突触查找表中读取从读取起始地址开始的、与发放数量对应的至少一组突触信息,得到第一神经元的突触信息。

在一些可能的实现方式中,发放索引信息还包括标号补偿信息,突触信息查找模块41,用于:针对任一第一神经元,根据第一神经元的发放索引信息的索引地址,确定第一神经元在突触查找表中的读取起始地址;在突触查找表中读取从读取起始地址开始的、与发放数量对应的至少一组突触信息;根据突触信息中第二神经元的标号和标号补偿信息,确定补偿后的第二神经元的标号,并更新突触信息;根据更新后的至少一组突触信息,确定第一神经元的突触信息。

在一些可能的实现方式中,发放索引信息还包括读取间隔,突触信息查找模块41,用于:针对任一第一神经元,根据第一神经元的发放索引信息的索引地址,确定第一神经元在突触查找表中的读取起始地址;根据读取间隔,在突触查找表中读取从读取起始地址开始的、与发放数量对应的至少一组突触信息,得到第一神经元的突触信息。

在一些可能的实现方式中,第二神经元簇为多个,多个第二神经元簇共用突触查找表,突触信息查找模块41,用于:根据第一神经元簇中产生发放的第一神经元的发放索引信息,从突触查找表中确定出第一神经元的初始突触信息,初始突触信息包括第一神经元的初始权重和作为第一神经元的发放目标的第二神经元的初始标号;针对任一第二神经元簇,根据第二神经元簇的突触转换信息,对第一神经元的初始突触信息进行转换,得到第一神经元针对第二神经元簇的目标突触信息,突触转换信息用于表征初始突触信息与目标突触信息之间的映射关系。

在一些可能的实现方式中,发放索引信息包括第一神经元簇的各个神经元的标号、发放数量及初始索引地址,

突触信息查找模块41,用于:针对第一神经元簇中产生发放的任一第一神经元,根据第一神经元的标号,确定第一神经元之前的多个神经元的发放总数量;根据初始索引地址和发放总数量,确定第一神经元的索引地址;根据第一神经元的索引地址和发放数量,从突触查找表中确定出第一神经元的突触信息。

在一些可能的实现方式中,突触查找表包括权重子表和标号子表,权重子表包括多组突触子信息,标号子表包括第二神经元簇中神经元的标号,权重子表的突触子信息组数小于标号子表的标号数量,突触信息查找模块41,用于:针对任一第一神经元,根据第一神经元的索引地址和权重子表的突触子信息组数,确定第一神经元在权重子表中的第一读取起始地址;根据第一神经元的索引地址和标号子表的标号数量,确定第一神经元在标号子表中的第二读取起始地址;根据权重子表的突触子信息组数及第一读取起始地址,标号子表的标号数量及第二读取起始地址,分别从权重子表和标号子表读取与发放数量对应的突触子信息和标号,得到第一神经元的突触信息。

在一些可能的实现方式中,发放结果确定模块42,用于:针对任一第二神经元,根据向第二神经元发放的各个第一神经元的突触信息,对第二神经元进行突触积分处理,得到第二神经元的突触积分结果;在突触积分结果满足发放条件的情况下,确定第二神经元为第二神经元簇中产生发放的神经元;根据第二神经元簇中产生发放的各个神经元,确定第二神经元簇的发放结果。

在一些可能的实现方式中,每组突触信息还包括突触延迟信息,发放结果确定模块42,用于:根据向第二神经元发放的各个第一神经元的突触延迟信息,确定当前时间拍向第二神经元发放的第一神经元;根据当前时间拍向第二神经元发放的第一神经元的突触权重,对第二神经元进行突触积分处理,得到第二神经元的突触积分结果。

在一些可能的实现方式中,该装置应用于电子设备,突触查找表存储于电子设备的内部存储空间。

在一些可能的实现方式中,该装置应用于众核系统,众核系统包括多个处理核,第二神经元簇对应多个处理核中的目标处理核,目标处理核中存储有突触查找表;

突触信息查找模块41之前,该装置还包括:索引确定模块,用于根据目标处理核的输入缓冲区接收到的、第一神经元簇针对第二神经元簇的发放结果,确定产生发放的第一神经元的发放索引信息;

发放结果确定模块42之后,该装置还包括:输出缓冲模块,用于将第二神经元簇的发放结果放置到目标处理核的输出缓冲区,并通过众核系统的片上网络传输到与第二神经元簇的后神经元簇对应的处理核的输入缓冲区。

图5为本公开实施例提供的一种电子设备的框图。

参照图5,本公开实施例提供了一种电子设备,该电子设备包括多个处理核1001以及片上网络1002,其中,多个处理核1001均与片上网络1002连接,片上网络1002用于交互多个处理核间的数据和外部数据。

其中,一个或多个处理核1001中存储有一个或多个指令,一个或多个指令被一个或多个处理核1001执行,以使一个或多个处理核1001能够执行上述的脑仿真处理方法。

在一些实施例中,该电子设备可以是类脑芯片,由于类脑芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(Double Data Rate,DDR)同步动态随机存储器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。

本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的脑仿真处理方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。

本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述脑仿真处理方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。

如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

技术分类

06120116571580