CN112418389A - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据处理方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112418389A
CN112418389A CN201910784294.4A CN201910784294A CN112418389A CN 112418389 A CN112418389 A CN 112418389A CN 201910784294 A CN201910784294 A CN 201910784294A CN 112418389 A CN112418389 A CN 112418389A
Authority
CN
China
Prior art keywords
data
processing
received
core
data processing
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.)
Pending
Application number
CN201910784294.4A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Simm Computing Technology Co ltd
Original Assignee
Beijing Simm Computing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Simm Computing Technology Co ltd filed Critical Beijing Simm Computing Technology Co ltd
Priority to CN201910784294.4A priority Critical patent/CN112418389A/zh
Publication of CN112418389A publication Critical patent/CN112418389A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开公开了一种数据处理方法、装置、电子设备和计算机可读存储介质。其中该数据处理方法包括:接收源处理核发送的数据;响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。通过上述方法,解决了现有技术中的处理器的多个核心在执行数据处理任务时需要统一的同步信号或者需要额外的硬件来传递信息的技术问题。

Description

数据处理方法、装置、电子设备及计算机可读存储介质
技术领域
本公开涉及神经网络计算领域,尤其涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高。芯片是数据处理的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如CPU等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如TPU等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。在多(众)核架构的芯片中,要发挥众多核的计算能力,提升处理任务的速度,关键是要让各核之间能很好的相互配合。
现有技术中最通用的多(众)核架构的芯片中的核之间相互配合的方案为共享内容方案,即多个核之间依靠共享的内存,实现核之间状态信息的传递和数据的交换,即多个核将其处理结果存入共享内存中,通过改变共享内存的访问权限来控制多个核之间的状态信息的传递和数据交换。但是该方案需要增加额外的硬件以及原子操作并且各核的程度设计复杂度增加,核的执行程序在时序要需要严格控制,否则很容易出错。
现有技术中还有一种整体同步并行(BSP)计算方案,其在一个芯片中所有的核或者部分核,在一个整体的同步信号指挥下实现各个核之间的同步,从而让它们配合完成某些任务。其需要一个同步电路产生同步信号,由该同步信号推进流水线,当接收到同步信号,各个核开始计算、传输数据、接收数据,之后完成工作时通知所述同步电路,当同步电路接收到所有核都完成工作的信息之后,产生下一个同步信号。但是该方案需要增加专门的同步电路,增加了芯片的面积,如果想灵活的组合各个核心,需要复杂的逻辑控制等等。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开实施例提供一种数据处理方法,包括:
接收源处理核发送的数据;
响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;
响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。
进一步的,所述数据处理任务为神经网络中一个或多个节点执行的数据处理任务,所述源处理核为位于神经网络中上层节点的数据处理单元,所述目标处理核为位于所述神经网络中下层节点的数据处理单元。
进一步的,在所述接收所述源处理核发送的数据之前,还包括:
确定所述源处理核以及所述目标处理核;
向所述源处理核发送第二待接收数据的消息。
进一步的,在所述发送所述处理结果至所述目标处理核之后,还包括:
响应于所述处理结果发送完毕,发送第二数据发送完毕的消息至所述目标处理核。
进一步的,在所述对所述接收到的数据执行数据处理任务之后,还包括:
响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到所述目标处理核发送的所述第一待接收数据的消息。
进一步的,所述处理任务的处理结果满足第一标准,包括:所述处理结果的数据量大于第一阈值;或
所述处理结果的数据量为全部所述接收到的数据的处理结果。
进一步的,在所述响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到目标处理核发送的第一待接收数据的消息之后,还包括:
响应于未接收到所述目标处理核发送的所述第一待接收数据的消息,进入等待状态,直至接收到所述第一待接收数据的消息。
进一步的,在所述对所述接收到的数据执行数据处理任务之后还包括:
响应于所述数据处理任务的处理结果不满足第一标准,缓存所述处理结果数据,向所述源处理核发送所述第二待接收数据的消息。
进一步的,所述响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务,包括:
响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行部分数据处理任务。
第二方面,本公开实施例提供一种数据处理装置,包括:
数据接收模块,用于接收源处理核发送的数据;
数据处理模块,用于响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;
处理结果发送模块,用于响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。进一步的,所述在所述数据处理装置中:所述数据处理任务为神经网络中一个或多个节点执行的数据处理任务,所述源处理核为位于神经网络中上层节点的数据处理单元,所述目标处理核为位于所述神经网络中下层节点的数据处理单元。
进一步的,所述数据处理装置还包括:
核心确定模块,用于确定所述源处理核以及所述目标处理核;
第二待接收数据的消息发送模块,用于向所述源处理核发送第二待接收数据的消息。
进一步的,所述数据处理装置还包括:
第二数据发送完毕的消息发送模块,用于响应于所述处理结果发送完毕,发送第二数据发送完毕的消息至所述目标处理核。
进一步的,所述数据处理装置还包括:
第一判断模块,用于响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到所述目标处理核发送的所述第一待接收数据的消息。
进一步的,所述处理任务的处理结果满足第一标准,包括:所述处理结果的数据量大于第一阈值;或,所述处理结果的数据量为全部所述接收到的数据的处理结果。
进一步的,所述数据处理装置还包括:
状态切换模块,用于响应于未接收到所述目标处理核发送的所述第一接收数据的消息,进入等待状态,直至接收到所述第一待接收数据的消息。
进一步的,所述数据处理装置还包括:
缓存模块,用于响应于所述处理结果不满足第一标准,缓存所述处理结果数据,向所述源处理核发送所述第二待接收数据的消息。
进一步的,所述数据处理模块还包括:
部分数据处理模块,用于响应于接收到所述源处理核发送的数据发送完毕的消息,对所述接收到的数据执行部分数据处理任务。
第三方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现前述第一方面中的任一所述数据处理方法。
第四方面,本公开实施例提供一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行前述第一方面中的任一所述数据处理方法。
第五方面,本公开实施例提供一种计算机程序产品,其中,所述程序包括当在计算机上执行所述程序时,用于实现前述第一方面中的任一所述数据处理方法的指令序列。
本公开公开了一种数据处理方法、装置、电子设备和计算机可读存储介质。其中该数据处理方法包括:接收源处理核发送的数据;响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。通过上述方法,解决了现有技术中的处理器的多个核心在执行数据处理任务时需要统一的同步信号或者需要额外的硬件来传递信息的技术问题。
上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开提供的数据处理方法的一个实施例的流程示意图;
图2为本公开提供的数据处理方法实施例中涉及的神经网络的结构示意图;
图3为本公开提供的数据处理方法的一个实施例的进一步的流程示意图;
图4为本公开提供的数据处理方法的一个实施例的进一步的流程示意图;
图5为本公开提供的数据处理方法的一个实施例的进一步的流程示意图;
图6为本公开提供的数据处理方法的一个实施例中所处理的图片的示例图;
图7为本公开提供的数据处理方法的一个实施例的进一步的流程示意图;
图8为本公开提供的数据处理方法的一个实施例的进一步的流程示意图;
图9为本公开提供的数据处理方法的一个实施例的步骤S102的一个具体实例的流程示意图;
图10为本公开提供的数据处理方法的一个实际应用示意图;
图11为本公开实施例提供的数据处理装置的实施例的结构示意图;
图12为根据本公开实施例提供的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开实施例提供的数据处理方法实施例的流程图,本实施例提供的该数据处理方法可以由一多核处理器中的任一处理核来执行。或者,该数据处理方法可以由一数据处理装置来执行,该数据处理装置可以实现为软件,或者实现为软件和硬件的组合,该数据处理装置可以集成设置在数据处理系统中的某设备中,比如数据处理服务器或者数据处理终端设备中。如图1所示,该方法包括如下步骤:
步骤S101,接收源处理核发送的数据;
在该步骤中,执行所述数据处理方法的处理核(以下简称为“当前处理核”)接收源处理核发送的数据作为自己待处理的数据。
可选的,所述源处理核发送的数据为所述源处理核执行该源处理核上的数据处理任务所产生的数据;或者,可选的,所述源处理核发送的数据为所述源处理核接收到的数据,在该可选实施例中所述源处理核仅转发接收到的数据,而不对数据进行处理。
步骤S102,响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;
当所述源处理核的数据发送完毕,其发送第一数据发送完毕的消息给当前处理核以通知当前处理核其数据已经发送完毕,当前处理核可以继续执行其他工作。可以理解的,所述的数据处理任务可以是任何处理任务。所述源处理核可以有一个或多个。
可选的,当当前处理核接收到所有源处理核的第一数据发送完毕的消息之后,对所接收到数据执行数据处理任务。
可选的,当前处理核与各个源处理核之间的消息接收是并行的,当前处理核对接收到的数据执行数据处理任务也是并行的。例如,当前核接收到第一源处理核发送的数据发送完毕的消息,可以对接收到的数据执行数据处理任务,同时可能会接到第二源处理核发送的数据发送完毕的消息,再对接收到的第二源处理核发送的数据执行数据处理任务。
可以理解的,上述数据处理任务的具体实例仅仅为举例,不构成对本公开的限制,实际上任何数据处理任务均可以应用于本公开中。
步骤S103,响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。
在执行完所述数据任务之后,当前处理核确认是否接收到目标处理核发送的第一待接收数据的消息,如果接收到目标处理核发送的第一待接收数据的消息,将所述数据处理任务的处理结果发送至所述目标处理核。可以理解的,所述目标处理核可以有一个或多个,每当当前处理核接收到一个目标处理核发送的第一待接收数据的消息,就可以发送所述处理结果至所述目标处理核,直至接收到所有的目标处理核的第一待接收数据的消息,且发送所述处理结果至当前处理核的所有目标处理核为止。
可选的,当当前处理核接收到所有目标处理核发送的第一待接收数据的消息之后,对发送数据处理任务的处理结果给所有目标处理核。
可选的,当前核与各个目标处理核之间的接收消息是并行的,发送数据处理任务也是并行的。例如,当前核接收到第一目标核发送的待接收数据的消息后,给第一目标核发送处理结果,同时可能会接收第二目标核发送的待接收数据的消息,在收到第二目标核发送的待接收数据的消息后给第二目标核发送处理结果。
根据所述步骤S101-S103,多核处理器的核之间可以通过自身的数据处理任务以及与该数据处理任务有数据依赖的处理核的状态来进行协作与数据交换,无需额外的同步控制电路,且无数据依赖的核可以并行执行处理任务。
在一个可选实施例中,根据所述步骤S101-S103,其中:所述数据处理任务为神经网络中一个或多个节点执行的数据处理任务,所述源处理核为位于神经网络中上层节点的数据处理单元,所述目标处理核为位于所述神经网络中下层节点的数据处理单元。如图2所述,典型的神经网络由多层组成,一般分为输入层、隐藏层和输出层,其中隐藏层可以有一个或多个,一般为多个。如图2所示,在网络图中,一般用节点表示对数据进行处理,边表示数据的传输交换,当两个节点间有数据交换时,用边连接。在神经网络中,一般数据流动是单向的,而且层与层之间的数据流动也是单向的,一般是上一层(或者前一层)的节点的处理结果,传输到下一层或者下几层的节点作为输入。以图2中的神经网络为例,H0的输入为上一层的节点X0和X1,接收X0和X1的数据之后,H0对接收到的数据进行处理之后,将处理结果传出到下一层的节点H2。
在该可选实施例中,将所述神经网络中一个或多个节点所执行的数据处理任务分配给所述当前处理核进行处理,也即是说当前处理核表示所述神经网络中的一个或多个节点,所述一个或多个节点可以为相邻的节点也可以是不相邻的节点。所述的源处理核对应当前处理核所对应的节点的上层节点,所述目标处理核对应当前处理核所对应的节点的下层的节点。由于在神经网络中数据流动的确定性,使得多核处理器的多个核的运行能够根据数据流依次启动处理核的运行,而不需要同步信号来控制各个核的开始工作。
在该可选实施例中,可将所述神经网络中一个或多个节点所执行的数据处理任务分配给多个所述当前处理核进行处理,此时这多个处理核仍旧属于上述神经网络的一个层,且处理核直接也会以上述同样的方式进行数据交换和处理。
如图3所示,在另一个可选实施例中,在所述步骤S101,接收所述源处理核发送的数据之前,还包括:
步骤S301,确定所述源处理核以及所述目标处理核;
步骤S302,向所述源处理核发送第二待接收数据的消息。
在步骤S301中,确定当前的数据处理任务的源处理核以及目标处理核,所述源处理核以及目标处理核被记录在所述数据处理任务中,可选的,此处的数据处理任务为当前处理核的程序,也即是说源处理核以及目标处理核被记录在当前处理核的程序中。
典型的,所述数据处理任务为神经网络中的处理任务,处理任务由核所在芯片上的MCU或者核所在芯片外的Host在初始化的时候分配。在初始化时,整个神经网络会分割成多个处理任务,由MCU或者Host将这些任务以程序或者指令的方式分配到一个或多个处理核上,记录处理核之间的对应关系,由此得到处理核的数据处理任务的源处理核以及目标处理核,一个或多个处理核的程序在初始化时被记录在本核中。
在步骤S302中,在确定源处理核之后,当前处理核向所述源处理核发送第二待接收数据的消息,以通知所述源处理核可以发送数据给当前处理核。所述源处理核可以为一个或多个,所述向所述源处理核发送第二待接收数据的消息为向当前处理核的所有源处理核发送第二待接收数据的消息。在发送完所述第二待接收数据的消息之后,当前处理核等待接收所述源处理核的数据。
在另一个可选实施例中,在所述步骤S103,发送所述处理结果至所述目标处理核之后,还包括:
步骤S401,响应于所述处理结果发送完毕,发送第二数据发送完毕的消息至所述目标处理核。
在该步骤中,当所述当前处理核的处理结果发送完毕之后,向所述目标处理核发送第二数据发送完毕的消息,以通知所述目标处理核所述处理结果已经发送完毕,使目标处理核可以根据接收到的处理结果执行所述目标处理核的数据处理任务,其中当前处理核为所述目标处理核的源处理核。所述目标处理核可以为一个或多个,所述的处理结果发送完毕是针对单个目标处理核的,也即是说,每当对一个目标处理核的处理结果发送完毕时,即向该目标处理核发送所述第二数据发送完毕的消息,以使所述目标处理核可以及时执行其数据处理任务。
在另一个可选实施例中,在所述步骤S102中的所述对所述接收到的数据执行数据处理任务之后,还包括:
步骤S501,响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到所述目标处理核发送的所述第一待接收数据的消息。
可选的,所述处理任务的处理结果满足第一标准,包括:所述处理结果的数据量大于第一阈值;或,所述处理结果的数据量为全部所述接收到的数据的处理结果。其中,所述第一阈值为预先设置的值,可以针对所有的数据处理任务设置相同的第一阈值,也可以针对不同的数据处理任务设置不同的第一阈值。如图6所示,为一个数据处理任务所要处理的图片,该图片被分为4行,所述数据处理对所述4行进行处理得到4个处理结果,所述第一阈值可以被设置为一行的处理结果,即当前处理核处理完一行之后得到一个处理结果,此时处理结果满足第一阈值,则可以发送所述一行的处理结果给目标处理核;或者所述第一阈值可以被设置为两行的处理结果,即当前处理核处理完两行的之后得到两个处理结果,此时处理结果满足第一阈值,则准备发送所述两行的处理结果给目标处理核。或者,所述处理结果的数据量为全部所述接收到的数据的处理结果,即将所述接收的数据全部处理完之后才准备发送所述处理结果,以图6所示的图片为例,即当4行全部处理完得到之后,发送所述处理结果。
在该步骤S501中,当所述处理结果满足第一标准时,还需要判断是否接收到所述目标处理核发送的所述第一待接收数据的消息。所述第一待接收数据的消息,表示所述目标处理核目前没有执行其他数据处理任务,处于可以接收数据的状态。当接收到所述目标处理核发送的所述第一待接收数据的消息,继续执行上述步骤S103中的步骤。
可选的,在所述步骤S501之后,还包括:步骤S701,响应于未接收到所述目标处理核发送的所述第一接收数据的消息,进入等待状态,直至接收到所述第一待接收数据的消息。在该步骤中,当前处理核未接收到目标处理核发送的第一待接收数据的消息,也即是说所述目标处理核处于忙的状态,暂时无法接收所述处理结果,此时当前处理核需进入等待状态,直到接收到所述目标处理核发送来的第一待接收数据的消息,继续执行之后的步骤S103。
在另一个可选实施例中,在所述步骤S102中的所述对所述接收到的数据执行数据处理任务之后,还包括:
步骤S801,响应于所述数据处理任务的处理结果不满足第一标准,缓存所述处理结果数据,向所述源处理核发送所述第二待接收数据的消息。
其中,在该步骤中所述的第一标准的含义与上述步骤S501中的第一标准的含义相同,在此不再赘述。所述处理结果不满足第一标准,即处理结果的数据量不满足第一标准,则将所述处理结果放入缓存中保存,并向所述源处理核发送所述第二待接收数据的消息,以使所述源处理核继续发送数据给当前处理核以使当前处理核继续执行数据处理任务,直至所述缓存中的数据满足第一标准,继续执行步骤S103或者步骤S501。
在另一个可选实施例中,所述步骤S102,所述响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务,包括:
步骤S901,响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行部分数据处理任务。其中所述的部分数据处理任务为当前处理核所执行的数据处理任务的一部分,在该实施例中,所述源处理核在其处理结果满足第一标准时,向当前核发送数据,在发送完毕之后发送第一数据发送完毕消息给当前核以使当前核开始执行所述数据处理任务以处理从所述源处理核接收到的数据。
在该步骤中,由于所述源处理核根据所述源处理核的发送数据的第一标准可以发送部分处理结果给当前处理核,而该部分处理结果对当前处理核而言满足第二标准时,且第二标准不为任务的全部数据时,当前处理核对收到的部分数据执行部分数据处理任务以得到当前核的数据处理任务的部分处理结果。
在该实施例中,当前处理核还可以根据数据处理任务中的处理策略来决定数据的处理量,如预先设置了当前处理核的数据处理任务执行时的每次数据处理量,当接收到源处理核的数据之后,如果所述数据处理量满足第二阈值,则根据所述数据处理任务处理所接收到的数据;如果所述数据处理量不满足第二阈值,则将所述数据存入缓存中,并发送第二待接收数据的消息至所述源处理核心,并接收源处理核心发送来的数据,直至接收到的数据满足第二阈值,开始执行所述部分数据处理。
之后当前核继续执行步骤S102之后的其他步骤以完成当前核的状态以及数据的交换。
如图10所示,为本公开中一个实施例的具体实例。如图10所示,C0、C1、C2和C3表示多核处理器中的4个核心,处理核C0的数据处理任务对应于图2中的节点X0的数据处理任务,C1的数据处理任务对应于图2中的节点X1的数据处理任务,C2的数据处理任务对应于图2中的节点H0的数据处理任务,C3的数据处理任务对应于图2中的节点H2的数据处理任务。C2为当前核,开始执行数据处理任务前,C2确定是否接收到其源核心C0和C1发送来的数据发送完毕的消息,如果没有接收到数据发送完毕的消息,C2则进入等待状态,不会执行数据处理任务;如果接收到数据发送完毕的消息,C2根据接收到的数据开始执行所述数据处理任务,C2在执行完所述数据任务得到处理结果之后,会确认是否接收到其目标核C3发送来的待接收数据的消息,如果没有收到目标核C3发送的待接收数据的消息,则C2进入等待状态直至接收到所述待接收数据的消息,如果接收到所述待接收数据的消息,则C2将数据处理任务的结果发送给C3,在发送完毕之后,C2向C3发送数据发送完毕的消息,向C0和C1发送待接收数据的消息,准备执行新一轮的数据处理任务;或者当所述数据处理任务执行完毕,所述当前核确定是否还有其他待执行的数据处理任务,如果有则执行一下待执行的数据处理任务。
本公开公开了一种数据处理方法、装置、电子设备和计算机可读存储介质。其中该数据处理方法包括:接收源处理核发送的数据;响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。通过上述方法,解决了现有技术中的处理器的多个核心在执行数据处理任务时需要统一的同步信号或者需要额外的硬件来传递信息的技术问题。
在上文中,虽然按照上述的顺序描述了上述方法实施例中的各个步骤,本领域技术人员应清楚,本公开实施例中的步骤并不必然按照上述顺序执行,其也可以倒序、并行、交叉等其他顺序执行,而且,在上述步骤的基础上,本领域技术人员也可以再加入其他步骤,这些明显变型或等同替换的方式也应包含在本公开的保护范围之内,在此不再赘述。
图11为本公开实施例提供的数据处理装置实施例的结构示意图,如图11所示,该装置1100包括:数据接收模块1101、数据处理模块1102和处理结果发送模块1103。其中,
数据接收模块1101,用于接收源处理核发送的数据;
数据处理模块1102,用于响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;
处理结果发送模块1103,用于响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。
进一步的,所述在所述数据处理装置1100中:所述数据处理任务为神经网络中一个或多个节点执行的数据处理任务,所述源处理核为位于神经网络中上层节点的数据处理单元,所述目标处理核为位于所述神经网络中下层节点的数据处理单元。
进一步的,所述数据处理装置1100还包括:
核心确定模块,用于确定所述源处理核以及所述目标处理核;
第二待接收数据的消息发送模块,用于向所述源处理核发送第二待接收数据的消息。
进一步的,所述数据处理装置1100还包括:
第二数据发送完毕的消息发送模块,用于响应于所述处理结果发送完毕,发送第二数据发送完毕的消息至所述目标处理核。
进一步的,所述数据处理装置1100还包括:
第一判断模块,用于响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到所述目标处理核发送的所述第一待接收数据的消息。
进一步的,所述处理任务的处理结果满足第一标准,包括:所述处理结果的数据量大于第一阈值;或,所述处理结果的数据量为全部所述接收到的数据的处理结果。
进一步的,所述数据处理装置1100还包括:
状态切换模块,用于响应于未接收到所述目标处理核发送的所述第一接收数据的消息,进入等待状态,直至接收到所述第一待接收数据的消息。
进一步的,所述数据处理装置1100还包括:
缓存模块,用于响应于所述处理结果不满足第一标准,缓存所述处理结果数据,向所述源处理核发送所述第二待接收数据的消息。
进一步的,所述数据处理模块还包括:
部分数据处理模块,用于响应于接收到所述源处理核发送的数据发送完毕的消息,对所述接收到的数据执行部分数据处理任务。
图11所示装置可以执行图1-图9所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图9所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图9所示实施例中的描述,在此不再赘述。
下面参考图12,其示出了适于用来实现本公开实施例的电子设备(例如图1中的终端设备或服务器)1200的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200可以包括处理装置1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储装置1206加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有电子设备1200操作所需的各种程序和数据。处理装置1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。所述处理装置包括一个或多个处理器或处理核。
通常,以下装置可以连接至I/O接口1205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1206;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1207;包括例如磁带、硬盘等的存储装置1206;以及通信装置1209。通信装置1209可以允许电子设备1200与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的电子设备1200,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1209从网络上被下载和安装,或者从存储装置1206被安装,或者从ROM 1202被安装。在该计算机程序被处理装置1201执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收源处理核发送的数据;响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (13)

1.一种数据处理方法,包括:
接收源处理核发送的数据;
响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;
响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。
2.如权利要求1所述的数据处理方法,其中:所述数据处理任务为神经网络中一个或多个节点执行的数据处理任务,所述源处理核为位于神经网络中上层节点的数据处理单元,所述目标处理核为位于所述神经网络中下层节点的数据处理单元。
3.如权利要求1或2所述的数据处理方法,其特征在于:在所述接收所述源处理核发送的数据之前,还包括:
确定所述源处理核以及所述目标处理核;
向所述源处理核发送第二待接收数据的消息。
4.如权利要求1-3任一项所述的数据处理方法,其特征在于:在所述发送所述处理结果至所述目标处理核之后,还包括:
响应于所述处理结果发送完毕,发送第二数据发送完毕的消息至所述目标处理核。
5.如权利要求1-4任一项所述的数据处理方法,其特征在于,在所述对所述接收到的数据执行数据处理任务之后,还包括:
响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到所述目标处理核发送的所述第一待接收数据的消息。
6.如权利要求5所述的数据处理方法,其特征在于,所述处理任务的处理结果满足第一标准,包括:所述处理结果的数据量大于第一阈值;或
所述处理结果的数据量为全部所述接收到的数据的处理结果。
7.如权利要求5或6所述的数据处理方法,其特征在于,在所述响应于所述数据处理任务的处理结果满足第一标准,判断是否接收到目标处理核发送的第一待接收数据的消息之后,还包括:
响应于未接收到所述目标处理核发送的所述第一待接收数据的消息,进入等待状态,直至接收到所述第一待接收数据的消息。
8.如权利要求1-4任一项所述的数据处理方法,其特征在于,在所述对所述接收到的数据执行数据处理任务之后还包括:
响应于所述数据处理任务的处理结果不满足第一标准,缓存所述处理结果数据,向所述源处理核发送所述第二待接收数据的消息。
9.如权利要求1-8任一项所述的数据处理方法,其特征在于,所述响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务,包括:
响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行部分数据处理任务。
10.一种数据处理装置,包括:
数据接收模块,用于接收源处理核发送的数据;
数据处理模块,用于响应于接收到所述源处理核发送的第一数据发送完毕的消息,对所述接收到的数据执行数据处理任务;
处理结果发送模块,用于响应于接收到目标处理核发送的第一待接收数据的消息,发送所述数据处理任务的处理结果至所述目标处理核。
11.一种电子设备,包括:
存储器,用于存储计算机可读指令;以及
一个或多个处理器,用于运行所述计算机可读指令,使得所述处理器运行时实现根据权利要求1-9中任意一项所述的数据处理方法。
12.一种非暂态计算机可读存储介质,用于存储计算机可读指令,当所述计算机可读指令由计算机执行时,使得所述计算机执行权利要求1-9中任意一项所述的数据处理方法。
13.一种计算机程序产品,其中,所述程序包括计算机可读指令,当所述计算机可读指令由计算机执行时,使得所述计算机执行权利要求1-9中任意一项所述的数据处理方法。
CN201910784294.4A 2019-08-23 2019-08-23 数据处理方法、装置、电子设备及计算机可读存储介质 Pending CN112418389A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910784294.4A CN112418389A (zh) 2019-08-23 2019-08-23 数据处理方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910784294.4A CN112418389A (zh) 2019-08-23 2019-08-23 数据处理方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN112418389A true CN112418389A (zh) 2021-02-26

Family

ID=74780351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910784294.4A Pending CN112418389A (zh) 2019-08-23 2019-08-23 数据处理方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112418389A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407352A (zh) * 2021-07-20 2021-09-17 北京百度网讯科技有限公司 用于处理任务的方法、处理器、设备和可读存储介质
CN115599507A (zh) * 2021-07-07 2023-01-13 清华大学(Cn) 数据处理方法、执行工作站、电子设备和存储介质
US11640263B2 (en) * 2020-10-07 2023-05-02 SK Hynix Inc. Memory system and operating method thereof

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262726A (zh) * 2011-06-17 2011-11-30 西安电子科技大学 基于fpga多核的车牌识别系统
US20150242741A1 (en) * 2014-02-21 2015-08-27 Qualcomm Incorporated In situ neural network co-processing
CN105191232A (zh) * 2013-03-13 2015-12-23 高通股份有限公司 具有分布式流表的网络元件
CN108446758A (zh) * 2018-02-11 2018-08-24 江苏金羿智芯科技有限公司 一种面向人工智能计算的神经网络数据串行流水处理方法
CN109409513A (zh) * 2018-10-10 2019-03-01 广州市百果园信息技术有限公司 一种基于神经网络的任务处理方法及相关设备
US20190114534A1 (en) * 2017-10-17 2019-04-18 Xilinx, Inc. Neural network processing system having multiple processors and a neural network accelerator
US20190121734A1 (en) * 2017-10-20 2019-04-25 International Business Machines Corporation Memory-mapped interface for message passing computing systems
KR20190052587A (ko) * 2017-11-08 2019-05-16 삼성전자주식회사 뉴럴 네트워크 장치 및 그 동작 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262726A (zh) * 2011-06-17 2011-11-30 西安电子科技大学 基于fpga多核的车牌识别系统
CN105191232A (zh) * 2013-03-13 2015-12-23 高通股份有限公司 具有分布式流表的网络元件
US20150242741A1 (en) * 2014-02-21 2015-08-27 Qualcomm Incorporated In situ neural network co-processing
US20190114534A1 (en) * 2017-10-17 2019-04-18 Xilinx, Inc. Neural network processing system having multiple processors and a neural network accelerator
US20190121734A1 (en) * 2017-10-20 2019-04-25 International Business Machines Corporation Memory-mapped interface for message passing computing systems
KR20190052587A (ko) * 2017-11-08 2019-05-16 삼성전자주식회사 뉴럴 네트워크 장치 및 그 동작 방법
CN108446758A (zh) * 2018-02-11 2018-08-24 江苏金羿智芯科技有限公司 一种面向人工智能计算的神经网络数据串行流水处理方法
CN109409513A (zh) * 2018-10-10 2019-03-01 广州市百果园信息技术有限公司 一种基于神经网络的任务处理方法及相关设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11640263B2 (en) * 2020-10-07 2023-05-02 SK Hynix Inc. Memory system and operating method thereof
CN115599507A (zh) * 2021-07-07 2023-01-13 清华大学(Cn) 数据处理方法、执行工作站、电子设备和存储介质
CN113407352A (zh) * 2021-07-20 2021-09-17 北京百度网讯科技有限公司 用于处理任务的方法、处理器、设备和可读存储介质
CN113407352B (zh) * 2021-07-20 2024-08-16 昆仑芯(北京)科技有限公司 用于处理任务的方法、处理器、设备和可读存储介质

Similar Documents

Publication Publication Date Title
CN110569470B (zh) 用户匹配方法、装置、可读介质和电子设备
CN110781373B (zh) 榜单更新方法、装置、可读介质和电子设备
CN111240834B (zh) 任务执行方法、装置、电子设备和存储介质
CN112418389A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN112015816A (zh) 数据同步方法、装置、介质及电子设备
CN110795446A (zh) 榜单更新方法、装置、可读介质和电子设备
CN111968648B (zh) 语音识别方法、装置、可读介质及电子设备
CN112256733A (zh) 数据缓存方法、装置、电子设备及计算机可读存储介质
CN110768861B (zh) 一种获取超时阈值的方法、装置、介质和电子设备
CN111898061B (zh) 搜索网络的方法、装置、电子设备和计算机可读介质
CN111355784B (zh) 一种处理请求信息的方法、装置、介质和电子设备
CN111815508A (zh) 图像生成方法、装置、设备和计算机可读介质
CN111444457B (zh) 数据发布方法、装置、存储介质及电子设备
CN111756833B (zh) 节点处理方法、装置、电子设备及计算机可读介质
CN110619079B (zh) 用于推送信息的方法和装置
CN114651237A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN114095907A (zh) 蓝牙连接的控制方法、装置及设备
CN113518183A (zh) 摄像头调用方法、装置和电子设备
CN112163176A (zh) 数据存储方法、装置、电子设备和计算机可读介质
CN112311840A (zh) 一种多终端数据同步方法、装置、设备及介质
CN115114051B (zh) 节点通信方法、装置、设备及存储介质
CN113535428B (zh) 请求消息和响应消息的处理方法、装置、设备和介质
CN117170986B (zh) 芯片一致性处理系统,及其方法、装置、设备及介质
CN113342837B (zh) 数据发送方法、装置、电子设备和计算机可读介质
CN115993942B (zh) 数据缓存方法、装置、电子设备和计算机可读介质

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: Room 201, No. 6 Fengtong Heng Street, Huangpu District, Guangzhou City, Guangdong Province

Applicant after: Guangzhou Ximu Semiconductor Technology Co.,Ltd.

Address before: Building 202-24, No. 6, Courtyard 1, Gaolizhang Road, Haidian District, Beijing

Applicant before: Beijing SIMM Computing Technology Co.,Ltd.

Country or region before: China