CN115086232B - 任务处理及数据流生成方法和装置 - Google Patents
任务处理及数据流生成方法和装置 Download PDFInfo
- Publication number
- CN115086232B CN115086232B CN202210665564.1A CN202210665564A CN115086232B CN 115086232 B CN115086232 B CN 115086232B CN 202210665564 A CN202210665564 A CN 202210665564A CN 115086232 B CN115086232 B CN 115086232B
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- target
- transmission path
- data stream
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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
-
- 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/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本公开涉及一种任务处理及数据流生成方法和装置。所述任务处理方法包括:接收待处理任务的第一数据流;根据处理指令,对第一静态数据和第一动态数据进行处理,获得第二数据流;根据数据流方向指令,将第二数据流按照传输方向发送至目标地址。根据本公开的实施例的任务处理方法,对于每个处理核心,均可利用接收到的第一数据流进行处理,获得第二数据流,并根据第一控制数据的数据流方向指令,将第二数据流发送至目标地址,可通过数据流方向指令灵活地控制数据流的传输方向,而不仅将控制数据存放在固定的处理核心内,并由固定的处理核心来执行任务,有利于降低数据处理或传输过程中的局部限制,提升数据处理和传输的灵活性和效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种任务处理及数据流生成方法和装置。
背景技术
人工智能在各领域中不断应用,提升神经网络模型运算效率的神经网络加速芯片越来越重要。芯片中的众核架构因其去中心化的资源分布,灵活的并行控制等特点,成为了神经网络加速芯片的重要研究方向。相关技术中,主流的众核芯片的执行方式可以分为单指令多数据(Single Instruction Multiple Data,SIMD)执行方式,和多指令多数据(Multiple Instruction Multiple Data,MIMD)执行方式。在SIMD的执行方式中,芯片的所有处理核心在同一时刻执行相同的指令,但是处理不同的数据。而在MIMD的执行方式中,不同的处理核心可以并行的执行不同的指令,分别处理不同的数据。一般而言SIMD因为其控制逻辑简单,可以做到较高并行算力密度,是当前很多大规模神经网络加速芯片的选择。但随着网络功能、结构、资源占用的多样性不断增加,尤其是多神经网络协同的场景不断出现,在执行调度上更加灵活通用的MIMD的执行方式也受到越来越多的关注。在MIMD的执行方式中,可以使每个处理核心独立地完成一系列运算,这给任务的部署带来更大灵活性。然而,相关技术中,在执行神经网络模型的处理任务时,多采用流水式的执行策略,即,使得同一个任务中的多个任务节点分别布置在多个处理核心上,并通过处理核心依次处理各个任务节点,因此,相关技术并未充分发挥MIMD执行方式的灵活性,流水式执行策略也难以提升任务数据的处理效率和传输效率。
发明内容
本公开提供了一种任务处理及数据流生成方法和装置。
根据本公开的一方面,提供了一种任务处理方法,所述方法用于众核处理组件中的任意一个处理核心,所述方法包括:接收待处理任务的第一数据流,其中,所述第一数据流包括第一动态数据、第一静态数据和第一控制数据,所述第一动态数据包括所述待处理任务的输入数据或中间结果数据,所述第一静态数据包括所述待处理任务的权值数据,所述第一控制数据包括处理指令和数据流方向指令,所述数据流方向指令用于确定所述处理核心产生的数据流的传输方向;根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流;根据所述数据流方向指令,将所述第二数据流按照所述传输方向发送至目标地址。
在一种可能的实现方式中,根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流,包括:根据所述处理指令,在所述处理核心中加载目标功能;根据所述目标功能,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流。
在一种可能的实现方式中,所述第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种,所述目标地址包括所述第二静态数据的第一目标地址,所述第二动态数据的第二目标地址,和所述第二控制数据的第三目标地址,根据所述数据流方向指令,将所述第二数据流按照上述传输方向发送至目标地址,包括:将所述第二静态数据发送至所述第一目标地址,将所述第二动态数据发送至第二目标地址,和/或将所述第二控制数据发送至第三目标地址。
根据本公开的一方面,提供了一种数据流生成方法,包括:获取待处理任务的中间表示模型,其中,所述中间表示模型包括待处理任务的处理节点,以及所述处理节点之间的连接关系;根据所述处理节点的资源需求、众核处理组件中各处理核心的资源以及所述连接关系,确定用于对各处理节点进行处理的目标处理核心;根据所述目标处理核心和所述连接关系,确定在多个所述目标处理核心之间的初始数据流传输路径,其中,初始数据流包括初始动态数据流、初始静态数据流和初始控制数据流,所述初始数据流传输路径包括在所述目标处理核心之间传输所述待处理任务的输入数据或中间结果数据的初始动态数据流传输路径,在所述目标处理核心之间传输所述待处理任务的权值数据的初始静态数据流传输路径,在所述目标处理核心之间传输处理指令的初始控制数据流传输路径,初始控制数据流传输路径还包括数据流方向指令,所述数据流方向指令用于确定所述初始数据流在所述目标处理核心之间传输方向;根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径,包括:根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始动态数据流传输路径、所述初始静态数据流传输路径和所述初始控制数据流的处理指令的传输路径,获得目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径;根据所述目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,所述初始控制数据流传输路径包括各目标处理核心的处理指令的传输路径和各目标处理核心的数据流方向指令,其中,获得所述目标控制数据流传输路径,包括:调整所述初始控制数据流传输路径的处理指令的传输路径,获得目标控制数据流传输路径的处理指令的传输路径;根据所述目标动态数据流传输路径、所述目标静态数据流传输路径以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径的数据流方向指令;根据所述目标控制数据流传输路径的数据流方向指令,以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径。
在一种可能的实现方式中,所述方法还包括:将所述目标数据流传输路径写入所述众核处理组件的内存。
根据本公开的一方面,提供了一种任务处理装置,所述装置用于众核处理组件中的任意一个处理核心,所述装置包括:接收模块,用于接收待处理任务的第一数据流,其中,所述第一数据流包括第一动态数据、第一静态数据和第一控制数据,所述第一动态数据包括所述待处理任务的输入数据或中间结果数据,所述第一静态数据包括所述待处理任务的权值数据,所述第一控制数据包括处理指令和数据流方向指令,所述数据流方向指令用于确定所述处理核心产生的数据流的传输方向;处理模块,用于根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流;发送模块,用于根据所述数据流方向指令,将所述第二数据流按照所述传输方向发送至目标地址。
在一种可能的实现方式中,所述处理模块进一步用于:根据所述处理指令,在所述处理核心中加载目标功能;根据所述目标功能,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流。
在一种可能的实现方式中,所述第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种,所述目标地址包括所述第二静态数据的第一目标地址,所述第二动态数据的第二目标地址,和所述第二控制数据的第三目标地址,所述发送模块进一步用于:将所述第二静态数据发送至所述第一目标地址,将所述第二动态数据发送至第二目标地址,和/或将所述第二控制数据发送至第三目标地址。
根据本公开的一方面,提供了一种数据流生成装置,所述装置包括:获取模块,用于获取待处理任务的中间表示模型,其中,所述中间表示模型包括待处理任务的处理节点,以及所述处理节点之间的连接关系;目标处理核心确定模块,用于根据所述处理节点的资源需求、众核处理组件中各处理核心的资源以及所述连接关系,确定用于对各处理节点进行处理的目标处理核心;初始路径确定模块,用于根据所述目标处理核心和所述连接关系,确定在多个所述目标处理核心之间的初始数据流传输路径,其中,初始数据流包括初始动态数据流、初始静态数据流和初始控制数据流,所述初始数据流传输路径包括在所述目标处理核心之间传输所述待处理任务的输入数据或中间结果数据的初始动态数据流传输路径,在所述目标处理核心之间传输所述待处理任务的权值数据的初始静态数据流传输路径,在所述目标处理核心之间传输处理指令的初始控制数据流传输路径,初始控制数据流传输路径还包括数据流方向指令,所述数据流方向指令用于确定所述初始数据流在所述目标处理核心之间传输方向;目标路径获得模块,用于根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,所述目标路径获得模块进一步用于:根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始动态数据流传输路径、所述初始静态数据流传输路径和所述初始控制数据流的处理指令的传输路径,获得目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径;根据所述目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,所述初始控制数据流传输路径包括各目标处理核心的处理指令的传输路径和各目标处理核心的数据流方向指令,所述目标路径获得模块进一步用于:调整所述初始控制数据流传输路径的处理指令的传输路径,获得目标控制数据流传输路径的处理指令的传输路径;根据所述目标动态数据流传输路径、所述目标静态数据流传输路径以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径的数据流方向指令;根据所述目标控制数据流传输路径的数据流方向指令,以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径。
在一种可能的实现方式中,所述装置还包括:写入模块,用于将所述目标数据流传输路径写入所述众核处理组件的内存。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的实施例的任务处理方法,对于每个处理核心,均可利用接收到的第一数据流进行处理,获得第二数据流,并根据第一控制数据的数据流方向指令,将第二数据流发送至目标地址,可通过数据流方向指令灵活地控制数据流的传输方向,而不仅将控制数据存放在固定的处理核心内,并由固定的处理核心来执行任务,有利于降低数据处理或传输过程中的局部限制,提升数据处理和传输的灵活性和效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的任务处理方法的流程图;
图2示出根据本公开实施例的动态数据流水执行策略的示意图;
图3示出根据本公开实施例的静态数据流水执行策略的示意图;
图4示出根据本公开实施例的数据流生成方法的流程图;
图5示出根据本公开实施例的任务处理方法的应用示意图;
图6示出根据本公开实施例的任务处理装置的框图;
图7示出根据本公开实施例的数据流生成装置的框图;
图8示出根据本公开实施例的一种电子设备的框图;
图9示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的任务处理方法的流程图,如图1所示,所述方法用于众核处理组件中的任意一个处理核心,所述方法包括:
在步骤S11中,接收待处理任务的第一数据流,其中,所述第一数据流包括第一动态数据、第一静态数据和第一控制数据,所述第一动态数据包括所述待处理任务的输入数据或中间结果数据,所述第一静态数据包括所述待处理任务的权值数据,所述第一控制数据包括处理指令和数据流方向指令,所述数据流方向指令用于确定所述处理核心产生的数据流的传输方向;
在步骤S12中,根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流;
在步骤S13中,根据所述数据流方向指令,将所述第二数据流按照所述传输方向发送至目标地址。
根据本公开的实施例的任务处理方法,对于每个处理核心,均可利用接收到的第一数据流进行处理,获得第二数据流,并根据第一控制数据的数据流方向指令,将第二数据流发送至目标地址,可通过数据流方向指令灵活地控制数据流的传输方向,而不仅将控制数据存放在固定的处理核心内,并由固定的处理核心来执行任务,有利于降低数据处理或传输过程中的局部限制,提升数据处理和传输的灵活性和效率。
在一种可能的实现方式中,所述方法可用于众核处理组件(例如,具有众核架构的芯片),包括但不限于众核神经网络加速芯片,神经形态芯片、类脑众核芯片、众核图形处理芯片(GPU)、带有向量或矩阵加速单元的众核CPU芯片。能够处理的神经网络模型包括但不限于人工神经网络(ANN)、脉冲神经网络(SNN)、混合神经网络(HNN)、动态神经网络(即含有控制流的、每次输入可能有不同执行过程的神经网络)及多神经网络模型。可用于神经网络模型的前向执行过程(例如,利用神经网络模型进行处理的过程),反向训练过程及神经网络架构搜索过程。所述方法同样可以应用于类神经网络任务,如多智能体仿真、芯片仿真、脑仿真、图形学、科学计算、并行搜索算法等。本公开对所述方法的应用领域,以及众核处理组件的应用领域不做限制。
在一种可能的实现方式中,待处理任务(例如,神经网络模型的处理任务)在执行时,存在三种类型的数据:静态数据,例如,神经网络模型的权值数据,静态数据在神经网络模型的前向执行过程中保持不变;动态数据,例如,神经网络模型的每层的输入/输出数据,如待处理任务的输入数据、神经网络模型执行过程中的中间结果等;控制数据,包括处理指令,例如,加权求和指令、激活运算指令等控制处理核心进行某种运算的指令。
在一种可能的实现方式中,使用相关技术来执行神经网络模型的处理任务时,通常包括两种执行策略。
在一种可能的实现方式中,一种策略是分段流水执行策略,首先将神经网络模型分成多个组,然后将每段依次加载到众核处理组件的各处理核心上。在每组的处理过程中,静态数据和控制数据被固定在芯片的处理核心上的存储位置中,而动态数据在核之间传输,该执行策略即为权重固定(Weight stationary)执行策略或动态数据流水执行策略。
图2示出根据本公开实施例的动态数据流水执行策略的示意图,如图2所示,所执行的神经网络模型包括多个网络层级,例如,层1、层2、层3、层4……在动态数据流水执行策略中,可对神经网络模型分组并加载至各处理核心,例如,可使处理核心1处理层1的计算过程,处理核心2处理层2的计算过程,处理核心3处理层3和层4的计算过程……在处理过程中,神经网络模型的网络层级对应的静态数据(例如,权值数据)存储在层对应的处理核心中,并且,控制各处理核心执行对应的计算过程的控制数据也存储在处理核心中,例如,可通过控制数据控制各层执行加权求和、激活等处理。
在一种可能的实现方式中,另一种策略是,动态数据会被固定的处理核心处理,而静态数据在处理核心之间传输,使得每个处理核心可以逐层完成神经网络模型的运算,该执行策略即为输入固定执行(Input stationary)策略或静态数据流水执行策略。
图3示出根据本公开实施例的静态数据流水执行策略的示意图,如图3所示,在静态数据执行策略中,计算核心核1完成了层1的计算后,将计算得到的动态数据存储在本核内,然后读入层2所需的静态数据,开始层2的计算,并将层1的静态数据传输给处理核心2。处理核心2可开始针对下一个输入的层1的输入数据进行计算,或者进行同样使用层1的静态数据的其它计算。
在一种可能的实现方式中,以上相关技术的执行策略中,不论是动态数据流水执行策略还是静态流水执行策略,每个运算核心中的控制数据保持不变,即,控制数据始终存储在固定的计算核心内,因此,计算核心也始终执行特定的处理,因此,无法调整数据流的传输方向,也无法避开处理或传输过程中的局部限制。例如,在数据传输至某个处理核心中等待处理时,该处理核心的处理资源已被大量占用,因而只能等待处理核心在其他处理过程执行完毕后,再处理该数据,又例如,多个处理核心同时将数据传输至某一个处理核心,而该处理核心的传输带宽有限,无法同时接收所有数据,因而部分数据只能等待其他数据传输完毕后,再传输至该处理核心。以上局部限制仅为示例,还可能存在其他限制,例如,功耗限制、存储限制、资源占用率限制等,本公开对局部限制的类型不做限制。
在一种可能的实现方式中,本公开可将控制数据加入数据流中,并使控制数据与静态数据和动态数据一起,在处理核心之间传输,使得处理核心可基于接收到的控制数据,来对静态数据和动态数据进行处理。从而可在获得数据流的过程中,避开上述局部限制,从而提升数据传输和处理的灵活性和效率。
在一种可能的实现方式中,对于某一个处理核心,该处理核心可在步骤S11中接收第一数据流,并在步骤S12中基于第一数据流中的第一控制数据对第一数据流中的第一静态数据和第一动态数据进行处理,获得处理结果,并基于处理结果生成第二数据流,以在步骤S13中将第二数据流向其他处理核心或存储器等目标地址发送。
在示例中,第一数据流中的第一静态数据、第一动态数据和第一控制数据可来自同一个处理核心,例如,第一数据流中的第一静态数据、第一动态数据和第一控制数据均可来自处理核心1,并由处理核心2进行处理,例如,基于第一控制数据,对第一静态数据和第一动态数据进行加权求和等,本公开对处理的类型不做限制。或者,第一数据流中的第一静态数据、第一动态数据和第一控制数据可来自不同的处理核心,例如,第一静态数据来自处理核心1,第一动态数据来自处理核心2,第一控制数据来自处理核心3,并由处理核心4进行处理。
在一种可能的实现方式中,接收到的第一控制数据中,除了控制处理核心进行特定处理的处理指令外,还包括数据流方向指令,数据流方向指令可用于控制处理核心生成的第二数据流的传输方向,即,用于确定传输第二数据流的目标地址。该目标地址可以是一个或多个处理核心,也可以是存储器等,本公开对目标地址不做限制。
在一种可能的实现方式中,由于控制数据不是固定地存储在处理核心内,即,处理核心并非仅执行固定的处理,而是基于接收到的第一数据流中的第一控制数据进行处理,因此,在处理核心基于第一数据流进行处理的过程中,可首先基于第一数据流中的第一控制数据确定具体的处理方式,再对第一动态数据和第一静态数据进行对应的处理。步骤S12可包括:根据所述处理指令,在所述处理核心中加载目标功能;根据所述目标功能,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流。
在一种可能的实现方式中,所述目标功能为用于执行与处理指令对应的处理的功能,在加载目标功能后,即可对第一静态数据和第一动态数据进行处理。在示例中,第一静态数据为权值数据,第一动态数据为输入数据,目标功能为加权求和的功能,则在加载目标功能后,可对第一静态数据和第一动态数据进行加权求和处理,并基于得到的处理结果获得第二数据流。
在一种可能的实现方式中,第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种。第二动态数据流可包括上述第一静态数据和第一动态数据的处理结果,第二静态数据可包括待处理任务后续处理步骤中所需的权值,第二控制数据可包括待处理任务后续处理步骤中所需的控制指令,以及所述数据流方向指令。所述数据流方向指令可以是在待处理任务开始执行之前设定好的。
在一种可能的实现方式中,可使用上述静态数据流水执行策略或动态数据流水执行策略来确定执行待处理任务的执行过程中涉及的处理核心(在此过程中,所述执行过程为预设的执行过程,例如,预先设计在执行某任务时需要使用的处理核心,以及处理核心之间的数据传输路径,而并非通过众核处理组件实际执行某任务的实际执行过程)。在上述执行过程中,不会将控制数据、静态数据和动态数据存储在固定的处理核心中,而是可在处理核心之间传输,换言之,可通过上述策略来确定用于处理待处理任务的各个步骤的处理核心,以及数据传输的路径,而并非完全通过上述策略来确定完整的执行过程。例如,可通过动态数据流水执行策略来确定神经网络模型的层1由处理核心1来处理,层2由处理核心2来处理……并可基于处理过程中的数据流的方向来生成所述数据流方向指令。当然,如果在上述执行过程中遇到局部限制,由于控制数据并非固定存储在处理核心,因此,可调节数据流的方向或路径,例如,可将上述执行过程中的某个处理资源剩余较少的处理核心,改换为处理资源剩余较多的处理核心,从而减少处理的等待时间,提升处理效率,避开局部限制,即,可将传输至资源剩余较少的处理核心的动态数据、静态数据和控制数据,改为传输至处理资源剩余较多的处理核心,在此过程中,数据流的方向也随之改变,因此,数据流方向指令也可相应地进行改变。
在一种可能的实现方式中,待处理任务可以是包括多个神经网络模型的处理任务,且神经网络模型之间可能存在数据交互,因此,在调整数据流的方向时,可能产生较复杂的调整结果,例如,在调整后,某个处理核心接收到的第一数据流中的第一动态数据、第一静态数据和第一控制数据并非来自同一个处理核心,处理核心处理后,得到的第二动态数据、第二静态数据和第二控制数据也并非发送至同一个目标地址。即,所述第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种,所述目标地址包括所述第二静态数据的第一目标地址,所述第二动态数据的第二目标地址,和所述第二控制数据的第三目标地址,步骤S13可包括:将所述第二静态数据发送至所述第一目标地址,将所述第二动态数据发送至第二目标地址,和/或将所述第二控制数据发送至第三目标地址。
在示例中,待处理任务可以是包括两个神经网络模型的处理任务,例如,神经网络模型1和神经网络模型2,神经网络模型1可包括3个网络层级,神经网络模型2可包括2个网络层级。可通过动态数据流水执行策略来确定神经网络模型1的层1由处理核心1来处理,神经网络模型1的层2由处理核心2来处理,神经网络模型1的层3由处理核心3来处理;神经网络模型2的层1由处理核心4来处理,神经网络模型2的层2由处理核心3来处理(例如,神经网络模型2的层2与神经网络模型1的层3需要相同的输入数据)。
在示例中,在处理核心之间传输的数据流可包括各处理核心所需的动态数据、静态数据和控制数据。动态数据在传输过程中可能发生变化,例如,输入处理核心1的动态数据为待处理的图像,输入处理核心2的动态数据为处理核心1输出的中间结果数据。而静态数据和控制数据通常是不变的,例如,静态数据包括神经网络模型的权值,控制数据包括控制指令,在传输过程中,静态数据和控制数据始终与神经网络模型的层级相对应,不会发生变化,在示例中,数据流中可包括所有层级(或者所有处理核心)所需的静态数据和控制数据。
在示例中,在预设的执行过程中,处理核心1和处理核心4可首先接收到数据流,并开始处理。在示例中,如果处理核心2存在局部限制,例如,数据流的传输限制,或者数据流的处理限制,则可将数据流改为发送至不存在局部限制的处理核心,例如,处理核心5,即,将静态数据、控制数据以及处理核心1生成的动态数据发送至处理核心5,并由处理核心5来处理神经网络模型1的层2。在此过程中,在改变数据流的传输方向时,静态数据、控制数据和动态数据的更改后的目标地址为相同地址。
在示例中,在预设的执行过程中,处理核心4处理神经网络模型2的层1生成的动态数据,以及静态数据和控制数据发送至处理核心3,处理核心2处理神经网络模型1的层2生成的动态数据,以及静态数据和控制数据发送至处理核心3,并由处理核心3来继续处理。如果处理核心3存在局部限制,则可改变处理核心,来避开局部限制。在示例中,神经网络模型2的层2可对神经网络模型1的层2的输出数据与神经网络模型2的层2的权值进行加权求和,而神经网络模型1的层3可对神经网络模型1的输出数据与神经网络模型1的层3的权值进行加权求和,因此,在改变处理核心时,例如,可将神经网络模型1的层2的输出数据(即,处理核心2产生的动态数据)的目标地址改为处理核心6,将神经网络模型2的层1(即,处理核心4)的静态数据和控制数据目标地址改为处理核心6;并可将可将神经网络模型2的层1的输出数据(即,处理核心4产生的动态数据)的目标地址改为处理核心7,将神经网络模型1的层2(即,处理核心2)的静态数据和控制数据目标地址改为处理核心7,从而避开处理核心3的局部限制。在此过程中,在改变数据流的传输方向时,统一处理核心输出静态数据、控制数据和动态数据的更改后的目标地址为不同地址。
在一种可能的实现方式中,通过以上更改后的数据传输路径,可确定数据流方向指令,并可将数据流方向指令保存在数据流的控制数据中,从而确定每个处理核心输出数据流的传输方向。例如,在实际的任务处理过程中,某个处理核心接收到第一数据流,其中,第一数据流包括第一动态数据、第一静态数据和第一控制数据,且第一控制数据包括数据流方向指令。在该处理核心经过处理,获得第二动态数据、第二静态数据和第二控制数据,从而可通过数据流方向指令确定各数据的目标地址,即,第二静态数据的第一目标地址,第二动态数据的第二目标地址,和第二控制数据的第三目标地址,从而可将各数据分别发送至目标地址。
在一种可能的实现方式中,第二静态数据和第一静态数据可相同,也可不同,例如,在神经网络模型的训练任务重,静态数据可能发生变化,则第二静态数据和第一静态数据可不同,而在神经网络模型前向执行过程中,第二静态数据和第一静态数据可相同。
在一种可能的实现方式中,第二控制数据和第一控制数据可相同,也可不同,例如,在判断任务中,如果在该处理核心中得到的判断结果为A,则后续执行与A对应的处理,如果在该处理核心中得到的判断结果为B,则后续执行与B对应的处理,因此,在第一控制数据中,处理指令可包括执行判断过程的处理指令,以及与各种判断结果对应的后续处理过程的处理指令,而在第二控制数据中,由于已经得到了确定的判断结果,则第二控制数据中可仅包括与判断结果对应的处理指令,而删除其他判断结果对应的处理指令。进一步地,第二控制数据中的数据流方向指令可与第一控制数据中的数据流方向指令相同,也可不同,仍以判断任务为例,如果在该处理核心中得到的判断结果为A,则后续处理在处理核心1中执行,如果得到的判断结果为B,则后续处理在处理核心2中执行,在第一控制数据中,处理指令可包括与各种判断结果对应的数据流方向指令,而在第二控制数据中,由于已经得到了确定的判断结果,则第二控制数据中可仅包括与判断结果对应的数据流方向指令,而删除其他判断结果对应的数据流方向指令。因此,在上述预设的执行过程中,由于其并非实际执行过程,因此通过预设的执行过程仅可确定数据流的传输方式(例如,在各种情况下的可能的传输路径),而并非具体的传输路径。
根据本公开的实施例的任务处理方法,对于每个处理核心,均可利用接收到的第一数据流进行处理,获得第二数据流,并根据第一控制数据的数据流方向指令,将第二数据流发送至目标地址,可通过数据流方向指令灵活地控制数据流的传输方向,而不仅将控制数据存放在固定的处理核心内,并由固定的处理核心来执行任务,有利于降低数据处理或传输过程中的局部限制,提升数据处理和传输的灵活性和效率。还可使第二静态数据、第二动态数据和第二控制数据中具有不同的目标地址,进一步提升数据处理和传输的灵活性和效率。
在一种可能的实现方式中,本公开还提供了一种数据流生成方法,即,基于上述预设的执行过程确定数据流在各种情况下的可能的传输路径的方法。可基于该方法确定数据流,使得数据流中包括动态数据流、静态数据流和控制数据流,其中,动态数据流在传输过程中可发生变化,例如,经过处理核心的处理,动态数据流可发生变化,因此,动态数据流可包括动态数据的可能的传输路径。静态数据流和控制数据流中的数据通常不会发生变化,但在上述判断任务或训练任务中,也可能发生变化,因此,静态数据流和控制数据流可分别包括静态数据的可能的传输路径和控制数据的可能的传输路径。当然,也可获得上述数据流方向指令,从而在实际的任务执行过程中,基于数据流方向指令来确定每个处理核心获得的数据流的目标地址。
图4示出根据本公开实施例的数据流生成方法的流程图,如图4所示,上述方法包括:
在步骤S21中,获取待处理任务的中间表示模型,其中,所述中间表示模型包括待处理任务的处理节点,以及所述处理节点之间的连接关系;
在步骤S22中,根据所述处理节点的资源需求、众核处理组件中各处理核心的资源以及所述连接关系,确定用于对各处理节点进行处理的目标处理核心;
在步骤S23中,根据所述目标处理核心和所述连接关系,确定在多个所述目标处理核心之间的初始数据流传输路径,其中,初始数据流包括初始动态数据流、初始静态数据流和初始控制数据流,所述初始动态数据流传输路径包括在所述目标处理核心之间传输所述待处理任务的输入数据或中间结果数据的初始动态数据流传输路径,在所述目标处理核心之间传输所述待处理任务的权值数据的初始静态数据流传输路径,在所述目标处理核心之间传输处理指令的初始控制数据流传输路径,初始控制数据流传输路径还包括数据流方向指令,所述数据流方向指令用于确定所述初始数据流在所述目标处理核心之间传输方向;
在步骤S24中,根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,在步骤S21中,所述中间表示模型为所述待处理任务的处理流程的示意图,所述中间表示模型包括待处理任务的处理节点,以及处理节点之间的连接关系。例如,待处理任务的处理流程可包括多个步骤,则每个步骤可表示为一个处理节点,所述连接关系表示各个处理节点之间的数据传输方向,例如,步骤1的输出数据输入步骤2中进行处理,在所述中间表示模型中可表示为步骤1对应的处理节点1连接至步骤2对应的处理节点2,且处理节点2对于处理节点1具有数据依赖。或者,神经网络模型的层1对应于处理节点1,神经网络模型的层2对应于处理节点2,层1的输出信息输入层2,可表示为处理节点1连接至处理节点2,且处理节点2对于处理节点1具有数据依赖。
在一种可能的实现方式中,在步骤S22中,可利用与上述类似的方式,通过静态数据流水执行策略或动态数据流水执行策略来确定执行待处理任务的执行过程中涉及的处理核心,即,目标处理核心。
在一种可能的实现方式中,在步骤S23中,可确定目标处理核心之间的初始数据流传输路径,即,确定目标处理核心之间的数据流的传输路径。该初始数据流传数路径为预设的数据传输路径,而并非实际执行某个特定任务过程中的实际传输的数据流或传输路径本身。例如,可基于中间表示模型中的连接关系来确定与处理节点对应的处理核心之间的数据流的传输路径。如上所述,数据流中包括动态数据、静态数据和控制数据,因此,初始数据流传输路径可包括初始静态数据流传输路径,即,在目标处理核心之间传输静态数据的传输路径,初始动态数据流传输路径,即,在目标处理核心之间传输动态数据的传输路径,以及初始控制数据流传输路径,即,在目标处理核心之间传输控制数据的传输路径。
在一种可能的实现方式中,在步骤S24中,如果以上的传输路径存在局部限制,则可对传输路径进行调整,即,调整初始数据流传输路径,获得目标数据流传输路径。
在示例中,可根据目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径。步骤S24可包括:根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始动态数据流传输路径、所述初始静态数据流传输路径和所述初始控制数据流的处理指令传输路径,获得目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径;根据所述目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,目标处理核心的资源可包括处理资源、存储资源、传输带宽资源等,可基于目标处理核心的资源占用率以及目标处理核心之间的数据传输效率,在上述初始数据流中,确定目标处理核心或者目标处理核心之间的数据传输的局部限制。例如,如果两个相邻处理节点对应的目标处理核心之间的数据传输距离较长,或者数据传输的中转过程较多,可调整相邻处理节点对应的目标处理核心。例如,如果某个目标处理核心的资源占用率较低,存在大量的资源浪费,可调节其他处理节点对应的目标处理核心调整至该目标处理核心,以减少资源浪费。例如,如果某个目标处理核心的资源占用率过高,处理节点在执行过程中等待时间较长,可调节该处理节点的目标处理核心,例如,调节至资源占用率较低的目标处理核心。又例如,如果在数据传输过程中,带宽压力过大,则可调整目标处理核心,例如,调整至带宽压力较小的目标处理核心。本公开对调整目标处理核心的依据不做限制。
在一种可能的实现方式中,上述调整目标处理核心的过程,即为调整初始数据流传输路径的过程,例如,将初始数据流传输路径调整为目标数据流传输路径。其中,将初始动态数据传输路径流调整为目标动态数据流传输路径,将初始静态数据流传输路径调整为目标静态数据流传输路径,将初始控制数据流传输路径调整为目标控制数据流传输路径。举例来说,动态数据在某两个目标处理核心之间的传输压力较大,或者在某个目标处理核心中的处理压力或存储压力较大时,可调整目标处理核心,例如,调至传输、处理或存储压力较小的目标处理核心,从而,初始动态数据流传输路径也随之改变,即,动态数据的传输路径随之改变。类似地,可调整另外两种初始数据流传输路径。
在一种可能的实现方式中,在调整过程中,各数据流传输路径之间可进行对应地调整,例如,在将初始动态数据流传输路径调整为目标动态数据流传输路径时,也可随之调整初始静态数据流传输路径和初始控制数据流传输路径,例如,将动态数据的目标地址从处理核心1调整至处理核心2,则在处理核心2中进行相同的运算的过程中,也同样需要静态数据和控制数据,因此,初始静态数据流传输路径和初始控制数据流传输路径也可进行相应地调整,反之亦然。
在一种可能的实现方式中,进一步地,还可确定数据流方向指令。例如,所述初始控制数据流传输路径包括各目标处理核心的处理指令的传输路径和各目标处理核心的数据流方向指令。可在每次调整后,确定数据流方向指令。其中,获得所述目标控制数据流传输路径,包括:调整所述初始控制数据流传输路径的处理指令的传输路径,获得目标控制数据流传输路径的处理指令的传输路径;根据所述目标动态数据流传输路径、所述目标静态数据流传输路径以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径的数据流方向指令;根据所述目标控制数据流传输路径的数据流方向指令,以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径。
在一种可能的实现方式中,不论是初始动态数据流传输路径或初始静态数据流传输路径的调整过程中相应地调整初始控制数据流传输路径,还是直接调整初始控制数据流传输路径,均可首先调整初始控制数据流传输路径中的处理指令的传输路径,例如,将处理指令的传输路径调整至新的目标处理核心。进而可基于调整后的传输路径,即,目标动态数据流传输路径、目标静态数据流传输路径及目标控制数据流传输路径的处理指令的传输路径,确定数据流方向指令,即,描述目标处理核心之间的数据传输方向的指令,或者描述目标处理核心发送数据的目标地址的指令。进而基于数据流方向指令以及处理指令的传输路径,获得目标控制数据流传输路径,即,控制数据的传输路径。
在一种可能的实现方式中,以上可获得目标控制数据流传输路径、目标静态数据流传输路径和目标动态数据流传输路径,即,获得了目标数据流传输路径,所述方法还包括:将所述目标数据流传输路径写入所述众核处理组件的内存。进而可在实际执行任务时,使用目标数据流传输路径所描述的传输路径,来使动态数据、静态数据和控制数据在目标处理核心之间以优化的路径进行传输和处理,即,以更高效,更灵活的传输路径进行传输和处理。并可使各个处理核心的资源利用率和运算复杂度更平衡,提高芯片的整体处理效率。
图5示出根据本公开实施例的任务处理方法的应用示意图,如图5所示,众核处理组件可包括多个处理核心,在执行神经网络模型处理任务时,可存在动态数据、静态数据和控制数据三种数据,在各个处理核心之间传输。
在一种可能的实现方式中,可利用如上方式,确定各种数据的优化的传输路径,即,目标数据流传输路径。利用目标数据流传输路径,可使得上述三种数据利用目标数据流传输路径中描述的传输路径和目标处理核心进行传输和处理,以获得更高的处理效率。
在一种可能的实现方式中,针对某个任务,由于目标数据流传输路径中对各种数据的传输路径进行了优化,因此,在利用优化后的传输路径进行传输和处理时,对于某个特定的处理核心,则可能接收到来自同一个处理核心的三种数据,也可能接收到来自不同处理核心的三种数据,当然,也可能接收到来自存储器的三种数据。进一步地,该处理核心也可将处理后产生的新的动态数据、静态数据和控制数据传输至同一个目标地址,例如,相同的处理核心或存储器,也可能传输至不同的目标地址,例如,不同的处理核心,或者部分数据发送至处理核心,部分数据发送至存储器。本公开对目标地址不做限制。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了神经网络处理装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种任务处理处理方法和数据流生成方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图6示出根据本公开实施例的任务处理装置的框图,如图6所示,所述装置用于众核处理组件中的任意一个处理核心,所述装置包括:接收模块11,用于接收待处理任务的第一数据流,其中,所述第一数据流包括第一动态数据、第一静态数据和第一控制数据,所述第一动态数据包括所述待处理任务的输入数据或中间结果数据,所述第一静态数据包括所述待处理任务的权值数据,所述第一控制数据包括处理指令和数据流方向指令,所述数据流方向指令用于确定所述处理核心产生的数据流的传输方向;处理模块12,用于根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流;发送模块13,用于根据所述数据流方向指令,将所述第二数据流按照所述传输方向发送至目标地址。
在一种可能的实现方式中,所述处理模块进一步用于:根据所述处理指令,在所述处理核心中加载目标功能;根据所述目标功能,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流。
在一种可能的实现方式中,所述第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种,所述目标地址包括所述第二静态数据的第一目标地址,所述第二动态数据的第二目标地址,和所述第二控制数据的第三目标地址,所述发送模块进一步用于:将所述第二静态数据发送至所述第一目标地址,将所述第二动态数据发送至第二目标地址,和/或将所述第二控制数据发送至第三目标地址。
图7示出根据本公开实施例的数据流生成装置的框图,如图7所示,所述装置包括:获取模块21,用于获取待处理任务的中间表示模型,其中,所述中间表示模型包括待处理任务的处理节点,以及所述处理节点之间的连接关系;目标处理核心确定模块22,用于根据所述处理节点的资源需求、众核处理组件中各处理核心的资源以及所述连接关系,确定用于对各处理节点进行处理的目标处理核心;初始路径确定模块23,用于根据所述目标处理核心和所述连接关系,确定在多个所述目标处理核心之间的初始数据流传输路径,其中,初始数据流包括初始动态数据流、初始静态数据流和初始控制数据流,所述初始数据流传输路径包括在所述目标处理核心之间传输所述待处理任务的输入数据或中间结果数据的初始动态数据流传输路径,在所述目标处理核心之间传输所述待处理任务的权值数据的初始静态数据流传输路径,在所述目标处理核心之间传输处理指令的初始控制数据流传输路径,初始控制数据流传输路径还包括数据流方向指令,所述数据流方向指令用于确定所述初始数据流在所述目标处理核心之间传输方向;目标路径获得模块24,用于根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,所述目标路径获得模块进一步用于:根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始动态数据流传输路径、所述初始静态数据流传输路径和所述初始控制数据流的处理指令的传输路径,获得目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径;根据所述目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径,获得目标数据流传输路径。
在一种可能的实现方式中,所述初始控制数据流传输路径包括各目标处理核心的处理指令的传输路径和各目标处理核心的数据流方向指令,所述目标路径获得模块进一步用于:调整所述初始控制数据流传输路径的处理指令的传输路径,获得目标控制数据流传输路径的处理指令的传输路径;根据所述目标动态数据流传输路径、所述目标静态数据流传输路径以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径的数据流方向指令;根据所述目标控制数据流传输路径的数据流方向指令,以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径。
在一种可能的实现方式中,所述装置还包括:写入模块,用于将所述目标数据流传输路径写入所述众核处理组件的内存。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任一实施例提供的方法的指令。
本公开实施例还提供了另一种计算机程序产品,用于存储计算机可读指令,指令被执行时使得计算机执行上述任一实施例提供的方法的操作。
电子设备可以被提供为终端、服务器或其它形态的设备。
图8示出根据本公开实施例的一种电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端。
参照图8,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边缘,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由电子设备800的处理器820执行以完成上述方法。
图9示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图9,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种任务处理方法,其特征在于,所述方法用于众核处理组件中的任意一个处理核心,所述方法包括:
接收待处理任务的第一数据流,其中,所述第一数据流包括第一动态数据、第一静态数据和第一控制数据,所述第一动态数据包括所述待处理任务的输入数据或中间结果数据,所述第一静态数据包括所述待处理任务的权值数据,所述第一控制数据包括处理指令和数据流方向指令,所述数据流方向指令用于确定所述处理核心产生的数据流的传输方向;
根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流;
根据所述数据流方向指令,将所述第二数据流按照所述传输方向发送至目标地址;
所述第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种,所述目标地址包括所述第二静态数据的第一目标地址,所述第二动态数据的第二目标地址,和所述第二控制数据的第三目标地址,
根据所述数据流方向指令,将所述第二数据流按照上述传输方向发送至目标地址,包括:
将所述第二静态数据发送至所述第一目标地址,将所述第二动态数据发送至第二目标地址,和/或将所述第二控制数据发送至第三目标地址。
2.根据权利要求1所述的方法,其特征在于,根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流,包括:
根据所述处理指令,在所述处理核心中加载目标功能;
根据所述目标功能,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流。
3.一种数据流生成方法,其特征在于,包括:
获取待处理任务的中间表示模型,其中,所述中间表示模型包括待处理任务的处理节点,以及所述处理节点之间的连接关系;
根据所述处理节点的资源需求、众核处理组件中各处理核心的资源以及所述连接关系,确定用于对各处理节点进行处理的目标处理核心;
根据所述目标处理核心和所述连接关系,确定在多个所述目标处理核心之间的初始数据流传输路径,其中,初始数据流包括初始动态数据流、初始静态数据流和初始控制数据流,所述初始数据流传输路径包括在所述目标处理核心之间传输所述待处理任务的输入数据或中间结果数据的初始动态数据流传输路径,在所述目标处理核心之间传输所述待处理任务的权值数据的初始静态数据流传输路径,在所述目标处理核心之间传输处理指令的初始控制数据流传输路径,初始控制数据流传输路径还包括数据流方向指令,所述数据流方向指令用于确定所述初始数据流在所述目标处理核心之间传输方向;
根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径。
4.根据权利要求3所述的方法,其特征在于,根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径,包括:
根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始动态数据流传输路径、所述初始静态数据流传输路径和所述初始控制数据流的处理指令的传输路径,获得目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径;
根据所述目标动态数据流传输路径、目标静态数据流传输路径以及目标控制数据流传输路径,获得目标数据流传输路径。
5.根据权利要求4所述的方法,其特征在于,所述初始控制数据流传输路径包括各目标处理核心的处理指令的传输路径和各目标处理核心的数据流方向指令,
其中,获得所述目标控制数据流传输路径,包括:
调整所述初始控制数据流传输路径的处理指令的传输路径,获得目标控制数据流传输路径的处理指令的传输路径;
根据所述目标动态数据流传输路径、所述目标静态数据流传输路径以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径的数据流方向指令;
根据所述目标控制数据流传输路径的数据流方向指令,以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述目标数据流传输路径写入所述众核处理组件的内存。
7.一种任务处理装置,其特征在于,所述装置用于众核处理组件中的任意一个处理核心,所述装置包括:
接收模块,用于接收待处理任务的第一数据流,其中,所述第一数据流包括第一动态数据、第一静态数据和第一控制数据,所述第一动态数据包括所述待处理任务的输入数据或中间结果数据,所述第一静态数据包括所述待处理任务的权值数据,所述第一控制数据包括处理指令和数据流方向指令,所述数据流方向指令用于确定所述处理核心产生的数据流的传输方向;
处理模块,用于根据所述处理指令,对所述第一静态数据和所述第一动态数据进行处理,获得第二数据流;
发送模块,用于根据所述数据流方向指令,将所述第二数据流按照所述传输方向发送至目标地址;
所述第二数据流包括第二静态数据、第二动态数据和第二控制数据中的至少一种,所述目标地址包括所述第二静态数据的第一目标地址,所述第二动态数据的第二目标地址,和所述第二控制数据的第三目标地址,所述发送模块进一步用于:将所述第二静态数据发送至所述第一目标地址,将所述第二动态数据发送至第二目标地址,和/或将所述第二控制数据发送至第三目标地址。
8.一种数据流生成装置,其特征在于,包括:
获取模块,用于获取待处理任务的中间表示模型,其中,所述中间表示模型包括待处理任务的处理节点,以及所述处理节点之间的连接关系;
目标处理核心确定模块,用于根据所述处理节点的资源需求、众核处理组件中各处理核心的资源以及所述连接关系,确定用于对各处理节点进行处理的目标处理核心;
初始路径确定模块,用于根据所述目标处理核心和所述连接关系,确定在多个所述目标处理核心之间的初始数据流传输路径,其中,初始数据流包括初始动态数据流、初始静态数据流和初始控制数据流,所述初始数据流传输路径包括在所述目标处理核心之间传输所述待处理任务的输入数据或中间结果数据的初始动态数据流传输路径,在所述目标处理核心之间传输所述待处理任务的权值数据的初始静态数据流传输路径,在所述目标处理核心之间传输处理指令的初始控制数据流传输路径,初始控制数据流传输路径还包括数据流方向指令,所述数据流方向指令用于确定所述初始数据流在所述目标处理核心之间传输方向;
目标路径获得模块,用于根据所述目标处理核心的资源占用率和所述目标处理核心之间的数据传输效率,调整所述初始数据流传输路径,获得目标数据流传输路径;
所述初始控制数据流传输路径包括各目标处理核心的处理指令的传输路径和各目标处理核心的数据流方向指令,所述目标路径获得模块进一步用于:调整所述初始控制数据流传输路径的处理指令的传输路径,获得目标控制数据流传输路径的处理指令的传输路径;根据目标动态数据流传输路径、目标静态数据流传输路径以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径的数据流方向指令;根据所述目标控制数据流传输路径的数据流方向指令,以及所述目标控制数据流传输路径的处理指令的传输路径,获得所述目标控制数据流传输路径。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至6中任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210665564.1A CN115086232B (zh) | 2022-06-13 | 2022-06-13 | 任务处理及数据流生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210665564.1A CN115086232B (zh) | 2022-06-13 | 2022-06-13 | 任务处理及数据流生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086232A CN115086232A (zh) | 2022-09-20 |
CN115086232B true CN115086232B (zh) | 2023-07-21 |
Family
ID=83250425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210665564.1A Active CN115086232B (zh) | 2022-06-13 | 2022-06-13 | 任务处理及数据流生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086232B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260070A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
WO2022111453A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 任务处理方法及装置、任务分配方法、电子设备、介质 |
WO2022111457A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 核心簇同步的方法及控制方法、数据处理方法、电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258641B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111260046B (zh) * | 2018-11-30 | 2022-12-02 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111966399A (zh) * | 2019-05-20 | 2020-11-20 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN114546631A (zh) * | 2020-11-24 | 2022-05-27 | 北京灵汐科技有限公司 | 任务调度方法、控制方法、核心、电子设备、可读介质 |
CN112766475B (zh) * | 2020-12-25 | 2023-04-28 | 清华大学 | 处理部件及人工智能处理器 |
-
2022
- 2022-06-13 CN CN202210665564.1A patent/CN115086232B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260070A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
WO2022111453A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 任务处理方法及装置、任务分配方法、电子设备、介质 |
WO2022111457A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 核心簇同步的方法及控制方法、数据处理方法、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115086232A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110889469A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN114968594B (zh) | 任务处理方法、装置、电子设备和存储介质 | |
CN109858614B (zh) | 神经网络训练方法及装置、电子设备和存储介质 | |
CN113032112A (zh) | 资源调度方法及装置、电子设备和存储介质 | |
JP2021517282A (ja) | ネットワークモジュール、割り当て方法及び装置、電子機器並びに記憶媒体 | |
CN110188865B (zh) | 信息处理方法及装置、电子设备和存储介质 | |
CN112668707B (zh) | 运算方法、装置及相关产品 | |
CN111443917B (zh) | 神经网络运行优化方法、装置及相关产品 | |
CN112328398A (zh) | 任务处理方法及装置、电子设备和存储介质 | |
CN113298091A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN111985635A (zh) | 一种加速神经网络推理处理的方法、装置及介质 | |
CN109447258B (zh) | 神经网络模型的优化方法及装置、电子设备和存储介质 | |
CN113312103A (zh) | 智能摄像机的软件定义方法及装置、电子设备和存储介质 | |
CN115098262B (zh) | 一种多神经网络任务处理方法及装置 | |
CN111580883B (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
CN111562985B (zh) | 资源管理方法及装置、电子设备和存储介质 | |
CN115086232B (zh) | 任务处理及数据流生成方法和装置 | |
CN112925788A (zh) | 一种数据集管理方法及系统、装置、电子设备和存储介质 | |
CN110727462B (zh) | 数据处理器和数据处理方法 | |
CN110543900A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN114090303B (zh) | 软件模块调度方法、装置、电子设备、存储介质及产品 | |
CN115576458A (zh) | 一种应用窗口的显示方法、装置、设备及介质 | |
CN114510911A (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN115098107B (zh) | 神经网络任务的代码生成方法和装置 | |
CN108984294B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |