CN112766470A - 特征数据处理方法、指令序列生成方法、装置及设备 - Google Patents
特征数据处理方法、指令序列生成方法、装置及设备 Download PDFInfo
- Publication number
- CN112766470A CN112766470A CN201911002051.7A CN201911002051A CN112766470A CN 112766470 A CN112766470 A CN 112766470A CN 201911002051 A CN201911002051 A CN 201911002051A CN 112766470 A CN112766470 A CN 112766470A
- Authority
- CN
- China
- Prior art keywords
- post
- output
- processing
- neural network
- data tensor
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000003672 processing method Methods 0.000 title abstract description 10
- 238000013528 artificial neural network Methods 0.000 claims abstract description 192
- 238000012805 post-processing Methods 0.000 claims abstract description 170
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 13
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Images
Classifications
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
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)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
公开了一种特征数据处理方法、指令序列生成方法、装置及设备。本公开的一实施例中,特征数据的处理方法可以包括:利用神经网络对输入特征数据张量执行运算,以依次获得多个输出特征数据张量;当获得目标输出特征数据张量时,生成通知信号,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量;以及,基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。本申请能够有效降低神经网络运算及其后处理的延迟,在不增加硬件成本的前提下充分提升神经网络运算及其后处理的整体处理效率。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种特征数据处理方法、指令序列生成方法及装置、设备、介质。
背景技术
神经网络一般为若干不同的卷积、池化、全连接的组合。神经网络按照其目的不同,一般可分为检测、分类、分割等任务,或者将这几类任务组合形成多任务网络。基于神经网络的处理不仅包括神经网络本身的运算,还需对神经网络的输出结果执行后处理才可得到最终有意义的诸如检测框、分类结果、语义分割结构等的检测结果。
发明内容
相关技术中,只有在完成神经网络的整体运算之后才可开始执行后处理,不仅延迟高,而且处理效率低。为解决上述技术问题,本申请实施例期望提供一种特征数据处理方法、指令序列生成方法、装置、设备和介质,能够有效降低神经网络运算及其后处理的延迟,在不增加硬件成本的前提下充分提升神经网络运算及其后处理的整体处理效率。
根据本申请的一个方面,提供了一种特征数据的处理方法,包括:
利用神经网络对输入特征数据张量执行运算,以依次获得多个输出特征数据张量;
当获得目标输出特征数据张量时,生成通知信号,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量;以及
基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
根据本申请的一个方面,提供了一种指令序列生成方法,包括:
确定神经网络中的多个输出特征数据张量之间的依赖关系;
生成所述神经网络的指令序列;以及
基于所述依赖关系,在所述指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
根据本申请的一个方面,提供了一种生成指令序列的装置,包括:
确定单元,配置为确定神经网络中的多个输出特征数据张量之间的依赖关系;
生成单元,配置为生成所述神经网络的指令序列;以及
插入单元,配置为基于所述依赖关系,在所述指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
根据本申请的一个方面,提供了一种电子设备,包括:
一个或多个处理器;
存储器,存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行上述特征数据的处理方法和/或指令序列生成方法。
根据本申请的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行上述的特征数据的处理方法和/或指令序列生成方法。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本申请所适用的神经网络的示例性结构图。
图2是本申请一示例性实施例提供的支持多输出神经网络的系统架构示例图。
图3是本申请一示例性实施例提供的特征数据处理方法的流程示意图。
图4是本申请一示例性实施例提供的指令序列生成方法的流程示意图。
图5是本申请一示例性实施例提供的神经网络指令序列生成和特征数据处理的示例性执行流程示意图。
图6是本申请一示例性实施例提供的神经网络运算与神经网络后处理的时序示意图。
图7是本申请一示例性实施例提供的特征数据处理装置的结构示意图。
图8是本申请一示例性实施例提供的生成指令序列的装置的结构示意图。
图9是本申请一示例性实施例提供的电子设备的结构示意图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
如前文所述,相关技术中,在获得神经网络的多个输出特征数据张量后,需要在处理器层面,依次对各个输出特征数据张量做后处理来得到相应的处理结果。然而,在执行神经网络运算的专用处理器或计算资源无法完成此类后处理操作时,往往需要配合通用计算设备(例如,CPU)或其他计算资源来完成系统的整体功能。因此,相关技术中,在完成神经网络的整体运算之后执行后处理的计算设备或计算单元开始执行后处理,不仅延迟高,而且处理效率低。
例如,对于存在多个输出特征数据张量的神经网络而言,需要在获得这多个输出特征数据张量之后才能开始后续的后处理,即使某一后处理可能仅需要神经网络前阶段的某个或某些输出特征数据张量,也需要在神经网络的最后一个输出特征数据张量获得之后才可开始该后处理。这期间,用于执行后处理的计算资源将可能一直处于等待状态。
例如,在神经网络的异构计算流程中,通常使用第一计算设备(例如,诸如CNN加速器等的神经网络专用处理器)来完成神经网络的计算,其输出特征数据张量将被送入第二计算设备(例如,诸如CPU等的通用处理器)执行后处理,以得到最终有意义的检测框、分类结果或者语义分割结构等的处理结果。在该异构设备中,第一计算设备完成神经网络的全部运算后再通知第二计算设备开始执行后处理,也就是说,在第一计算设备执行神经网络运算期间,第二计算设备将可能一直处于等待状态,即使其执行某些后处理所需的输出特征数据张量已获得的情况下,也可能需要保持等待状态,直到神经网络的整体运算全部结束。显然,后处理的延迟较高。
针对上述技术问题,本申请的基本构思包括提出一种特征数据的处理方法、装置、设备和存储介质,利用神经网络对输入特征数据张量执行运算以依次获得多个输出特征数据张量,当获得目标输出特征数据张量时生成通知信号,基于通知信号对目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理,其中,目标输出特征数据张量是上述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。由此,本申请实施例可以利用神经网络的多个输出特征数据张量的输出前后顺序,在神经网络的部分特征数据张量输出时即可开始后处理,这样,神经网络的运算与其输出特征数据张量的后处理可并行地进行,从而充分降低延迟、提高处理效率,最终在不增加硬件成本的前提下充分提升了处理效率。
针对上述技术问题,本申请的基本构思还包括提出一种指令序列生成方法、装置、设备和存储介质,包括:确定神经网络中的多个输出特征数据张量之间的依赖关系,生成神经网络的指令序列,基于所述依赖关系在指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,上述目标输出特征数据张量是上述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。由此,本申请实施例能够使执行神经网络运算的硬件(例如,上文的第一处理器或第一计算单元)在正常运行神经网络的过程中及时地产生通知信号,无需增加新的硬件、也无需对执行神经网络运算的硬件做任何改进,即可使其支持上文所述的特征数据处理方法,易于实现、成本低、通用性强,可适用于运行神经网络的各类硬件和各类场景。
需要说明的是,尽管本文以多输出神经网络为例进行说明,但本申请实施例的适用范围不限于此。对于需要运行神经网络的任意场景,本申请实施例均可适用。比如,对于需要运行两个或多个神经网络并对这些神经网络的输出结果统一进行后处理的场景,本申请实施例仍可适用。
示例性系统
本申请实施例可适用于多输出神经网络,即具有多个输出特征数据张量的神经网络。此外,也可适用于针对多个神经网络的输出统一进行后处理的情况,例如,这多个神经网络可以作为一个整体运行在同一电子设备中且每个神经网络可以具有一个或多个输出特征数据张量,这多个神经网络可以串行或并行,其输出特征数据张量可以依次输出。当然,本申请实施例也可适用于其他情况,对于本申请实施例的具体适用场景和具体适用的神经网络类型,本申请实施例不予限制。
目前大量神经网络的结构中,存在多个输出特征数据张量。图1示出了本申请实施例适用的多输出神经网络的示例性模型结构,如图1所示,该神经网络具有M(M是不小于N的整数)个计算层,具有N(N为不小于4的整数)个输出特征数据张量,并且这N个输出特征数据张量在神经网络执行的过程中将会依次输出。需要说明的是,图1仅作示例,并不用于限制本申请实施例的多输出神经网络。尽管图1的神经网络示例中,在后的计算层以在前的计算层的输出特征数据张量为输入,但本申请实施例也可适用于反馈型神经网络,即神经网络的各个计算层之间也可能存在反馈的情况,例如,计算层4的输入也可能是其在后的计算层5或者计算层6的输出特征数据张量。
本申请实施例中,输入特征数据张量和输出特征数据张量分别可以是但不限于描述图像、音频等的特征的一维、二维、三维或更高维度的数据。例如,输入特征数据张量可以是一帧或多帧原始图像,输出特征数据张量可以是上述一帧或多帧原始图像的一帧或多帧特征图。再例如,输入特征数据张量可以是音频,输出特征数据张量可以是该音频的声学特征谱。可以理解,输入特征数据张量、输出特征数据张量还可以是其他各种形式,对此,本申请实施例不予限制。
本申请的实施例可适用于任何支持多输出神经网络的系统。
图2为上述支持多输出神经网络的系统的示例性结构20,包括:编译设备201和运行设备202,编译设备201负责在运行之前(即离线状态下)编译神经网络的指令序列,运行设备202负责运行编译设备提供的神经网络的指令序列。
一些示例中,编译设备201可通过一个或多个处理器来实现,这些处理器运行有编译器,实际应用中这些处理器可通过强性能的CPU来实现。
一些示例中,运行设备202可包括一个或多个处理器,这些处理器中的部分计算资源可专用于执行神经网络的计算,该神经网络的计算可以包括但不限于:卷积、激活函数的计算、池化等。另一部分计算资源可用于执行针对神经网络输出特征数据张量的后处理,该后处理可以包括但限于在原始图像的感兴趣区域添加检测框、标记分类结果、添加语义标签等之一或多项。
一些示例中,上述运行设备202可以通过异构设备来实现,该异构设备可以包括可以通信的第一处理器和第二处理器,第一处理器可以是大脑处理器(BPU,BrainProcessing Unit)、张量处理单元(TPU,Tensor Processing Unit)等支持神经网络相关计算的处理器,第一处理器用于执行神经网络的运算。第二处理器可以是诸如CPU等的通用处理器,用于执行后处理。
一些示例中,上述运行设备202也可以通过非异构设备来实现,即可以包括一个或多个处理器,这些处理器的计算资源中一部分可用于执行神经网络的运算、另一部分可用于执行神经网络的后处理。
此外,上述运行设备202中还可以包括存储器,可用于存储神经网络的指令序列、神经网络的各个输出特征数据张量、原始图像的数据、后处理所需的信息等。实际应用中,该存储器可以是内存(例如DDR)或非易失性存储器(例如硬盘、SSD、Flash、EEPROM等)。
需要说明的是,上述图2仅为示例,本申请实施例适用的系统不限于此。本申请实施例可应用于支持两个或两个以上神经网络运行的任意系统。
示例性方法
图3是本申请一示例性实施例提供的特征数据处理的示例性方法300。如图3所示,该示例性方法300包括如下步骤:
步骤S301,利用神经网络对输入特征数据张量执行运算,以依次获得多个输出特征数据张量。
步骤S302,当获得目标输出特征数据张量时,生成通知信号,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
步骤S303,基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
本申请实施例中的示例性方法300,利用神经网络的多个输出特征数据张量的输出前后顺序,在神经网络的部分输出特征数据张量输出时即可开始其相关的后处理,后处理与神经网络的运算可并行地进行,如此,可充分降低延迟、提高处理效率,从而在不增加硬件成本的前提下充分提升了处理效率。
本申请实施例中,目标输出特征数据张量是指需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。换言之,第一处理器在运行神经网络的指令序列的过程中,如果某个输出特征数据张量的输出指令的下一条指令是用于生成所述通知信号的指令,那么该输出特征数据张量即为本文所述的目标输出特征数据张量。
以图1的神经网络为例,输出一、输出三和输出N均需被后处理且其后处理不依赖于其在后的输出特征数据张量,那么输出一、输出三和输出N即为本文所述的目标输出特征数据张量。该神经网络的指令序列中,输出一的输出指令的下一指令为用于生成通知信号的指令,输出二的输出指令的下一指令也是用于生成通知信号的指令,输出N的输出指令的下一指令也是用于生成通知信号的指令。
具体而言,以图1、下文的图5和图6为例,对于后处理A来说,后处理A仅需要“输出一”,不需要“输出一”之后的任何输出特征数据张量,也就是说,“输出一”的后处理不依赖于其在后的任何输出特征数据张量,此时,“输出一”即属于本申请实施例所述的“目标输出特征数据张量”。对于后处理B来说,后处理B所需的输出特征数据张量的标识(即输出二和输出三),由该神经网络的输出特征数据张量的输出前后顺序可知“输出二”在“输出三”之前,那么“输出二”的后处理很可能是依赖于其在后的输出特征数据张量(即输出三)的,而“输出三”的后处理则不依赖于其在后的输出特征数据张量(即输出四),此时,“输出三”即属于本申请实施例所述的“目标输出特征数据张量”。对于后处理C来说,后处理C所需的输出特征数据张量的标识(即输出四~输出N),由该神经网络的输出特征数据张量的输出前后顺序可知“输出N”是最后一个输出特征数据张量,“输出N”之前的各个输出特征数据张量的很可能是依赖于其在后的输出特征数据张量的,而“输出N”的后处理则不依赖于其在后的输出特征数据张量,此时,“输出N”也属于本申请实施例所述的“目标输出特征数据张量”。
本申请实施例中,利用神经网络对输入特征数据执行的运算中的至少一部分可以与所述后处理并行地执行。例如,假设按照神经网络的计算顺序,第三个输出特征数据张量需要被后处理且其后处理不依赖于在后的输出特征数据张量,该第三个输出特征数据张量即为上文所述的目标输出特征张量,在获得该第三个输出特征数据张量的时候即可通过生成通知信号来开始执行其后处理,与第三个输出特征数据张量相对应的后处理和第三个输出特征数据张量之后的神经网络运算可以并行地执行,如此,即可充分利用并行来降低延迟。
以上文所述的异构设备为例,第一处理器可以执行步骤S301中神经网络的运算,第一处理器在获得目标输出特征数据张量时会生成一通知信号并发送给第二处理器,第二处理器在收到该通知信号之后即可执行步骤S303中针对该目标输出特征数据张量的后处理。在第二处理器执行该后处理的同时,第一处理器仍可以并行地执行步骤S301中神经网络的运算。
以上文所述的非异构设备为例,用于执行神经网络运算的第一计算单元可以执行步骤S301中神经网络的运算,在获得目标输出特征数据张量时生成一通知信号并发送给用于执行后处理的第二计算单元,第二计算单元在收到该通知信号之后即可执行步骤S303中针对该目标输出特征数据张量的后处理。在第二计算单元执行该后处理的同时,第一计算单元仍可以并行地执行步骤S301中神经网络的运算。
本申请实施例中,步骤S302中的通知信号可以是任何类型的信号,该信号可以是消息、通知或指令等各种形式,只要该信号的产生可以通过获得目标输出特征数据张量来触发即可。一些示例中,步骤S302中的通知信号可以是但不限于中断信号或其他类似的信号。具体而言,该中断信号可以是在不同处理器之间传递的中断消息、也可以是在同一处理器中不同计算单元之间传递的中断消息。采用中断信号,可以方便地利用软件控制的中断通信机制来触发相应的后处理,兼容性强,通用处理器或专用于神经网络运算的处理器均可支持,不会增加硬件成本,而且也更可靠。
本申请实施例中,在步骤S302中还可以根据硬件结构(例如,上文的异构设备、非异构设备)的不同、硬件中各部分(例如,上文的第一处理器或计算单元、上文的第二处理器或第二计算单元)的工作状态信息(例如,是否处于等待状态、是否有可用的空闲资源、空闲资源的多少等)、获得目标输出特征数据张量的时刻、实际应用场景的需求等一种或多种因素来确定生成通知信号的时间,以便及时地或者适时地开始相应的后处理,使得神经网络的运算与其后处理之间的并行不仅可以降低整体时延,而且可以满足实际应用场景的需求、更充分地利用硬件资源、适应不同硬件架构的需求等。
一些示例中,步骤S302中,可以在获得目标输出特征数据张量时生成通知信号。在获得目标输出特征数据张量时立即生成通知信号,如此,在神经网络执行中间过程,得到可供后处理使用的输出特征数据张量后可以立即通知后处理设备提前开始进行后处理的部分计算,有利于充分降低时延、提高处理效率、减少处理时间,这在当前硬件资源(例如,上文的第二处理器或第二计算单元)较为充足的情况下、或者对于神经网络前阶段的目标输出特征数据张量,尤其适用。
一些示例中,步骤S302中,可以在获得目标输出特征数据张量之后的预定时刻或预定时长内生成通知信号。这里,该预定时刻或预定时长可以是事先设定的固定值(例如,经验值),也可以通过监测硬件(例如,上文所述第二处理器或第二计算单元)的工作状态来实时调整。例如,可以在编译阶段于神经网络指令序列中生成通知信号的指令中写入该预定时刻的值或预定时长的值,在运行阶段可以实时检测硬件(例如,上文所述第二处理器或第二计算单元)空闲资源,若判断硬件(例如,上文所述第二处理器或第二计算单元)当前的空闲资源不足以执行当前目标输出特征数据张量的后处理,可以在获得目标输出特征数据张量之后的上述预定时刻或经过上述预定时长再开始相应的后处理,以避免造成硬件超负荷运转而引起系统阻塞、产生故障或宕机。再例如,可以在编译阶段于神经网络的指令序列中生成通知信号的指令中写入用于确定预定时刻或预定时长的程序模块的调用信息,在运行阶段可以实时检测硬件(例如,上文所述第二处理器或第二计算单元)当前的空闲资源情况,由用于确定预定时刻或预定时长的程序模块的调用信息调用该程序模块,通过运行该程序模块来即可基于硬件(例如,上文所述第二处理器或第二计算单元)当前的空闲资源情况确定上述预定时刻或预定时长,并在获得目标输出特征数据张量之后的预定时刻或预定时长内生成通知信号。这样,即使当前硬件资源(例如,上文的第二处理器或第二计算单元)不足,也可以在最短的时间内触发该目标输出特征数据张量的后处理,快速地开始执行该后处理,不仅有利于充分降低时延、提高处理效率、减少处理时间,同时还可避免造成硬件超负荷运转而引起系统阻塞、产生故障或宕机,以至于影响整体运算的正常进行。
本申请实施例中,步骤S302中的通知信号中可以包含与所述目标输出特征数据张量相对应的消息标识。具体应用中,可以在编译阶段,于神经网络的指令序列中生成通知信号的指令写入该消息标识,如此,在运行阶段生成的通知信号中即可包含上述的消息标识。通过该消息标识可以快速找到该目标输出特征数据张量相对应的后处理程序,从而可以方便、快捷且高效地调用该后处理程序来执行与该目标输出特征数据张量相对应的后处理。一些示例中,上述消息标识可以是多种形式。例如,在通知信号为中断消息时,该消息标识可以是预先约定的中断号。
一些示例中,还可以事先使用预定数据结构记录所述神经网络的后处理信息,所述后处理信息包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识,通过预定数据结构来记录神经网络的后处理信息,可以快速地查找并读取到该神经网络的后处理信息,解析起来也更高效,有助于快速找到各目标输出特征数据张量相对应的后处理程序,从而方便、快捷且高效地调用相应后处理程序来执行与各个目标输出特征数据张量相对应的后处理,有助于进一步降低延迟、提高处理效率,从而在不增加硬件成本的前提下更加充分地提升处理效率。
一些示例中,上述记录有神经网络的后处理信息的预定数据结构可以在编译阶段生成,在运行神经网络之前可以由编译设备将该预定数据数据结构传送至运行设备并存储于运行设备的存储器中。以异构设备为例,该存储器可以是可供第一处理器和第二处理器共同访存的片外存储器,也可以是仅可供第二处理器进行访存的存储器。
一些示例中,神经网络的后处理信息可以包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识。一个示例中,神经网络的后处理信息可以包括但不限于神经网络的输出特征数据张量的信息,该输出特征数据张量的信息可以包括但不限于如下之一或多项:所有输出特征数据张量进行后处理的前后顺序、可以指示各个后处理操作需要哪些输出特征数据张量的信息(例如,这些输出特征数据张量的标识或其对应的计算层标识等信息)、各个输出特征数据张量对应的通知信号的消息标识(例如,中断号)等。除此之外,神经网络的后处理信息还可以包括其他与后处理相关的信息,对于神经网络后处理信息的具体内容,本申请实施例不予限制。
一些示例中,步骤S303中可以包括:步骤a1,根据通知信号中的消息标识,调用相应的后处理程序;步骤a2,运行后处理程序以对目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。通过消息标识来调用后处理程序,可以更高效、低成本地找到各个输出特征数据张量的后处理程序,继而快速调用并执行相应的后处理,有助于进一步降低延迟、提高效率。
一些示例中,步骤a2中可以包括:步骤a21,读取并解析所述预定数据结构,以获得所述神经网络的后处理信息;步骤a22,基于所述神经网络的后处理信息,确定与所述通知信号中的消息标识对应的后处理程序;步骤a23,启动所述后处理程序。通过统一获取神经网络的后处理信息来确定该神经网络中各输出特征数据张量的后处理程序,可以减少为确定各个输出特征数据张量的后处理程序而访问片外存储器的次数,从而进一步减少处理所需的时间、降低延迟、提高效率。
以异构设备为例,第二处理器可以从存储器中读取当前神经网络的预定数据结构并解析获得当前神经网络的后处理信息,先将神经网络的后处理信息缓存,第二处理器每接收到来自第一处理器的一条中断消息,即可以该中断消息中的中断号为索引来从缓存的后处理信息中查询到相应后处理程序的存储地址,再基于该后处理程序的存储地址读取后处理程序的代码并运行。非异构设备执行步骤S303的过程与此类似,不再赘述。
图4是本申请一示例性实施例提供的生成指令序列的示例性方法400。如图4所示,该示例性方法400包括如下步骤:
步骤S401,确定神经网络中的多个输出特征数据张量之间的依赖关系。
步骤S402,生成所述神经网络的指令序列。
步骤S403,基于所述依赖关系,在所述指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
本申请实施例的示例性方法400,利用神经网络中输出特征数据张量之间的依赖关系,在神经网络的指令序列中特定输出特征数据张量(即目标输出特征张量)的输出指令之后插入用于生成通知信号的指令,使得执行神经网络运算的硬件(例如,上文的第一处理器或第一计算单元)能够在正常运行神经网络的过程中及时地产生通知信号,无需增加新的硬件、也无需对执行神经网络运算的硬件做任何改进,即可使其支持上文示例性方法300所述的特征数据处理方法,易于实现、成本低、通用性强,可适用于运行神经网络的各类硬件和各类场景。
本申请实施例中,神经网络中的多个输出特征数据张量之间的依赖关系可以指示多个输出特征数据张量的输出顺序和任一输出特征数据张量的后处理所依赖的其他输出特征数据张量。一些示例中,依赖关系可以包括两部分,一部分是神经网络中多个输出特征数据张量的输出前后顺序,另一部分是每个后处理所需的输出特征数据张量。该示例中,步骤S401中可以利用神经网络的模型结构信息和神经网络输出特征数据张量的处理依赖关系来确定神经网络中多个输出特征数据张量之间的依赖关系。例如,编译设备可以从神经网络的描述文件中提取神经网络中多个输出特征数据张量的输出前后顺序,神经网络的描述文件可以包括神经网络的模型结构描述和神经网络的模型参数(例如,卷积层的权重参数、偏移量等),神经网络的模型结构描述可以包括但不限于神经网络包括哪些计算层(例如,卷积、池化、全连接)、每个计算层的输入参数(例如,输入特征数据张量的标识、尺寸等)、每个计算层的输出参数(例如,输出特征数据张量的尺寸、标识等)、作为神经网络输出的输出特征数据张量有哪些以及这些输出特征数据张量的输出前后顺序等。神经网络输出特征数据张量的处理依赖关系可以包括每个后处理所需的输出特征数据张量的标识信息,编译设备可以从该神经网络输出特征数据张量的处理依赖关系中提取每个后处理所需的输出特征数据张量的标识信息。
以图1为例,神经网络的描述文件中可以包含作为神经网络输出的多个输出特征数据张量的标识信息(即,输出一、输出二、输出三、输出四、……、输出N的标识信息)和这些输出特征数据张量的输出顺序(即,输出一→输出二→输出三→输出四→……→输出N),神经网络输出特征数据张量的处理依赖关系可以包括后处理A所需的输出特征数据张量的标识(即输出一)、后处理B所需的输出特征数据张量的标识(即输出二和输出三)、后处理C所需的输出特征数据张量的标识(即输出四~输出N)。此时,图1的示例中,神经网络的多个输出特征数据张量之间的依赖关系可以包括:输出特征数据张量的标识信息及其输出顺序(即,输出一→输出二→输出三→输出四→……→输出N)、与后处理A的信息(例如,后处理程序的标识或中断号)相关联的输出特征数据张量的标识(即输出一)、与后处理B的信息(例如,后处理程序的标识或中断号)相关联的输出特征数据张量的标识(即输出二和输出三)、与后处理C的信息(例如,后处理程序的标识或中断号)相关联的输出特征数据张量的标识(即输出四~输出N)。
继续以图1为例,后处理A仅需要“输出一”而不需要“输出一”之后的任何输出特征数据张量,后处理B仅需要“输出二”和“输出三”并且“输出三”在“输出二”之后输出,后处理C需要“输出四~输出N”且“输出N”是“输出四~输出N”中的最后一个输出特征数据张量,可见,“输出一”的后处理不依赖于其在后的任何输出特征数据张量,“输出三”的后处理不依赖于其在后的任何输出特征数据张量,“输出N”的后处理不依赖于其在后的任何输出特征数据张量,也就是说,图1所示的神经网络,其依赖关系可以指示该神经网络具有N个输出特征数据张量,且这N个输出特征数据张量中的第一个(即图1中的输出一)的后处理不依赖于其他任何输出特征数据张量、第二个(即图1中的输出二)的后处理依赖于第三个(即图1中的输出三)、第三个(即图1中的输出三)的后处理依赖于第二个但不依赖于其在后的任何输出特征数据张量、第四个(即图1中的输出四)的后处理依赖于其在后的所有特征数据张量(即图1中的输出五~输出N)、……、第N个(图1中的输出N)的后处理依赖于其在前的N-3个输出特征数据张量(即图6中的输出四~输出N)。
一些示例中,如上文所述,通知信号中可以包含消息标识。相应的示例中,用于生成通知信号的指令中可以包含与所述目标输出特征数据张量相对应的消息标识。一些示例中,如上文所述,通知信号可以是但不限于中断信号或其他类似的信号。相应的示例中,用于生成通知信号的指令可以是但不限于为中断指令,该指令中的消息标识可以为中断号或其他类似的标识。
一些示例中,如上文所述通知信号可以在获得目标输出特征数据张量时或其之后的预定时刻或预定时长内产生。相应的,用于生成通知信号的指令中可以包含生成时间,该生成时间至少包括如下之一:所述目标输出特征数据张量的获得时刻、所述获得时刻之后的预定时刻、所述获得时刻之后的预定时长。关于该预定时刻、预定时长等可参照上文,不再赘述。
一些示例中,在生成神经网络的指令序列之前、之后或者过程中,可以使用预定数据结构记录神经网络的后处理信息,所述后处理信息包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识。具体而言,可以由编译设备来生成该用于记录神经网络后处理信息的预定数据结构,其他技术细节可参照上文,不再赘述。实际应用中,该预定数据结构可以是c/c++中的struct结构体或其他类似的数据结构。
在步骤S401中,编译设备的输入可以包括神经网络的描述文件、神经网络输出数据的处理依赖关系等,在步骤S402~步骤S403中,编译设备生成神经网络的指令序列,并在生成的过程中额外插入一些用于发出通知信号(例如,中断)的指令,经过步骤S402~步骤S403的编译处理后,编译设备将输出神经网络的完整指令序列,该完整指令序列中目标输出特征数据张量的输出指令之后插入有用于生成通知信号的指令(例如,中断指令)。除此之外,编译设备还可输出神经网络异构执行时需要的信息、神经网络的后处理信息(即上文所述记录有神经网络后处理信息的预定数据结构)等。
仍以图1的神经网络为例,图5示出了神经网络的指令序列生成及其特征数据处理的过程。
如图5所示,编译设备以神经网络的描述文件和神经网络输出数据的处理依赖关系为输入,输出上述神经网络的指令序列、神经网络的后处理信息以及神经网络异构执行需要的信息(图中未示出)。
在生成神经网络的指令序列的过程中,编译设备会在该指令序列中额外插入一些用于发出中断的指令。对于上述图1的示例,编译设备生成的指令序列中,指令0~指令100对应于计算层1,指令101~指令256对应计算层2和计算层3,其中,指令100是输出一的输出指令,指令256是输出三的指令,指令257~最后一条指令对应于计算层4~计算层M,最后一条指令是最后一个输出N的指令,那么需要在该指令序列中指令100之后插入中断指令A,该中断指令A中写有对应后处理A的中断号A,在指令256之后插入中断指令B,该中断指令B中写有对应后处理B的中断号2,在最后一条指令之后也可以插入中断指令C,该中断指令C中写有对应后处理C的中断号3。
如图5所示,以异构设备为例,第一处理器需要按照约定的格式,依次执行神经网络的指令序列中的指令来进行神经网络的运算,遇到额外插入的中断指令,会向第二处理器输出目标输出特征数据张量,并于指定时刻(例如,获得目标输出特征数据张量的时刻、获得目标输出特征数据张量之后的预定时刻、获得目标输出特征数据张量的预定时长内)发送相应的中断消息给第二处理器,第二处理器接收到该约定的中断消息后,调用对应的后处理程序(即中断消息中中断号相对应的后处理程序)来执行相应目标输出特征数据张量的后处理。
仍以图1的神经网络为例,图6示出了通过上述示例性方法300执行神经网络运算与神经网络后处理的时序图。如图6所示,神经网络具有M个计算层,每个计算层可以是但不限于卷积层、池化层、全连接层等,依次输出N个输出特征数据张量:输出一、输出二、输出三、输出四、……、输出N,其中,输出一、输出三和输出N均需执行后处理且其后处理均不依赖于其在后的输出特征数据张量,属于上文上述的目标输出特征数据张量。如图6所示,通过本申请实施例上述方法300,后处理程序A将与计算层2~4的全部或部分运算过程并行,后处理程序B将会与计算层5~N的全部或部分运算过程并行。由此可以明显看出,神经网络的运算与其输出特征数据张量的后处理将至少部分地并行,这显著地降低了神经网络运算及其后处理的整体过程的延迟,从而在不增加硬件成本的前提下充分提高了神经网络运算及其后处理的整体处理效率。
示例性装置
图7是本申请一示例性实施例提供的特征数据处理的示例性装置70。如图7所示,该示例性装置70包括:
运算单元71,配置为利用神经网络对输入特征数据执行运算,以依次获得多个输出特征数据张量;
通知单元72,配置为当获得目标输出特征数据张量时,生成通知信号,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量;以及
后处理单元73,配置为基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
一些示例中,上述运算单元71利用神经网络对输入特征数据执行的运算中的至少一部分可以与上述后处理单元71的后处理并行地执行。
一些示例中,上述通知单元72可配置为在获得所述目标输出特征数据张量时或其后的预定时刻或预定时长内生成所述通知信号。
一些示例中,所述通知信号包含与所述目标输出特征数据张量相对应的消息标识。上述后处理单元73可以包括调用模块和运行模块,调用模块可配置为根据所述通知信号中的消息标识调用相应的后处理程序,运行模块可配置为运行所述后处理程序以对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
一些示例中,上述示例性装置70还可以包括:记录单元74,可配置为使用预定数据结构记录所述神经网络的后处理信息,所述后处理信息包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识。该示例中,上述后处理单元73中的调用模块可以包括:解析子模块,配置为读取并解析所述预定数据结构,以获得所述神经网络的后处理信息;确定子模块,可配置为基于所述神经网络的后处理信息,确定与所述通知信号中的消息标识对应的后处理程序;启动子模块,可配置为启动所述后处理程序。
一些示例中,上述通知单元72可以但不限于通过支持中断通信机制来产生通知信号。相应的,上述通知信号可以是但不限于中断信号,消息标识可以包括但不限于中断号。具体细节可参照上文,不再赘述。
图8是本申请一示例性实施例提供的生成指令序列的示例性装置80。如图8所示,该示例性装置80包括:
确定单元81,可配置为确定神经网络中的多个输出特征数据张量之间的依赖关系;
生成单元82,可配置为生成所述神经网络的指令序列;
插入单元83,可配置为基于所述依赖关系,在所述指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
一些示例中,所述神经网络中的多个输出特征数据张量之间的依赖关系可以指示所述多个输出特征数据张量的输出顺序和任一输出特征数据张量的后处理所依赖的其他输出特征数据张量。
一些示例中,用于生成通知信号的指令中包含与所述目标输出特征数据张量相对应的消息标识。
一些示例中,用于生成通知信号的指令中包含生成时间,所述生成时间至少包括如下之一:所述目标输出特征数据张量的获得时刻、所述获得时刻之后的预定时刻、所述获得时刻之后的预定时长。
一些示例中,用于生成通知信号的指令可以是但不限于中断指令,所述指令中的消息标识可以包括但不限于中断号。
一些示例中,上述示例性装置80中还可以包括:记录单元84,可配置为使用预定数据结构记录所述神经网络的后处理信息,所述后处理信息包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识。
示例性电子设备
图9图示了根据本申请实施例的电子设备的框图。
如图9所示,电子设备90包括一个或多个处理器91和存储器92。
处理器91可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备90中的其他组件以执行期望的功能。
存储器92可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器91可以运行所述程序指令,以实现上文所述的本申请的各个实施例的特征数据的处理方法、生成指令序列的方法以及/或者其他期望的功能。
在一个示例中,电子设备90还可以包括:输入装置93和输出装置94,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该输入装置93可以是麦克风或麦克风阵列。此外,该输入设备93还可以包括例如键盘、鼠标等等。该输出装置94可以向外部输出各种信息。该输出设备94可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备90中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备90还可以包括任何其他适当的组件。
一些示例中,本申请各种实施例中的编译设备可以通过图9所示的电子设备来实现。该示例中,处理器91可以运行存储器92中的计算机程序,以实现上文所述的本申请的各个实施例的生成指令序列的方法以及/或者其他期望的功能。
一些示例中,本申请各种实施例中的运行设备也可以通过图9所示的电子设备来实现。该示例的一种实现方式中,图9所示的电子设备中,处理器91可以包括上文所述的第一处理器和第二处理器,该第一处理器可以包括一个或多个上述的通用处理器,该第二处理器可以包括一个或多个上述的高性能处理器。该示例的另一种实现方式中,处理器91可以包括上文所述的第一计算单元和上文所述的第二计算单元。该示例中,处理器91可以运行存储器92中的计算机程序,以实现上文所述的本申请的各个实施例的特征数据处理方法以及/或者其他期望的功能。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的特征数据处理方法和/或指令序列生成方法的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的特征数据处理方法和/或指令序列生成方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (15)
1.一种特征数据处理方法,包括:
利用神经网络对输入特征数据张量执行运算,以依次获得多个输出特征数据张量;
当获得目标输出特征数据张量时,生成通知信号,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量;以及
基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
2.根据权利要求1所述的方法,其中,利用神经网络对输入特征数据执行的运算中的至少一部分与所述后处理并行地执行。
3.根据权利要求1所述的方法,其中,生成通知信号包括:
在获得所述目标输出特征数据张量时或其后的预定时刻或预定时长内生成所述通知信号。
4.根据权利要求1所述的方法,其中,所述通知信号包含与所述目标输出特征数据张量相对应的消息标识;
基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理,包括:
根据所述通知信号中的消息标识,调用相应的后处理程序;
运行所述后处理程序以对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
5.根据权利要求4所述的方法,还包括:
使用预定数据结构记录所述神经网络的后处理信息,所述后处理信息包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识,
其中,根据所述通知信号中的消息标识,调用相应的后处理程序,包括:
读取并解析所述预定数据结构,以获得所述神经网络的后处理信息;
基于所述神经网络的后处理信息,确定与所述通知信号中的消息标识对应的后处理程序;以及
启动所述后处理程序。
6.根据权利要求1所述的方法,其中,所述通知信号是中断信号,所述消息标识包括中断号。
7.一种指令序列生成方法,包括:
确定神经网络中的多个输出特征数据张量之间的依赖关系;
生成所述神经网络的指令序列;以及
基于所述依赖关系,在所述指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
8.根据权利要求7所述的方法,其中,所述神经网络中的多个输出特征数据张量之间的依赖关系指示所述多个输出特征数据张量的输出顺序和任一输出特征数据张量的后处理所依赖的其他输出特征数据张量。
9.根据权利要求7所述的方法,其中,所述用于生成通知信号的指令中包含与所述目标输出特征数据张量相对应的消息标识;和/或,
所述用于生成通知信号的指令中包含生成时间,所述生成时间至少包括如下之一:所述目标输出特征数据张量的获得时刻、所述获得时刻之后的预定时刻、所述获得时刻之后的预定时长。
10.根据权利要求7所述的方法,其中,所述用于生成通知信号的指令为中断指令,所述指令中的消息标识为中断号。
11.根据权利要求7所述的方法,还包括:
使用预定数据结构记录所述神经网络的后处理信息,所述后处理信息包括每个后处理程序所需的输出特征数据张量的信息和与所述目标输出特征数据张量对应的消息标识。
12.一种特征数据处理装置,包括:
运算单元,配置为利用神经网络对输入特征数据执行运算,以依次获得多个输出特征数据张量;
通知单元,配置为当获得目标输出特征数据张量时,生成通知信号,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量;以及
后处理单元,配置为基于所述通知信号,对所述目标输出特征数据张量及其在先的需要被后处理的输出特征数据张量执行后处理。
13.一种生成指令序列的装置,包括:
确定单元,配置为确定神经网络中的多个输出特征数据张量之间的依赖关系;
生成单元,配置为生成所述神经网络的指令序列;以及
插入单元,配置为基于所述依赖关系,在所述指令序列中的、用于输出目标输出特征数据张量的指令之后,插入用于生成通知信号的指令,所述目标输出特征数据张量是所述多个输出特征数据张量中的、需要被后处理且其后处理不依赖于在后的输出特征数据张量的输出特征数据张量。
14.一种电子设备,包括:
一个或多个处理器;
存储器,存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行根据权利要求1-6、7-11中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行如权利要求1-6、7-11中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911002051.7A CN112766470B (zh) | 2019-10-21 | 2019-10-21 | 特征数据处理方法、指令序列生成方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911002051.7A CN112766470B (zh) | 2019-10-21 | 2019-10-21 | 特征数据处理方法、指令序列生成方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112766470A true CN112766470A (zh) | 2021-05-07 |
CN112766470B CN112766470B (zh) | 2024-05-07 |
Family
ID=75691872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911002051.7A Active CN112766470B (zh) | 2019-10-21 | 2019-10-21 | 特征数据处理方法、指令序列生成方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112766470B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023010244A1 (zh) * | 2021-08-02 | 2023-02-09 | 华为技术有限公司 | 神经网络加速器及神经网络加速器的数据处理方法 |
WO2023082542A1 (zh) * | 2022-02-28 | 2023-05-19 | 之江实验室 | 一种面向神经网络模型计算的图执行方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018193906A1 (ja) * | 2017-04-20 | 2018-10-25 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理方法、情報処理装置およびプログラム |
US20180322382A1 (en) * | 2017-05-03 | 2018-11-08 | Intel Corporation | Scaling half-precision floating point tensors for training deep neural networks |
CN108846384A (zh) * | 2018-07-09 | 2018-11-20 | 北京邮电大学 | 融合视频感知的多任务协同识别方法及系统 |
US20190057036A1 (en) * | 2018-10-15 | 2019-02-21 | Amrita MATHURIYA | Programmable interface to in-memory cache processor |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理系统及数据处理方法 |
CN109670586A (zh) * | 2018-12-29 | 2019-04-23 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN110147249A (zh) * | 2018-02-12 | 2019-08-20 | 上海寒武纪信息科技有限公司 | 一种网络模型的计算方法及装置 |
CN110322010A (zh) * | 2019-07-02 | 2019-10-11 | 深圳忆海原识科技有限公司 | 用于类脑智能与认知计算的脉冲神经网络运算系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109272109B (zh) * | 2018-10-30 | 2020-07-17 | 北京地平线机器人技术研发有限公司 | 神经网络模型的指令调度方法及装置 |
-
2019
- 2019-10-21 CN CN201911002051.7A patent/CN112766470B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018193906A1 (ja) * | 2017-04-20 | 2018-10-25 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理方法、情報処理装置およびプログラム |
US20180322382A1 (en) * | 2017-05-03 | 2018-11-08 | Intel Corporation | Scaling half-precision floating point tensors for training deep neural networks |
CN110147249A (zh) * | 2018-02-12 | 2019-08-20 | 上海寒武纪信息科技有限公司 | 一种网络模型的计算方法及装置 |
CN108846384A (zh) * | 2018-07-09 | 2018-11-20 | 北京邮电大学 | 融合视频感知的多任务协同识别方法及系统 |
US20190057036A1 (en) * | 2018-10-15 | 2019-02-21 | Amrita MATHURIYA | Programmable interface to in-memory cache processor |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理系统及数据处理方法 |
CN109670586A (zh) * | 2018-12-29 | 2019-04-23 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN110322010A (zh) * | 2019-07-02 | 2019-10-11 | 深圳忆海原识科技有限公司 | 用于类脑智能与认知计算的脉冲神经网络运算系统及方法 |
Non-Patent Citations (1)
Title |
---|
张潇等: "面向多核处理器的机器学习推理框架", 《计算机研究与发展》, vol. 56, no. 9, pages 1977 - 1987 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023010244A1 (zh) * | 2021-08-02 | 2023-02-09 | 华为技术有限公司 | 神经网络加速器及神经网络加速器的数据处理方法 |
WO2023082542A1 (zh) * | 2022-02-28 | 2023-05-19 | 之江实验室 | 一种面向神经网络模型计算的图执行方法和装置 |
US11941514B2 (en) | 2022-02-28 | 2024-03-26 | Zhejiang Lab | Method for execution of computational graph in neural network model and apparatus thereof |
Also Published As
Publication number | Publication date |
---|---|
CN112766470B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109272109B (zh) | 神经网络模型的指令调度方法及装置 | |
US20070038987A1 (en) | Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors | |
US8719791B1 (en) | Display of aggregated stack traces in a source code viewer | |
CN111538659B (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN110365942B (zh) | 一种实时视频智能分析方法和系统 | |
CN107045475B (zh) | 测试方法和装置 | |
CN112766470B (zh) | 特征数据处理方法、指令序列生成方法、装置及设备 | |
CN112698888A (zh) | 应用程序的组件化、组件调用和组件初始化方法及其装置 | |
CN111611479B (zh) | 用于网络资源推荐的数据处理方法及相关装置 | |
CN111240772B (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN114816761A (zh) | 基于eBPF的云服务网格资源优化方法、系统及介质 | |
CN117234859B (zh) | 一种性能事件监控方法、装置、设备和存储介质 | |
CN113553067A (zh) | 一种基于rest的多框架机器学习模型部署预测方法 | |
JP2009080583A (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
KR20220067961A (ko) | 프로세싱-인-메모리 및 프로세싱-인-메모리를 이용한 인스트럭션 출력 방법 | |
CN110750359B (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN117271122A (zh) | 基于cpu和gpu分离的任务处理方法、装置、设备及存储介质 | |
CN114398179B (zh) | 一种跟踪标识的获取方法、装置、服务器及存储介质 | |
US11989560B2 (en) | Method and device for executing instructions to perform artificial intelligence | |
CN113141407B (zh) | 一种页面资源加载方法、装置和电子设备 | |
CN110244954A (zh) | 一种应用程序的编译方法及设备 | |
US20180373512A1 (en) | Method and device for simulating synchronous blocking in asynchronous environment, storage medium, server and terminal | |
CN110795215A (zh) | 一种数据处理方法、计算机设备、存储介质 | |
CN113096642A (zh) | 语音识别方法和装置、计算机可读存储介质、电子设备 | |
JP2010211574A (ja) | 情報処理システム、監視方法及び監視プログラム |
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 |