CN109491956B - 一种异构协同计算系统 - Google Patents
一种异构协同计算系统 Download PDFInfo
- Publication number
- CN109491956B CN109491956B CN201811333112.3A CN201811333112A CN109491956B CN 109491956 B CN109491956 B CN 109491956B CN 201811333112 A CN201811333112 A CN 201811333112A CN 109491956 B CN109491956 B CN 109491956B
- Authority
- CN
- China
- Prior art keywords
- data
- subsystem
- pulse
- neural network
- storage unit
- 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
- 238000004891 communication Methods 0.000 claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 12
- 230000003993 interaction Effects 0.000 claims abstract description 5
- 210000002569 neuron Anatomy 0.000 claims description 109
- 238000013528 artificial neural network Methods 0.000 claims description 98
- 238000003860 storage Methods 0.000 claims description 60
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012421 spiking Methods 0.000 claims description 13
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000036992 cognitive tasks Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Feedback Control In General (AREA)
- Advance Control (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种异构协同计算系统,用于解决现有技术中无法处理复杂的人工通用智能的任务场景的问题。包括:通信单元、控制单元、第一子系统和第二子系统,其中,所述通信单元用于实现不同计算编码方式的第一子系统和第二子系统间的数据交互,所述控制单元用于控制所述第一子系统与所述第二子系统协同工作。
Description
技术领域
本发明涉及人工智能领域,尤其涉及一种异构协同计算系统。
背景技术
随着人工智能的发展,人工智能的目标逐步提高,最终目标是实现人工通用智能,即建立一种能够像人一样思考和处理一般认知任务的机器。
现有技术中为实现这一目标通常采用基于人工神经网络进行计算的系统和基于脉冲神经网络进行计算的系统两种方案。具体的,采用基于人工神经网络的计算系统,以现有计算架构为基础,通过优化计算和存储器架构,对某类特定算法或者场景进行加速,从而实现在这一特定场景下的计算精度的优化,但是在处理低功耗事件驱动响应和实时性问题方面上的能力不足;基于脉冲神经网络的计算系统借鉴人脑处理的信息结构和运作规则,用于实时性响应和低功耗的问题,但在精确运算、大数据量密集计算上的能力不足。上述两种方案各有优势,但也各有缺点,因此单独使用上述任一种方案都无法处理复杂的人工通用智能的任务场景,例如同时需要精确数值和快速响应的任务场景,并且基于人工神经网络进行计算的系统不能实现脉冲神经网络计算,而基于脉冲神经网络进行计算的系统也不能实现脉冲神经网络计算,两种计算方法也无法在同一系统中实现。
发明内容
有鉴于此,本发明提供了一种异构协同计算系统,用于解决现有技术中无法处理复杂的人工通用智能的任务的问题。
根据本发明实施例的第一个方面,提供了一种异构协同计算系统,包括:通信单元、控制单元、第一子系统和第二子系统,其中,所述通信单元用于实现不同计算编码方式的第一子系统和第二子系统间的数据交互,所述控制单元用于控制所述第一子系统与所述第二子系统协同工作。
采用上述系统,可以实现对复杂的人工通用智能的任务场景的处理。
在一个实施例中,所述第一子系统为人工神经网络子系统、所述第二子系统为脉冲神经网络子系统。
在一个实施例中,所述通信单元用于:接收所述第一子系统发送的第一数据,其中,所述第一数据为人工神经元数量值;将所述第一子系统的所述第一数据发送至存储单元。
采用上述装置,将接收到的人工神经网络子系统发出的,不需要即时处理的第一数据存储到所述存储单元。
在一个实施例中,当所述接收所述第一子系统发送的第一数据时,所述通信单元具体用于:通过数据总线接收所述第一数据;当将所述第一数据发送至所述存储单元时,具体用于:将所述第一数据发送至所述存储单元中预先设置的区域。
本发明实施例中,将第一子系统单元发出的第一数据存储到所述存储单元中预先设置的区域,方便以后对数据的查找。
在一个实施例中,所述通信单元还用于:接收所述第一子系统发送的第一数据,其中,所述第一数据为人工神经元数量值;将所述第一数据进行数据格式转换,将数据格式转换得到第二数据,其中,所述第二数据为脉冲神经元事件包;将所述第二数据进行编码得到第三数据;将所述第三数据发送给所述第二子系统。
在本发明实例中,人工神经网络子系统发出的第一数据需要即时处理时,通过格式转换以及编码,将处理后的第三数据发送给脉冲神经网络子系统,实现人工神经网络子系统与脉冲神经网络子系统间的协同工作。
在一个实施例中,当所述将所述第一子系统的第一数据进行数据格式转换,将数据格式转换得到第二数据时,所述通信单元具体用于:将所述第一数据按照设定次数与脉冲发放阈值进行比较,判断出脉冲序列,判断出的所述脉冲序列为所述第二数据,其中,所述设定次数为设定时间窗口与相邻两个脉冲之间的最小时间间隔的比值。
在一个实施例中,所述通信单元用于:接收所述第二子系统发送的第四数据,其中,所述第四数据为脉冲神经元事件包;将所述第二子系统的所述第四数据进行解码;将解码后的所述第四数据进行格式转换得到第五数据,其中,所述第五数据为人工神经元数量值;将所述第五数据发送至存储单元。
在本发明实例中,脉冲神经网络子系统发出的第四数据经过解码和格式转换,得到第五数据,将第五数据通过存储接口存储到存储单元,以便于人工神经子系调用。
在一个实施例中,当所述接收第二子系统发送的第四数据时,所述通信单元具体用于:通过地址-事件表示法AER的编码方式接收所述第二子系统发送的所述第四数据;当将所述第五数据发送至所述存储单元时,所述通信单元具体用于:按照所述第四数据携带的目标地址将格式转换后的所述第五数据发送至所述存储单元的对应区域。
在一个实施例中,当所述将所述第二子系统的所述第四数据进行数据格式转换得到第五数据时,所述通信单元具体要用于:将在设定时间窗口内积累和暂存的脉冲数据确定为所述第四数据;将所述第四数据转换为所述第五数据。
在一个实施例中,所述控制单元具体用于:控制所述第一子系统或所述第二子系统通过存储单元获取预先存储的数据信息,其中,所述数据信息包括配置信息和指令序列。
在一个实施例中,所述第一子系统通过存储单元获取预先存储的数据信息时,所述控制单元具体用于:控制所述第一子系统从所述存储单元的预先设置的区域中读取需要使用的配置信息以及人工神经元数量值,其中,所述人工神经元数量值为所述第一子系统前一次计算得到的数据和/或经过格式转换的所述脉冲神经网络子系统的数据;将所述配置信息以及所述人工神经元数量值发送给所述第一子系统。
在一个实施例中,所述第二子系统通过存储单元获取预先存储的数据时,所述控制单元具体用于:控制所述第二子系统从所述存储单元对应区域中读取人工神经元数量值;将所述人工神经元数量值进行格式转换得到脉冲神经元事件包;将所述脉冲神经元事件包进行编码;将所述编码后的脉冲神经元事件包发送给所述第二子系统。
本发明实施例中,所述第二子系统通过存储单元获取的数据还包括:第二子系统的初始化配置信息,以及对所述第二对子系统进行功能更新时相应的更新配置信息,所述更新配置信息从存储单元预先设定的区域中获取。
在一个实施例中,所述第一子系统和所述第二子系统通过所述通信单元和所述控制单元进行协同工作,所述协同工作的方式包括:串联协同工作、并联协同工作、并行协同工作、协同反馈工作、协同使能工作中的至少一项。
在一个实施例中,所述第一子系统与所述第二子系统处于同一个处理器或者处于不同的处理器。
在一个实施例中,所述通信单元和所述控制单元与所述第一子系统设置于同一个处理器,或所述通信单元和所述控制单元与所述第二子系统设置于同一个处理器,或所述通信单元和所述控制单元与所述第一子系统和所述第二子系统设置于不同的处理器。
根据本发明实施例的第二个方面,提供了一种异构协同计算方法,所述异构协同计算方法通过第一方面或第一方面任一种可能所述的系统去实现。
根据本发明实施例的第三个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第二方面所述的方法。
根据本发明实施例的第四个方面,提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得所述计算机执行如第二方面所述的方法。
根据本发明实施例的第五个方面,提供了一种数据处理装置,包括第一方面或第一方面任一种可能所述的系统。
本发明实施例的有益效果包括:采用由通信单元、控制单元、第一子系统和第二子系统,可以实现不同计算编码方式的第一子系统和第二子系统间的数据交互,实现对复杂的人工通用智能的任务场景的处理。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例提供的一种人工神经网络子系统的结构示意图;
图2是本发明实施例提供的一种脉冲神经网络子系统的结构示意图;
图3是本发明实施例提供的一种异构协同计算系统的结构示意图;
图4是本发明实施例提供的一种通信单元的结构示意图;
图5是本发明实施例提供的一种数据处理流程图;
图6是本发明实施例提供的另一种数据处理流程图;
图7是本发明实施例提供的再一种数据处理流程图;
图8是本发明实施例提供的又一种数据处理流程图;
图9是本发明实施例提供的一种格式转换单元的结构示意图;
图10是本发明实施例提供的人工神经元数量值转换为脉冲神经元事件包的示意图;
图11是本发明实施例提供的一种串联协同工作结构示意图;
图12是本发明实施例提供的一种并联协同工作结构示意图;
图13是本发明实施例提供的一种并行协同工作结构示意图;
图14是本发明实施例提供的一种协同反馈工作结构示意图;
图15是本发明实施例提供的一种协同使能工作结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在现有技术中,为实现人工通用智能通常采用基于人工神经网络进行计算的系统和基于脉冲神经网络进行计算的系统两种方案,具体如下:
方案一、基于人工神经网络的计算系统以现有计算架构为基础,通过优化计算和存储器架构,对某类特定算法或者场景进行加速,从而实现在这一特定场景下的计算速度、功耗和成本等方面的优化,可以利用图形处理器(Graphics Processing Unit,GPU)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、数字信号处理(Digital SignalProcessing,DSP)、众核处理器等传统计算系统来实现,或者设计专用的应用专用集成电路(Application Specific Integrated Circuit,ASIC)芯片来实现,基于人工神经网络进行计算的系统所执行算法包括基于人工神经网络的各类算法,例如多层感知器(Multi-LayerPerception,MLP)、卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Networks,RNN),用于处理计算机视觉、自然语言处理和系统控制等相关问题。在基于人工神经网络进行计算的系统中包括多个人工神经网络计算单元,数据传输方式如图1所示,多个人工神经网络计算单元之间通过总线的方式进行数据传输。
方案二、基于脉冲神经网络的计算系统是借鉴人脑处理的信息结构和运作规则,设计异于传统冯诺依曼架构的计算系统,采用局部化一体化存储于计算系统的思路,借鉴人脑神经元互联结构,将信息储存在突触连接中,同时基于脉冲神经网络的计算系统采用去中心化的系统设计,不同的神经元可以并行的进行计算;神经元之间采用脉冲序列传递信息;具体的实现方式包括模拟集成电路、数字集成电路、模数混合超大规模集成电路(Very Large Scale Integration,VLSI)、基于新型材料或者新型电子元器件等实现神经元或者神经突触模型的电路系统,主要用于处理感知、实时性响应、低功耗和手势识别、光流信息处理等低功耗问题。在基于脉冲神经网络的计算系统中包括多个脉冲神经网络计算单元,多个神经网络基本计算单元采用二维网络路由通信单元相连,具体结构如图2所示,所述基于脉冲神经网络的计算系统中不同脉冲神经网络层的计算是并行的,网络的计算被平铺映射展开在基于脉冲神经网络的计算系统中。
由于采用基于人工神经网络的计算系统在处理低功耗事件驱动响应和实时性问题方面上的能力不足,而采用基于人工神经网络的计算系统在处理精确运算、大数据量密集计算上的能力不足,当需要同时精确数值和快速响应的场景中,单独采用基于人工神经网络的计算系统或基于脉冲神经网络的计算系统都无法满足这种复杂的人工通用智能的任务场景的计算要求。并且,基于人工神经网络的计算系统的架构上不能实现脉冲神经网络,而基于脉冲神经网络的计算系统的架构上也不能实现人工神经网络,具体是由于在基于人工神经网络的计算系统上难以实现脉冲神经网络计算中的膜电位累积和复杂的动力学特性,即使实现也会耗费大量的计算资源并花费更多的计算时间,同会造成巨大的存储资源浪费,使脉冲神经网络失去事件驱动的特点;在基于脉冲神经网络的计算系统上无法执行人工神经网络中高精度数量值的传输和计算,需要将人工神经网络中高精度的数值信息转换为多个连续的脉冲,会产生计算精度损失也拖慢了系统的运行速度,同时其各种激活函数也难以通过脉冲神经元来实现,相应的映射转换增加具有很大的难度。
为解决现有技术中存在的问题,本发明提供的一种异构协同计算系统,具体如图3所示,包括:通信单元300、控制单元301、第一子系统302和第二子系统303,其中,所述通信单元用于实现不同计算编码方式的第一子系统和第二子系统间的数据交互,所述控制单元用于控制所述第一子系统与所述第二子系统协同工作。
举例说明,第一子系统302和第二子系统303可以设置于同一个处理器或者设置于不同的处理器;当第一子系统302和第二子系统303设置于同一个处理器(例如第一处理器)时,所述通信单元和所述控制单元可以设置在第一处理器中,也可以设置在不同于第一处理器的第二处理器中。当第一子系统302和第二子系统303设置于不同处理器时,所述通信单元、所述控制单元可以和所述第一子系统302设置于同一处理器,也可以与第二子系统303设置于同一处理器中;所述处理器例如众核系统(芯片)中的核。
可选的,所述通信单元300和控制单元301可以设置在同一个系统中,该系统可以称为通信子系统。
可选的,所述第一子系统为人工神经网络子系统、所述第二子系统为脉冲神经网络子系统,其中,上述人工神经网络子系统也可以称为基于人工神经网络的计算系统,上述脉冲神经网络子系统也可以称为基于脉冲神经网络的计算系统。
本发明实施例中,所述通信单元具体包括三个部分,具体如图4所示,分别包括:数量值输入/输出单元400、地址-事件表示法(Address Event Representation,AER)编码/解码单元401以及格式转换单元402。
具体的,所述数量值输入/输出单元400用于与人工神经网络子系统之间进行人工神经元数量值的传输,在接收到人工神经网络子系统发送的人工神经元数量值之后,将人工神经元数量值存储至存储单元对应区域;在向人工神经网络子系统发送数据时从存储单元对应区域读取人工神经元数量值,发送至人工神经网络子系统,其中,所述人工神经元数量值具有一定的精度。
所述AER编码/解码单元401用于接收脉冲神经网络子系统发出的脉冲神经元事件包,由于所述脉冲神经元事件包异步稀疏发放、带有丰富时间信息的特点,因此通信单元与所述脉冲神经网络子系统之间采用地址-事件表示法(AER)的编码方式进行通信,即采用AER编码/解码单元401接收所述脉冲神经元事件包,其中,所述脉冲神经元信息也可以称为脉冲神经元事件包,所述脉冲神经元事件包中含有此脉冲信息的目标地址,事件包的有无代表脉冲的有无,所述脉冲神经元信息是通过离散事件包的形式发送至所述AER编码/解码单元401,所述AER编码/解码单元401对所述脉冲神经源元信息进行路由信息解析,将解码后的脉冲神经元信息发送至所述格式转换单元402;所述AER编码/解码单元401还用于将向脉冲神经网络子系统发出的数据进行路由信息打包。
所述格式转换单元402用于将解码后的脉冲神经元事件包进行格式转换,转换为人工神经元数量值,将转换得到的人工神经元数量值发送至存储单元301,所述格式转换单元402还用于将存储单元获取的人工神经元数量值进行格式转换,转换为脉冲神经元事件包,具体的转换方式在后文进行说明。
下面通过四个具体实施例,对第一子系统、第二子系统以及通信子系统在进行数据传输时的情况进行详细说明。
具体实施例一
所述第一子系统向外输出数据时,数据处理流程如图5所示,具体如下:
步骤S500、接收到人工神经网络子系统发送的第一数据。
具体的,通过数据总线接收所述第一数据,其中,所述第一数据为人工神经元数量值,接收所述第一数据的是数量值输入/输出单元400。
步骤S501、判断所述第一数据是否需要即时处理,若不需要即时处理,则继续执行步骤S502,若需要即时处理,则继续执行步骤S503。
步骤S502、将所述第一数据发送至存储单元。
具体的,所述存储单元具有存储接口,所述第一数据通过存储接口存储至存储单元中预先设置的区域,其中,所述存储单元可以与第一子系统和/或第二子系统单元处于相同的处理器中,也可以为不同的处理器中,即存储单元可以内置,也可以外置。
步骤S503、将所述第一数据进行数据格式转换得到第二数据。
具体的,通过格式转换单元402实现该步骤,所述第二数据为脉冲神经元事件包。
步骤S504、将所述第二数据进行编码得到第三数据。
具体的,通过所述AER编码/解码单元401实现该步骤。
步骤S505、将所述第三数据发送给脉冲神经网络子系统。
具体实施例二
所述第二子系统向外输出送数据时,数据处理流程如图6所示,具体如下:
步骤S600、接收脉冲神经网络子系统发送的脉冲神经元事件包。
具体的,通过AER编码/解码单元401实现该步骤。
步骤S601、将所述脉冲神经元事件包进行解码得到脉冲神经元事件包。
具体的,通过AER编码/解码单元401实现该步骤。
步骤S602、将解码后的脉冲神经元事件包进行格式转换得到人工神经元数量值。
具体的,通过格式转换单元402实现该步骤。
步骤S603、将所述人工神经元数量值发送至存储单元。
具体的,将所述人工神经元数量值发送至存储单元的对应区域。
具体实施例三
所述第一子系统获取数据时,控制单元控制所述人工神经网络子系统从存储单元中读取预先存储的数据信息时,具体如图7所示:
步骤S700、人工神经网络子系统接收到控制单元的数据获取指令。
步骤S701、所述数量值输入/输出单元400从存储单元预先设置的区域中读取需要使用的配置信息以及人工神经元数量值。
其中,所述配置信息为人工神经网络子系统需要使用的网络权重和参数数据,所述人工神经元数量值为所述人工神经网络子系统前一次计算得到的数据,和/或经过格式转换的所述脉冲神经网络子系统的数据;
步骤S702、所述数量值输入/输出单元400将获取到的数据发送至所述人工神经网络子系统。
本发明实施例中,所述控制单元可以按照设定时间间隔向所述人工神经网络子系统发出数据获取指令,也可以是人工神经网络系统直接向通信单元发出数据获取消息,还可以是接收到人工神经网络子系统发出的执行结束指令后,向所述人工神经网络子系统发出数据获取指令,其中,所述执行结束指令是人工神经网络子系统结束一次运算后发出的。可选的,所述控制单元对所述脉冲神经网络子系统的控制和所述控制单元对所述人工神经网络子系统的控制方法相同,本发明实施例对其不在赘述。
具体实施例四
所述第二子系统获取数据时,控制单元控制所述脉冲神经网络子系统通过存储接口从存储单元中读取预先存储的数据信息时,具体如图8所示:
步骤S800、脉冲神经网络子系统接收到控制单元的数据获取指令。
步骤S801、格式转换单元402从所述存储单元对应区域中读取人工神经元数量值。
步骤S802、所述格式转换单元402将所述人工神经元数量值进行格式转换得到脉冲神经元事件包。
步骤S803、AER编码/解码单元401将所述脉冲神经元事件包进行编码。
步骤S804、所述AER编码/解码单元401将编码后的脉冲神经元事件包发送给所述脉冲神经网络子系统。
本发明实施例中,通过格式转换单元进行人工神经元数量值与脉冲神经元事件包之间的格式转换,所述格式转换单元由脉冲累计单元900、比较发放单元902以及连接映射单元903组成,具体如图9所示。
下面分别对人工神经元数量值转换为脉冲神经元事件包、以及脉冲神经元数量值转换为脉冲神经元事件包两种情况分别进行说明。
情况一、当需要将人工神经元数量值转换为脉冲神经元事件包发送给脉冲神经网络子系统进行计算时,若该人工神经元数量值为脉冲神经网络子系统当前时刻需要开始计算的数据,则比较发放单元901将所述人工神经元数量值按照设定次数与脉冲发放阈值进行比较,判断出脉冲序列,判断出的所述脉冲序列为所述脉冲神经元事件包,其中,所述设定次数为设定时间窗口与相邻两个脉冲之间的最小时间间隔的比值。
例如,如图10所示,比较发放单元901直接将人工神经元数量值转换为nΔt时间窗内的脉冲序列,所述nΔt为每个时间窗的时间长度,与脉冲发放阈值进行n次比较,以判断是否有脉冲或脉冲序列的存在,所述比较发放单元901在进行比较发放时存在两种方式:
方式一、nΔt时间窗内,人工神经元数量值包括的人工神经元数量值的连续n次与固定阈值Vth相比较,n表示比较次数,Δt表示相邻两个脉冲之间的最小时间间隔,若人工神经元数量值大于或等于所述固定阈值,则结果1,表示有脉冲,若小于所述固定阈值,则结果为0,表示无脉冲;例如n=5,则在第一次比较结束后,将第一次的人工神经元数量值减去预先设定的数值dv作为第二次的人工神经元数量值,将第二次的人工神经元数量值与固定阈值Vth继续进行比较,若大于或等于所述固定阈值,则结果1,表示有脉冲,若小于所述固定阈值,则结果为0,表示无脉冲;按照此方法依序执行第三-五次比较,直至把nΔt时间窗内的人工神经元数量值全部完成比较,得到一个脉冲序列。
方式二、nΔt时间窗内,人工神经元数量值包括的人工神经元数量值的连续n次与范围在Vth_low~Vth_high内的一个随机阈值Vth_random进行比较,若人工神经元数量值大于等于所述随机阈值Vth_random,则结果1,表示有脉冲,若小于所述随机阈值Vth_random,则结果为0,表示无脉冲;与方式一类似,在每次比较结束后,重新产生新的人工神经元数量值与Vth_low~Vth_high的随机值进行比较,直至把nΔt时间窗内的人工神经元数量值全部完成比较,得到脉冲序列,得到如图10中的所示的序列11011、10011、10011、以及01011。
本发明实施例中,也可以用0表示有脉冲,用1表示无脉冲,本申请对其不做限定。
可选的,若人工神经元数量值需要等脉冲神经网络子系统当前时刻需要开始计算的数据执行完成后才能输入,则先将所述人工神经元数量值存储到存储单元,等需要脉冲神经网络进行计算的时刻再经比较发放单元901转换后进行输入。
情况二、当需要将脉冲神经元事件包转换为人工神经元数量值时,输出的Δt时间间隔内的脉冲神经元事件包被脉冲累积单元暂存并累积计算,然后转换为人工神经元数量值,将得到的人工神经元数量值被存储在外部存储系统中,等到人工神经网络子系统执行相应的需要上述数据的计算时,再被调用。
本发明实施例中,所述格式转换单元中包括的连接映射单元内包括可被配置的人工神经网络子系统与脉冲神经网络子系统对应的连接关系,用于实现人工神经网络数量值的存储地址和脉冲神经元的路由信息之间的互相转换。
本发明实施例中,所述第一子系统和所述第二子系统通过所述通信单元和所述控制单元进行协同工作,所述协同工作的方式包括:串联协同工作、并联协同工作、并行协同工作、协同反馈工作、协同使能工作。下面分别对以上五种方式分别进行说明,本发明实施例中所述数据处理系统也可以称为通信子系统。
方式一、第一子系统和所述第二子系统串联协同工作,具体如图11所示。
具体的,串联协同工作方式中包括第一子系统与第二子系统,第一子系统的输出端连接第二子系统的输入端,系统输入首先经过第一子系统处理,处理后的结果通过通信子系统的传递,作为第二子系统的输入,第二子系统处理后的结果为系统输出。
方式二、第一子系统和所述第二子系统并联协同工作,具体如图2所示。
具体的,并联协同工作方式包括第一子系统与第二子系统,系统输入通过通信子系统的传递,分别送入到所述第一子系统的输入端和所述第二子系统的输入端,两个计算子系统同时对系统输入进行并行处理,并将各自的处理结果送至通信子系统进行汇总,作为系统输出。
方式三、第一子系统和所述第二子系统并行协同工作,具体如图13所示。
具体的,并行协同工作方式中包括第一子系统与第二子系统,系统输入分为系统输入1与系统输入2两个部分,其中,系统输入1送入所述第一子系统,系统输入2送入所述第二子系统,第一子系统和第二子系统同时对各自输入进行并行处理,并将各自的处理结果送至通信子系统进行汇总,经格式转换单元统一格式后作为系统输出。
方式四、第一子系统和所述第二子系统协同反馈工作,具体如图14所示。
具体的,协同反馈工作方式中包括第一子系统与第二子系统,系统输入经所述第一子系统计算后输出,输出结果通过通信子系统的传递,作为所述第二基本子系统的输入,所述第二子系统的输出通过通信子系统的传递作为反馈值输入到所述第一子系统。
方式五、第一子系统和所述第二子系统协同使能工作,具体如图15所示。
具体的,协同使能工作方式中包括第一子系统与第二子系统,系统输入1经第一子系统计算后输出,输出结果通过通信子系统的传递,作为第二子系统的输入,第一子系统的输出通过通信子系统的传递作为反馈值和新的系统输入2一同输入到第二子系统,在协同使能工作方式中,第一子系统发送给第二子系统的使能值可以作为第一子系统的标签值,为第一子系统实现监督学习时使用。可选的,系统输入和系统输出均可以设置在第一子系统处。
本发明实施例中,采用上述五种方式实现第一子系统与第二子系统协同工作时,第一子系统也可以为脉冲神经网络子系统,第二子系统也可以为人工神经网络子系统。
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种异构协同计算系统,其特征在于,包括:通信单元、控制单元、存储单元、第一子系统和第二子系统,其中,所述通信单元用于实现不同计算编码方式的第一子系统和第二子系统间的数据交互,所述控制单元用于控制所述第一子系统与所述第二子系统协同工作,所述协同工作的方式包括串联协同工作、并联协同工作、并行协同工作、协同反馈工作、协同使能工作中的至少一项,所述控制单元还用于控制所述第一子系统或所述第二子系统通过存储单元获取预先存储的数据信息,所述数据信息包括配置信息和指令序列;其中,所述通信单元和所述控制单元与所述第一子系统和所述第二子系统设置于不同的处理器。
2.如权利要求1所述的系统,其特征在于,所述第一子系统为人工神经网络子系统、所述第二子系统为脉冲神经网络子系统。
3.如权利要求2所述的系统,其特征在于,所述通信单元用于:
接收所述第一子系统发送的第一数据,其中,所述第一数据为人工神经元数量值;
将所述第一数据发送至存储单元。
4.如权利要求3所述的系统,其特征在于,当所述接收所述第一子系统发送的第一数据时,所述通信单元具体用于:
通过数据总线接收所述第一数据;
当将所述第一数据发送至所述存储单元时,所述通信单元具体用于:
将所述第一数据发送至所述存储单元中预先设置的区域。
5.如权利要求2所述的系统,其特征在于,所述通信单元还用于:
接收所述第一子系统发送的第一数据,其中,所述第一数据为人工神经元数量值;
将所述第一数据进行数据格式转换得到第二数据,其中,所述第二数据为脉冲神经元事件包;
将所述第二数据进行编码得到第三数据;
将所述第三数据发送给所述第二子系统。
6.如权利要求5所述的系统,其特征在于,当所述将所述第一子系统的所述第一数据进行数据格式转换得到第二数据时,所述通信单元具体用于:
将所述第一数据按照设定次数与脉冲发放阈值进行比较,得到脉冲序列,所述脉冲序列为所述第二数据,其中,所述设定次数为设定时间窗口与相邻两个脉冲之间的最小时间间隔的比值。
7.如权利要求2所述的系统,其特征在于,所述通信单元用于:
接收所述第二子系统发送的第四数据,其中,所述第四数据为脉冲神经元事件包;
将所述第二子系统的所述第四数据进行解码;
将解码后的所述第四数据进行格式转换得到第五数据,其中,所述第五数据为人工神经元数量值;
将所述第五数据发送至存储单元。
8.如权利要求7所述的系统,其特征在于,当所述接收所述 第二子系统发送的第四数据时,所述通信单元具体用于:
通过地址-事件表示法AER的编码方式接收所述第二子系统发送的所述第四数据;
当将所述第五数据发送至所述存储单元时,所述通信单元具体用于:
按照所述第四数据携带的目标地址将格式转换后的所述第五数据发送至所述存储单元的对应区域。
9.如权利要求7所述的系统,其特征在于,当所述将所述第二子系统的所述第四数据进行数据格式转换得到第五数据时,所述通信单元具体要用于:
将在设定时间窗口内积累和暂存的脉冲数据确定为所述第四数据;
将所述第四数据转换为所述第五数据。
10.如权利要求1所述的系统,其特征在于,所述第一子系统通过存储单元获取预先存储的数据信息时,所述控制单元具体用于:
控制所述第一子系统从所述存储单元的预先设置的区域中读取需要使用的配置信息以及人工神经元数量值,其中,所述人工神经元数量值为所述第一子系统前一次计算得到的数据,和/或经过格式转换的脉冲神经网络子系统的数据;
将所述配置信息以及所述人工神经元数量值发送给所述第一子系统。
11.如权利要求1所述的系统,其特征在于,所述第二子系统通过存储单元获取预先存储的数据时,所述控制单元具体用于:
控制所述第二子系统从所述存储单元对应区域中读取人工神经元数量值;
将所述人工神经元数量值进行格式转换得到脉冲神经元事件包;
将所述脉冲神经元事件包进行编码;
将所述编码后的脉冲神经元事件包发送给所述第二子系统。
12.如权利要求1所述的系统,其特征在于,所述第一子系统与所述第二子系统设置于同一个处理器或者设置于不同的处理器。
13.一种异构协同计算方法,其特征在于,所述异构协同计算方法通过权利要求1-12中任一项所述的系统去实现。
14.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求13所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求13所述的方法。
16.一种数据处理装置,包括如权利要求1-12中任一项所述的系统。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811333112.3A CN109491956B (zh) | 2018-11-09 | 2018-11-09 | 一种异构协同计算系统 |
PCT/CN2019/113384 WO2020093885A1 (zh) | 2018-11-09 | 2019-10-25 | 一种异构协同计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811333112.3A CN109491956B (zh) | 2018-11-09 | 2018-11-09 | 一种异构协同计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109491956A CN109491956A (zh) | 2019-03-19 |
CN109491956B true CN109491956B (zh) | 2021-04-23 |
Family
ID=65694158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811333112.3A Active CN109491956B (zh) | 2018-11-09 | 2018-11-09 | 一种异构协同计算系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109491956B (zh) |
WO (1) | WO2020093885A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491956B (zh) * | 2018-11-09 | 2021-04-23 | 北京灵汐科技有限公司 | 一种异构协同计算系统 |
CN110213165B (zh) * | 2019-06-05 | 2021-04-13 | 北京灵汐科技有限公司 | 一种异构协同系统及其通信方法 |
CN110188872B (zh) * | 2019-06-05 | 2021-04-13 | 北京灵汐科技有限公司 | 一种异构协同系统及其通信方法 |
CN112232486A (zh) * | 2020-10-19 | 2021-01-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种yolo脉冲神经网络的优化方法 |
CN114610457A (zh) * | 2022-03-08 | 2022-06-10 | 北京地平线机器人技术研发有限公司 | 用于多处理单元的数据协同处理方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK3113838T3 (en) * | 2015-02-20 | 2017-09-18 | Synergia Medical | PHOTOVOLTAIC ELECTRIC STIMULATING DEVICE |
CN105095961B (zh) * | 2015-07-16 | 2017-09-29 | 清华大学 | 一种人工神经网络和脉冲神经网络的混合系统 |
CN105095965B (zh) * | 2015-07-16 | 2017-11-28 | 清华大学 | 人工神经网络和脉冲神经网络神经的混合通信方法 |
CN105095966B (zh) * | 2015-07-16 | 2018-08-21 | 北京灵汐科技有限公司 | 人工神经网络和脉冲神经网络的混合计算系统 |
CN105667617B (zh) * | 2016-03-08 | 2017-12-05 | 浙江大学 | 柔性驱动机构、柔性驱动机构组及柔性装置 |
KR20180048109A (ko) * | 2016-11-02 | 2018-05-10 | 삼성전자주식회사 | 뉴럴 네트워크 변환 방법 및 이를 이용한 인식 장치 |
CN108171323B (zh) * | 2016-12-28 | 2021-03-26 | 上海寒武纪信息科技有限公司 | 一种人工神经网络计算装置和方法 |
CN106815638B (zh) * | 2017-01-20 | 2020-03-27 | 北京灵汐科技有限公司 | 输入权重拓展的神经元信息处理方法和系统 |
CN107103113B (zh) * | 2017-03-23 | 2019-01-11 | 中国科学院计算技术研究所 | 面向神经网络处理器的自动化设计方法、装置及优化方法 |
CN109491956B (zh) * | 2018-11-09 | 2021-04-23 | 北京灵汐科技有限公司 | 一种异构协同计算系统 |
-
2018
- 2018-11-09 CN CN201811333112.3A patent/CN109491956B/zh active Active
-
2019
- 2019-10-25 WO PCT/CN2019/113384 patent/WO2020093885A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2020093885A1 (zh) | 2020-05-14 |
CN109491956A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491956B (zh) | 一种异构协同计算系统 | |
CN111522962B (zh) | 序列推荐方法、装置及计算机可读存储介质 | |
CN105598972B (zh) | 一种机器人系统及交互方法 | |
US11501160B2 (en) | Cloud computing data compression for allreduce in deep learning | |
CN109408500B (zh) | 人工智能运行平台 | |
EP4350572A1 (en) | Method, apparatus and system for generating neural network model, devices, medium and program product | |
JP2023510566A (ja) | ニューラル・ネットワークのための適応的探索方法および装置 | |
JP2022553252A (ja) | 画像処理方法、画像処理装置、サーバ、及びコンピュータプログラム | |
WO2022078334A1 (zh) | 利用神经元模型及网络处理信号的处理方法、介质、设备 | |
CN114715145B (zh) | 一种轨迹预测方法、装置、设备及自动驾驶车辆 | |
CN117436485A (zh) | 基于权衡时延和精度的多退出点的端-边-云协同系统及方法 | |
CN112394982A (zh) | 生成语音识别系统的方法、装置、介质及电子设备 | |
WO2023231541A1 (zh) | 基于八叉树的体素地图生成方法、装置、存储介质及设备 | |
CN113222134B (zh) | 一种类脑计算系统、方法及计算机可读存储介质 | |
CN112561050A (zh) | 一种神经网络模型训练方法及装置 | |
CN115688917A (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN106897768B (zh) | 神经网络信息发送方法和系统 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111709784B (zh) | 用于生成用户留存时间的方法、装置、设备和介质 | |
CN114254735A (zh) | 一种基于分布式的僵尸网络模型构建方法和装置 | |
CN116644783A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
CN114462592A (zh) | 模型训练方法、装置、电子设备及计算机可读存储介质 | |
CN114118358A (zh) | 图像处理方法、装置、电子设备、介质及程序产品 | |
CN114365148A (zh) | 神经网络运行系统和方法 | |
Zhou et al. | Training backpropagation neural network in MapReduce |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Wang Guanrui Inventor after: Yang Zheyu Inventor before: Shi Luping Inventor before: Wang Guanrui Inventor before: Pei Jing Inventor before: Yang Zheyu Inventor before: Tang Pei |