事件传输方法、处理设备、计算机可读介质与流程

未命名 07-14 阅读:104 评论:0


1.本公开涉及计算机技术领域,特别涉及一种事件传输方法、处理设备、计算机可读介质。


背景技术:

2.神经形态技术是指采用电子技术模拟生物中的神经系统结构,进行数据处理的一种技术,其能够大幅提升数据处理能力和机器学习能力。在相关技术中,可通过硬件电路(例如神经形态芯片)或软件系统实现神经形态模型(也可称为脉冲神经网络)。
3.神经形态模型中存在大量的神经元模块,神经元模块之间通过事件进行驱动。事件驱动是前驱式的,一个神经元模块具有很多输入,这些输入收到信息,神经元模块就启动计算。神经元模块是否运算,取决于是否有输入事件,这在很大程度上降低了大规模芯片或系统的动态功耗。
4.在相关技术中,可通过稀疏或稠密的传输方式进行事件传输。其中,稀疏传输方式是以发放脉冲的神经元全局索引以及时间戳作为传输内容的,由于大规模网络的神经元较多,因此神经元编号需要占用较多比特(bit)位(例如64位)来表示,每个事件消耗的比特位较多,传输消耗较大。而稠密传输方式是将可能发放脉冲的神经元表达为比特序列,无论事件发放与否均要表达。大部分的比特位都为无效传输,传输效率较低。


技术实现要素:

5.本公开提供一种基于事件传输方法、处理设备、计算机可读介质。
6.第一方面,本公开提供了一种事件传输方法,该事件传输方法应用于处理设备中的第一处理组件,所述处理设备包括多个处理组件,每个处理组件中设置有多个神经元,所述神经元用于接收和/或发送脉冲信息,所述第一处理组件为所述处理设备中的任一处理组件,该事件传输方法包括:
7.在所述处理设备完成任一处理周期的处理时,确定所述第一处理组件的神经元的脉冲发放结果;根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列,所述第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的处理组件;根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,所述第一事件信息中包括所述第一脉冲序列的编码数据及时间戳;向所述第二处理组件发送所述第一事件信息。
8.在一些可能的实现方式中,所述根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,包括:根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据;根据所述第一脉冲序列的编码数据及时间戳,生成所述第一事件信息。
9.在一些可能的实现方式中,所述方法还包括:在接收到第三处理组件发送的第二事件信息的情况下,对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,所述
第三处理组件是所述处理设备中、用于向所述第一处理组件发送事件信息的处理组件;根据所述第二脉冲序列以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息,确定所述第一处理组件中待接收脉冲的目标神经元;向所述目标神经元发送脉冲信息。
10.在一些可能的实现方式中,所述第二事件信息中包括编码数据数量或编码数据长度,所述对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,包括:根据所述第二事件信息中的编码数据个数或编码数据长度,以及预设的编码方式,对所述第二事件信息中的编码数据进行解码,得到所述第二脉冲序列。
11.在一些可能的实现方式中,所述编码方式包括哈夫曼编码,所述根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据,包括:根据第一脉冲序列中脉冲的出现位置,对所述第一脉冲序列进行拆分,得到不固定长度的至少一个子序列;根据预设的转换码表,分别将所述子序列转换为固定长度的子编码数据;根据所述子编码数据,确定所述第一脉冲序列的编码数据。
12.在一些可能的实现方式中,所述方法还包括:根据所述处理设备中各个处理组件的编译结果,确定第一处理组件的神经元对于所述第二处理组件的神经元的发送分组信息,以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息。
13.在一些可能的实现方式中,所述处理设备用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种。
14.第二方面,本公开提供了一种处理设备,该处理设备包括:多个处理组件,每个处理组件中设置有多个神经元,所述神经元用于接收和/或发送脉冲信息,该处理设备中的第一处理组件包括:
15.结果确定模块,用于在所述处理设备完成任一处理周期的处理时,确定所述第一处理组件的神经元的脉冲发放结果;序列确定模块,用于根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列,所述第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的处理组件;事件生成模块,用于根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,所述第一事件信息中包括所述第一脉冲序列的编码数据及时间戳;事件发送模块,用于向所述第二处理组件发送所述第一事件信息,其中,所述第一处理组件为所述处理设备中的任一处理组件。
16.在一些可能的实现方式中,所述事件生成模块,用于:根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据;根据所述第一脉冲序列的编码数据及时间戳,生成所述第一事件信息。
17.在一些可能的实现方式中,所述第一处理组件还包括:解码模块,用于在接收到第三处理组件发送的第二事件信息的情况下,对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,所述第三处理组件是所述处理设备中、用于向所述第一处理组件发送事件信息的处理组件;神经元确定模块,用于根据所述第二脉冲序列以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息,确定所述第一处理组件中待接收脉冲的目标神经元;脉冲发送模块,用于向所述目标神经元发送脉冲信息。
18.在一些可能的实现方式中,所述第二事件信息中包括编码数据数量或编码数据长
度,所述解码模块,用于:根据所述第二事件信息中的编码数据个数或编码数据长度,以及预设的编码方式,对所述第二事件信息中的编码数据进行解码,得到所述第二脉冲序列。
19.在一些可能的实现方式中,所述编码方式包括哈夫曼编码,所述事件生成模块,用于:根据第一脉冲序列中脉冲的出现位置,对所述第一脉冲序列进行拆分,得到不固定长度的至少一个子序列;根据预设的转换码表,分别将所述子序列转换为固定长度的子编码数据;根据所述子编码数据,确定所述第一脉冲序列的编码数据。
20.在一些可能的实现方式中,所述第一处理组件还包括:分组信息确定模块,用于根据所述处理设备中各个处理组件的编译结果,确定第一处理组件的神经元对于所述第二处理组件的神经元的发送分组信息,以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息。
21.在一些可能的实现方式中,所述处理设备用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种。
22.第三方面,本公开提供了一种处理设备,该处理设备包括:多个处理组件;以及片上网络,被配置为交互所述多个处理组件间的数据和外部数据;一个或多个所述处理组件中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理组件执行,以使一个或多个所述处理组件能够执行上述的事件传输方法。
23.第四方面,本公开提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理组件执行时实现上述的事件传输方法。
24.本公开所提供的实施例,能够确定处理组件中神经元的脉冲发放结果;根据脉冲发放结果和发送分组信息,确定出各组神经元的脉冲序列;根据脉冲序列生成对应的事件信息并发送到相应的处理组件,从而降低每个事件信息传输的消耗,并实现较高的事件传输效率。
25.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
26.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
27.图1为本公开实施例提供的一种事件传输方法的流程图;
28.图2为本公开实施例提供的一种事件传输方法的分组方式的示意图;
29.图3为本公开实施例提供的一种处理设备的第一处理组件的框图;
30.图4为本公开实施例提供的一种处理设备的框图。
具体实施方式
31.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省
略了对公知功能和结构的描述。
32.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
33.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
34.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
35.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
36.如前所述,相关技术中的稀疏传输方式,以发放脉冲的神经元全局索引以及时间戳作为传输内容,例如事件包1(343,20)、事件包2(258,20)、事件包3(222,20)分别表示第343、258、222号神经元在时间戳(timestamp)20处发放脉冲。但大规模网络的神经元较多,神经元编号需要占用较多比特位(例如64位)来表示,时间戳例如占用8比特(每到256归0),传输一个事件信息需要至少72比特,再包括事件数据包的附加信息,例如目标地址、校验信息等,每个事件需要消耗较多的比特位。
37.相关技术中的稠密传输方式,是将可能发放脉冲的所有神经元表达为比特序列,无论事件发放与否均要表达。例如,在有8个神经元的情况下,事件信息表示为[(0,1,0,0,0,0,1,0),20],其中,0表示未发放脉冲,1表示发放脉冲,20表示时间戳。该方式的优点是每个神经元只占1bit,大量神经元组成的事件数据包只需加入共享的附加信息段,平均下来每个神经元仅占用不到2bit。但由于无论是否发放事件都传输,在发放率较低(例如发放率为千分之一)的情况下,大部分的比特位都为无效传输,传输效率较低。
[0038]
根据本公开实施例的事件传输方法,能够对节点中的神经元进行分组,根据神经元的脉冲发放结果确定出各组神经元的脉冲序列,对脉冲序列进行编码并加入时间戳等信息,生成对应的事件信息并发送到相应的节点,从而降低每个事件信息传输的消耗,并实现较高的事件传输效率。
[0039]
根据本公开的实施例,可设置有处理设备,处理设备可例如为终端设备或服务器等电子设备,终端设备可以为车载设备、用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等,本公开对处理设备的具体类型不作限制。
[0040]
在一些可能的实现方式中,处理设备包括多个处理组件,处理组件可例如为芯片(例如神经形态芯片、图形处理器gpu等)、硬件(例如板卡)或机器(例如终端设备),也可为软件系统中的模块。本公开对处理组件的具体类型不作限制。
[0041]
在一些可能的实现方式中,处理设备的各个处理组件可作为处理过程中的节点,节点之间具有连接关系。每个处理组件中设置有多个神经元,神经元用于接收和/或发送脉冲信息,从而在处理设备中构建起脉冲神经网络,使得处理设备能够执行相应的数据处理
任务。该数据处理任务例如包括图像处理任务、语音处理任务、文本处理任务、视频处理任务等任务中的任意一种,本公开对数据处理任务的具体类型不作限制。
[0042]
根据本公开实施例的事件传输方法,可应用于处理设备中的任一处理组件(称为第一处理组件),实现处理组件之间的事件传输。
[0043]
图1为本公开实施例提供的一种事件传输方法的流程图。参照图1,该方法包括:
[0044]
在步骤s11中,在所述处理设备完成任一处理周期的处理时,确定所述第一处理组件的神经元的脉冲发放结果;
[0045]
在步骤s12中,根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列,所述第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的处理组件;
[0046]
在步骤s13中,根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,所述第一事件信息中包括所述第一脉冲序列的编码数据及时间戳;
[0047]
在步骤s14中,向所述第二处理组件发送所述第一事件信息。
[0048]
举例来说,在处理过程(例如脑仿真过程)中,处理设备可以以预设的处理周期(或称为时间步长)进行处理,从而分步完成相应的处理任务。
[0049]
针对第一处理组件,在步骤s11中,在完成一个处理周期的处理时,第一处理组件可确定神经元的脉冲发放结果,也即确定出第一处理组件中的各个神经元是否发放脉冲。本公开对具体的确定方式不作限制。
[0050]
在一些可能的实现方式中,步骤s12中,根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列。第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的任意处理组件。
[0051]
在一些可能的实现方式中,可预先确定并存储该发送分组信息,也即,将作为发送节点的处理组件与作为接收节点的处理组件分为一组,记录发送节点中神经元的序号和接收节点中神经元的序号。
[0052]
图2为本公开实施例提供的一种事件传输方法的分组方式的示意图。参照图2,处理组件a为发送节点(第一处理组件),处理组件b和c为接收节点(第二处理组件),a中包括神经元21、22、23、24,b中包括神经元25、26,c中包括神经元27、28。神经元21可能向神经元25和27发送脉冲,神经元22可能向神经元25和26发送脉冲,神经元23可能向神经元27发送脉冲。
[0053]
在示例中,可将处理组件a和处理组件b分为一组(a,b);将处理组件a和处理组件c分为一组(a,c)。组(a,b)包括神经元序列(全局编号)(21,22),组(a,c)包括神经元序列(21,23)。
[0054]
在示例中,如果处理组件a的脉冲发放结果为{0,1,0,1},也即神经元22和24发放脉冲,神经元21和23未发放脉冲,则从脉冲发放结果中抽取出组(a,b)的脉冲序列为{0,1},抽取出组(a,c)的脉冲序列为{0,0}。从而,得到了针对第二处理组件的第一脉冲序列。
[0055]
在一些可能的实现方式中,在得到第一脉冲序列后,可在步骤s13中,生成针对所述第二处理组件的第一事件信息。可例如采用预设的编码方式对第一脉冲序列进行编码,得到编码数据;并加入时间戳(例如处理周期的序号)以及可能的其他数据(例如编码数据
的长度或数量、目标地址、校验信息等),得到待传输的数据包,也即第一事件信息。通过这种方式,能够减少传输的数据量,并使得第一事件信息能够被第二处理组件解析。
[0056]
在一些可能的实现方式中,在步骤s14中,可向第二处理组件发送第一事件信息,从而完成本次的事件传输过程。
[0057]
根据本公开的实施例,能够确定处理组件中神经元的脉冲发放结果;根据脉冲发放结果和发送分组信息,确定出各组神经元的脉冲序列;根据脉冲序列生成对应的事件信息并发送到相应的处理组件,从而降低每个事件信息传输的消耗,并实现较高的事件传输效率。
[0058]
下面对根据本公开实施例的事件传输方法进行展开说明。
[0059]
在执行根据本公开实施例的事件传输方法之前,可根据(发送节点,接收节点)对,为处理组件分组。
[0060]
在一些可能的实现方式中,根据本公开实施例的事件传输方法还可包括:根据所述处理设备中各个处理组件的编译结果,确定第一处理组件的神经元对于所述第二处理组件的神经元的发送分组信息,以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息。
[0061]
也就是说,可在处理设备编译期间,确定各个处理组件的分组信息。编译结果中包括各个处理组件之间的发送和接收关系,根据发送和接收关系,即可将作为发送节点的处理组件与作为接收节点的处理组件分为一组。例如,参照图2,可得到组(a,b)和组(a,c)。
[0062]
在一些可能的实现方式中,在第一处理组件作为发送节点时,即图2中的处理组件a,可确定第一处理组件(a)的神经元对于第二处理组件(b、c)的神经元的发送分组信息。该发送分组信息至少包括可能发送脉冲的神经元的序列,例如组(a,b)包括神经元序列(21,22),以便根据发送分组信息抽取出脉冲序列。应当理解,发送分组信息中也可包括其他信息,本公开对此不作限制。
[0063]
在一些可能的实现方式中,在第一处理组件作为接收节点时,即图2中的处理组件b、c,可确定第一处理组件(b、c)的神经元对于第三处理组件(a)的神经元的接收分组信息。
[0064]
该接收分组信息至少包括可能发送脉冲的神经元的序列,例如组(a,b)包括神经元序列(21,22),以便在接收到事件信息时,进行解码并确定出发送脉冲的神经元;该接收分组信息还可包括接收脉冲的神经元的对应信息,例如处理组件b中的神经元25接收神经元21和22的脉冲,神经元26接收神经元22的脉冲。应当理解,接收分组信息中也可包括其他信息,本公开对此不作限制。
[0065]
在一些可能的实现方式中,每个处理组件中可同时存储有发送分组信息和接收分组信息,以便根据发送分组信息生成并发送事件;根据接收分组信息对接收到的事件解码,并向相应的神经元发送脉冲,从而实现神经元的脉冲收发过程。
[0066]
通过这种方式,能够依据处理组件中神经元的脉冲收发关系,实现神经元的分组,以便分组进行事件传输,从而提高事件传输的效率。
[0067]
在一些可能的实现方式中,处理设备的处理过程中,在完成任一个处理周期的处理时,第一处理组件可在步骤s11中确定神经元的脉冲发放结果,例如图2中处理组件a的脉冲发放结果为{0,1,0,1}。
[0068]
在一些可能的实现方式中,在步骤s12中,根据所述脉冲发放结果,以及所述第一
处理组件的神经元对于第二处理组件的神经元的发送分组信息,可抽取出针对第二处理组件的第一脉冲序列。其中,第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的任意处理组件。
[0069]
这样,针对各个第二处理组件分别进行抽取,可确定出针对各个第二处理组件的第一脉冲序列。例如图2中从脉冲发放结果中抽取出组(a,b)的脉冲序列{0,1},抽取出组(a,c)的脉冲序列{0,0}。
[0070]
在一些可能的实现方式中,在步骤s13中,可生成针对所述第二处理组件的第一事件信息。其中,步骤s13可包括:
[0071]
根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据;根据所述第一脉冲序列的编码数据及时间戳,生成所述第一事件信息。
[0072]
举例来说,可对第一脉冲序列进行编码以减少传输的数据量。
[0073]
在一些可能的实现方式中,在脉冲发放率较低的情况下,第一脉冲序列中的大部分比特位为表示未发放脉冲的0,仅少部分比特位为表示发放脉冲的1,因此,可参考哈夫曼编码的思路进行编码。
[0074]
在一些可能的实现方式中,预设的编码方式包括哈夫曼编码,其中根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据的步骤,包括:
[0075]
根据第一脉冲序列中脉冲的出现位置,对所述第一脉冲序列进行拆分,得到不固定长度的至少一个子序列;根据预设的转换码表,分别将所述子序列转换为固定长度的子编码数据;根据所述子编码数据,确定所述第一脉冲序列的编码数据。
[0076]
也就是说,可根据第一脉冲序列中脉冲1的出现位置,对第一脉冲序列进行拆分,得到不固定长度的子序列,每个子序列中含有一个1或全为0;在根据预设的转换码表,将分别不固定长度的各个子序列转换为固定长度的子编码数据;进而,对子编码数据进行拼接,得到编码数据。
[0077]
例如采用如下的转换码表,将最长为32位的子序列转换为5位的编码。但本公开对子序列的最大长度和子编码数据的固定长度均不作限制。
[0078]
表1 转换码表
[0079]
不固定长度的子序列固定长度的编码全0(至少一个0)00000(0)100001(1)0100010(2)00100011(3)000100100(4)0000100101(5)00000100110(6)000000100111(7)
…………
00000000000000000000000000000001(31个0)11111(31)
[0080]
例如,第一脉冲序列为{0000,0000,0000,0100},则可将第一脉冲序列拆分为两个子序列{0000,0000,0000,01}和{00},根据表1分别进行转换,得到子编码数据{01101}(14)
和{00000}。该情况下,第一脉冲序列的编码数据可表示为{0110100000};也可省略尾部的0,将该编码数据表示为{01101}。
[0081]
可见,在脉冲发放率较低的情况下,对第一脉冲序列编码后,比特位由16位减少为5位(或10位),大幅减少了数据量。
[0082]
应当理解,以上只是编码转换的一种示例性的实现方式,本领域技术人员可根据实际情况设定其他任意的编码转换方式,只要能够实现减少数据量的目的即可,本公开对此不作限制。
[0083]
通过这种方式,能够减少编码数据的长度,从而降低每个事件信息传输的消耗。
[0084]
在一些可能的实现方式中,可在第一脉冲序列的编码数据中,添加时间戳(例如处理周期的序号)以及可能的其他数据(例如编码数据的长度或数量、目标地址、校验信息等),得到待传输的数据包,也即第一事件信息。
[0085]
例如,编码数据为{01101},其包括一个子数据,时间戳为62,则第一事件信息可表示为表2:
[0086]
表2 事件信息
[0087]
0110100010111110
[0088]
其中,用4位表示编码数据个数,0001表示有一个子数据,每个5bit,如果数据包的附加信息中含有编码数据长度,则可不添加子数据的个数;0111110即表示时间戳62。本公开对第一事件信息的具体表示方式不作限制。
[0089]
在一些可能的实现方式中,得到第一事件信息后,即可在步骤s14中,向相应的第二处理组件发送第一事件信息。
[0090]
这样,根据发送分组信息,对与第一处理组件所在的分组中的各个第二处理组件分别执行步骤s12-s14的处理过程,即可实现对各个第二处理组件的事件发送,从而完成本周期的事件发送过程。
[0091]
通过这种方式,能够降低每个事件信息传输的消耗,实现较高的事件传输效率。
[0092]
应当理解,各个处理组件也可不对神经元进行分组,作为发送节点的处理组件直接对整个脉冲发放结果编码,并将编码数据广播到接收侧的各个处理组件;作为接收节点的处理组件对编码数据解码后,从解码后的数据中抽取出所需要的部分神经元的脉冲信息,本领域技术人员可根据实际情况进行设置,本公开对此不作限制。
[0093]
在一些可能的实现方式中,第一脉冲序列中的脉冲(spike)可包括模拟数值(value),例如模拟数值为0.5、0.8、1.2、1.5等,用于表示不同的信息。该情况下,第一脉冲序列可仍然按照上述的方式进行编码,并在编码之后,在每个子编码数据中加入脉冲的数值字段,一起在一个数据包中传输。
[0094]
例如,待压缩的序列是{0,0,0,0.5,0,0,0,0,0,0,0,0,0,1.5,0,0},则脉冲部分为{0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0}的压缩结果{00100,01010},模拟数值部分为[0.5,1.5]。模拟数值部分可排列在压缩结果(即编码数据)之后,在添加编码数据个数和时间戳后,能够得到待传输的数据包,也即第一事件信息。
[0095]
在一些可能的实现方式中,作为接收节点的第二处理组件在接收到事件信息后,可相应地解码出脉冲的位置和数值,共同作为解码结果,例如表示为(idx,value)对,或者由0和模拟数值(例如非零膜电位)组成的一个序列。其中,idx表示该脉冲1的编号(即位
置),value表示该脉冲1的数值。例如,上述的事件信息的解码结果可以表示为(4,0.5),(14,1.5),或者直接表示为{0,0,0,0.5,0,0,0,0,0,0,0,0,0,1.5,0,0}。
[0096]
通过这种方式,能够提高事件信息所传输的内容的丰富性,进一步提高事件传输的效率。
[0097]
在一些可能的实现方式中,第一处理组件可作为发送节点,生成并向下一级节点(第二处理组件)发送事件信息;同时,第一处理组件还可作为接收节点,接收前一级节点(称为第三处理组件)发送的事件信息。
[0098]
在一些可能的实现方式中,本公开实施例的事件传输方法还可包括:
[0099]
在接收到第三处理组件发送的第二事件信息的情况下,对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,所述第三处理组件是所述处理设备中、用于向所述第一处理组件发送事件信息的处理组件;
[0100]
根据所述第二脉冲序列以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息,确定所述第一处理组件中待接收脉冲的目标神经元;向所述目标神经元发送脉冲信息。
[0101]
举例来说,在所述处理设备完成任一处理周期的处理时,第三处理组件会生成并向第一处理组件发送事件信息(称为第二事件信息)。第一处理组件在接收到第二事件信息的情况下,可对第二事件信息进行解码。
[0102]
在一些可能的实现方式中,与第一事件信息类似,第二事件信息中可包括编码数据和时间戳,还可能包括附加信息例如编码数据个数、编码数据数量、目标地址、校验信息等。本公开对此不作限制。
[0103]
在一些可能的实现方式中,可根据编码数据个数或编码数据数量。对第二事件信息进行解码。其中,对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列的步骤可包括:
[0104]
根据所述第二事件信息中的编码数据个数或编码数据长度,以及预设的编码方式,对所述第二事件信息中的编码数据进行解码,得到所述第二脉冲序列。
[0105]
也就是说,根据第二事件信息中的编码数据个数或编码数据长度,可从第二事件信息中确定出编码数据。例如,对于表2的事件信息,可根据编码数据个数0001,确定事件信息中的编码数据为1个,即{01101}。
[0106]
进而,根据预设的编码方式对该编码数据进行解码。例如,在采用哈夫曼编码的情况下,根据表1所示的转换码表,可将编码数据{01101}解码为脉冲序列{0000,0000,0000,01}。
[0107]
在一些可能的实现方式中,如果该脉冲序列与预设的序列长度相同,则直接将该脉冲序列作为第二脉冲序列;如果该脉冲序列与预设的序列长度不同,则在该脉冲序列后面补0,直到与预设的序列长度相同,例如对{0000,0000,0000,01}补0为{0000,0000,0000,0100},从而得到第二脉冲序列。
[0108]
通过这种方式,能够以简单的方式从事件信息中解码确定出脉冲序列,减少计算的复杂度。
[0109]
在一些可能的实现方式中,在得到第二脉冲序列后,根据第一处理组件中预先存储的、对于第三处理组件中神经元的接收分组信息,可确定第一处理组件中待接收脉冲的
目标神经元。
[0110]
在示例中,参考图1,在第一处理组件为组(a,b)中的处理组件b时,解码得到的第二脉冲序列即为{0,1}。根据神经元序列(21,22)可知,发送脉冲的神经元为22,从而待接收脉冲的目标神经元为神经元25和26。
[0111]
在一些可能的实现方式中,可向目标神经元发送脉冲信息,例如向目标神经元25和26发送脉冲,从而完成本次事件传输过程。
[0112]
这样,对接收到的各个第二事件信息,第一处理组件可并行地分别执行上述的事件接收及处理过程,即可实现组间的并行解码及后续处理,从而完成本周期的事件接收过程。类似地,作为接收节点的各个处理组件同样可并行地对各自接收到的事件信息进行解码及后续处理,本公开对此不作限制。
[0113]
通过这种方式,能够实现事件的接收,从而完整实现事件传输的整个过程。采用分组传输的方式,能够大大减少所传输的数据包的长度,减少接收节点对每个数据包解码时的计算量,提高并行解码的效率。
[0114]
根据本公开实施例的事件传输方法,能够对根据节点间的收发关系,对处理组件中的神经元进行分组;对于作为发送节点的处理组件,可根据神经元的脉冲发放结果确定出各组神经元的脉冲序列,对脉冲序列进行编码并加入时间戳等信息,生成对应的事件信息并发送到相应的处理组件;对于作为接收节点的处理组件,可将接收到的事件信息解码,确定出待接收脉冲的目标神经元,并向目标神经元发放脉冲。通过这种方式,能够降低每个事件信息传输的消耗,并实现较高的事件传输效率。
[0115]
根据本公开实施例的事件传输方法,采用哈夫曼编码的方式,对脉冲序列进行编解码,进一步减少了传输的数据量。
[0116]
根据本公开实施例的事件传输方法,能够应用于脑仿真、计算机视觉、目标检测等各个应用领域的各种应用场景,实现设备中各个组件(例如芯片、机器、硬件、模块)之间的事件传输消耗,提高计算效率。
[0117]
根据本公开的实施例,还提供了一种处理设备,该处理设备包括多个处理组件,每个处理组件中设置有多个神经元,所述神经元用于接收和/或发送脉冲信息。
[0118]
图3为本公开实施例提供的一种处理设备的第一处理组件的框图。
[0119]
参照图3,处理设备中的第一处理组件包括:
[0120]
结果确定模块31,用于在所述处理设备完成任一处理周期的处理时,确定所述第一处理组件的神经元的脉冲发放结果;
[0121]
序列确定模块32,用于根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列,所述第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的处理组件;
[0122]
事件生成模块33,用于根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,所述第一事件信息中包括所述第一脉冲序列的编码数据及时间戳;
[0123]
事件发送模块34,用于向所述第二处理组件发送所述第一事件信息,其中,所述第一处理组件为所述处理设备中的任一处理组件。
[0124]
在一些可能的实现方式中,所述事件生成模块,用于:根据预设的编码方式,对所
述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据;根据所述第一脉冲序列的编码数据及时间戳,生成所述第一事件信息。
[0125]
在一些可能的实现方式中,所述第一处理组件还包括:解码模块,用于在接收到第三处理组件发送的第二事件信息的情况下,对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,所述第三处理组件是所述处理设备中、用于向所述第一处理组件发送事件信息的处理组件;神经元确定模块,用于根据所述第二脉冲序列以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息,确定所述第一处理组件中待接收脉冲的目标神经元;脉冲发送模块,用于向所述目标神经元发送脉冲信息。
[0126]
在一些可能的实现方式中,所述第二事件信息中包括编码数据数量或编码数据长度,所述解码模块,用于:根据所述第二事件信息中的编码数据个数或编码数据长度,以及预设的编码方式,对所述第二事件信息中的编码数据进行解码,得到所述第二脉冲序列。
[0127]
在一些可能的实现方式中,所述编码方式包括哈夫曼编码,所述事件生成模块,用于:根据第一脉冲序列中脉冲的出现位置,对所述第一脉冲序列进行拆分,得到不固定长度的至少一个子序列;根据预设的转换码表,分别将所述子序列转换为固定长度的子编码数据;根据所述子编码数据,确定所述第一脉冲序列的编码数据。
[0128]
在一些可能的实现方式中,所述第一处理组件还包括:分组信息确定模块,用于根据所述处理设备中各个处理组件的编译结果,确定第一处理组件的神经元对于所述第二处理组件的神经元的发送分组信息,以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息。
[0129]
在一些可能的实现方式中,所述处理设备用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种。
[0130]
图4为本公开实施例提供的一种处理设备的框图。
[0131]
参照图4,本公开实施例提供了一种处理设备,该处理设备包括:多个处理组件1001;以及片上网络1002,被配置为交互所述多个处理组件1001间的数据和外部数据;一个或多个所述处理组件1001中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理组件1001执行,以使一个或多个所述处理组件1001能够执行上述的事件传输方法。
[0132]
此外,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序在被处理组件执行时实现上述的事件传输方法。
[0133]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁
盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0134]
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

技术特征:
1.一种事件传输方法,其特征在于,应用于处理设备中的第一处理组件,所述处理设备包括多个处理组件,每个处理组件中设置有多个神经元,所述神经元用于接收和/或发送脉冲信息,所述第一处理组件为所述处理设备中的任一处理组件,所述方法包括:在所述处理设备完成任一处理周期的处理时,确定所述第一处理组件的神经元的脉冲发放结果;根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列,所述第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的处理组件;根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,所述第一事件信息中包括所述第一脉冲序列的编码数据及时间戳;向所述第二处理组件发送所述第一事件信息。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,包括:根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据;根据所述第一脉冲序列的编码数据及时间戳,生成所述第一事件信息。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在接收到第三处理组件发送的第二事件信息的情况下,对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,所述第三处理组件是所述处理设备中、用于向所述第一处理组件发送事件信息的处理组件;根据所述第二脉冲序列以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息,确定所述第一处理组件中待接收脉冲的目标神经元;向所述目标神经元发送脉冲信息。4.根据权利要求3所述的方法,其特征在于,所述第二事件信息中包括编码数据数量或编码数据长度,所述对所述第二事件信息中的编码数据进行解码,确定第二脉冲序列,包括:根据所述第二事件信息中的编码数据个数或编码数据长度,以及预设的编码方式,对所述第二事件信息中的编码数据进行解码,得到所述第二脉冲序列。5.根据权利要求2所述的方法,其特征在于,所述编码方式包括哈夫曼编码,所述根据预设的编码方式,对所述第一脉冲序列进行编码,得到所述第一脉冲序列的编码数据,包括:根据第一脉冲序列中脉冲的出现位置,对所述第一脉冲序列进行拆分,得到不固定长度的至少一个子序列;根据预设的转换码表,分别将所述子序列转换为固定长度的子编码数据;根据所述子编码数据,确定所述第一脉冲序列的编码数据。6.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:根据所述处理设备中各个处理组件的编译结果,确定第一处理组件的神经元对于所述第二处理组件的神经元的发送分组信息,以及所述第一处理组件的神经元对于所述第三处理组件的神经元的接收分组信息。
7.根据权利要求1-6中任意一项所述的方法,其特征在于,所述处理设备用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种。8.一种处理设备,其特征在于,所述处理设备包括:多个处理组件,每个处理组件中设置有多个神经元,所述神经元用于接收和/或发送脉冲信息,所述处理设备中的第一处理组件包括:结果确定模块,用于在所述处理设备完成任一处理周期的处理时,确定所述第一处理组件的神经元的脉冲发放结果;序列确定模块,用于根据所述脉冲发放结果,以及所述第一处理组件的神经元对于第二处理组件的神经元的发送分组信息,确定针对所述第二处理组件的第一脉冲序列,所述第二处理组件是所述处理设备中、用于接收所述第一处理组件的事件信息的处理组件;事件生成模块,用于根据所述第一脉冲序列,生成针对所述第二处理组件的第一事件信息,所述第一事件信息中包括所述第一脉冲序列的编码数据及时间戳;事件发送模块,用于向所述第二处理组件发送所述第一事件信息,其中,所述第一处理组件为所述处理设备中的任一处理组件。9.一种处理设备,其特征在于,包括:多个处理组件;以及片上网络,被配置为交互所述多个处理组件间的数据和外部数据;一个或多个所述处理组件中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理组件执行,以使一个或多个所述处理组件能够执行权利要求1-7中任一项所述的事件传输方法。10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理组件执行时实现如权利要求1-7中任一项所述的事件传输方法。

技术总结
本公开提供了一种事件传输方法、处理设备、计算机可读介质,该方法应用于处理设备中的第一处理组件,处理设备的处理组件中设置有多个神经元,用于接收和/或发送脉冲信息,该方法包括:在处理设备完成任一处理周期的处理时,确定第一处理组件的神经元的脉冲发放结果;根据脉冲发放结果,以及第一处理组件对于第二处理组件的发送分组信息,确定针对第二处理组件的第一脉冲序列;根据第一脉冲序列,生成针对第二处理组件的第一事件信息,第一事件信息中包括第一脉冲序列的编码数据及时间戳;向第二处理组件发送第一事件信息。根据本公开的实施例能够降低每个事件信息传输的消耗,并实现较高的事件传输效率。实现较高的事件传输效率。实现较高的事件传输效率。


技术研发人员:吴臻志 祝夭龙
受保护的技术使用者:北京灵汐科技有限公司
技术研发日:2021.12.28
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐