CN112116083A - 神经网络加速器及其检测方法和装置 - Google Patents
神经网络加速器及其检测方法和装置 Download PDFInfo
- Publication number
- CN112116083A CN112116083A CN201910537254.XA CN201910537254A CN112116083A CN 112116083 A CN112116083 A CN 112116083A CN 201910537254 A CN201910537254 A CN 201910537254A CN 112116083 A CN112116083 A CN 112116083A
- Authority
- CN
- China
- Prior art keywords
- data
- predetermined
- feature data
- feature map
- verification
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 120
- 238000001514 detection method Methods 0.000 title claims abstract description 60
- 238000012795 verification Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000010586 diagram Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 238000011176 pooling Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 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
- 239000013598 vector Substances 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)
- 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)
- Image Analysis (AREA)
Abstract
公开了一种神经网络加速器及其检测方法和装置,检测方法包括:使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;从所述至少一个输出特征图中确定与所述预定特征数据相对应的校验特征数据;以及,基于所述至少一个输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据,确定用于执行所述选定层运算的计算单元的状态。本申请能够在不影响神经网络正常运算和不增加硬件成本的前提下实时地检测神经网络加速器中发生的随机错误。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种神经网络加速器及其检测方法和装置。
背景技术
神经网络已成功应用于图像处理、智能驾驶等诸多领域。出于功能安全方面的要求,智能驾驶等车载应用中的神经网络加速器等硬件需具备检测自身故障的能力。然而,对于神经网络加速器等硬件如何高效检测自身故障的技术问题,目前尚未提出有效的解决方案。
发明内容
为了解决上述技术问题,期望提供一种神经网络加速器及其检测方法和装置,以在不影响神经网络正常运算和不增加硬件成本的前提下实时地检测神经网络加速器中发生的随机错误。
根据本申请的一个方案,提供了一种神经网络加速器的检测方法,包括:使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;从所述至少一个输出特征图中确定与所述预定特征数据相对应的校验特征数据;以及,基于所述至少一个输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据,确定用于执行所述选定层运算的计算单元的状态。
根据本申请的一个方面,提供了一种应用于神经网络加速器的检测装置,包括:运算单元,配置为使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;第一确定单元,配置为从所述至少一个输出特征图中确定与所述预定特征数据相对应的校验特征数据;以及,第二确定单元,配置为基于所述至少一个输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据,确定用于执行所述选定层运算的计算单元的状态。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述神经网络加速器的检测方法。
根据本申请的一个方面,提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述神经网络加速器的检测方法。
本申请实施例能够在不影响神经网络正常运算和不增加硬件成本的前提下,实时地检测诸如神经网络加速器等硬件中发生的随机错误,且可以持续有效,从而满足例如车载芯片需要通过相关功能安全认证等的应用需求。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本申请一示例性实施例提供的神经网络加速器检测方法的流程示意图。
图2是本申请另一示例性实施例提供的神经网络加速器检测方法的流程示意图。
图3是本申请另一示例性实施例提供的选定层是卷积层时输入特征图的结构示例图。
图4是本申请另一示例性实施例提供的图3示例中填充有预定特征数据的输入特征图的一个通道上的元素分布示例图。
图5是本申请另一示例性实施例提供的图4示例经过卷积运算之后获得的输出特征图在相应通道上的元素分布示例图。
图6是本申请一示例性实施例提供的神经网络加速器检测方法中确定计算单元状态的步骤的示例流程图。
图7是本申请一示例性实施例提供的参考特征数据在存储器中的排布示例图。
图8是本申请一示例性实施例提供的利用卷积层作为选顶层来检测神经网络加速器中计算单元状态的示例流程图。
图9是本申请一示例性实施例提供的神经网络加速器检测装置的结构示意图。
图10是本申请一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
如前文所述,智能驾驶等车载应用中的神经网络加速器等硬件需具备检测自身故障的能力。比如,某些场景中,因车载芯片需要通过相关功能安全认证等需求,硬件需要设计安全机制以检测硬件的随机错误。
相关技术的技术方案是透过硬件安全机制(如logic BIST)检测逻辑单元是否出现错误。该技术方案存在如下缺陷:1)硬件安全机制需要额外的逻辑线路,成本增加。2)实现安全机制的逻辑线路本身可能会失效,无法满足车载芯片需要通过相关功能安全认证等需求。
为解决上述技术问题,本申请实施例提供了一种神经网络加速器及其检测方法和装置,使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;从至少一个输出特征图中确定与预定特征数据相对应的校验特征数据;以及,基于至少一个输出特征图中的校验特征数据与事先获得的对应至少一个输入特征图的参考特征数据,确定用于执行选定层运算的计算单元的状态。由此,本申请实施例可以于原始输入特征图外加预定特征数据,后于神经网络的计算过程中将结果中对应预定特征数据的校验特征数据与预先在例如编译阶段确定的参考特征数据(goldenreference)比对,从而确认硬件随机错误是否发生。本申请实施例至少具有如下技术效果:1.无需增加额外的逻辑线路,硬件成本低;2.预定特征数据和参考特征数据均可在编译阶段确定,不存在失效的可能;3.在神经网络的运算过程中实时并高效地检测硬件随机错误,只要神经网络能够正常运行,该检测即可正常进行。由上可见,本申请实施例能够在不影响神经网络正常运算和不增加硬件成本的前提下实时地检测诸如神经网络加速器等硬件中发生的随机错误,且可以持续有效,从而满足例如车载芯片需要通过相关功能安全认证等的应用需求。
本申请实施例可应用于任何可适用的应用场景。一些示例中,本申请实施例可应用于车载芯片中。此外,本申请实施例还可应用于对神经网络加速器的随机硬件错误检测的准确性、实时性和有效性等均有较高要求的其他应用场景中。
示例性方法
图1是本申请一示例性实施例提供的神经网络加速器检测方法的示例性流程示意图。本实施例可应用在电子设备上,如图1所示,包括如下步骤:
步骤101,使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;
步骤102,从至少一个输出特征图中确定与预定特征数据相对应的校验特征数据;
步骤103,基于至少一个输出特征图中的校验特征数据与事先获得的对应至少一个输入特征图的参考特征数据,确定用于执行选定层运算的计算单元的状态。
本申请实施例可以于原始输入特征图外加预定特征数据,后于神经网络模型的计算过程中将结果中对应预定特征数据的校验特征数据与预先在例如编译阶段确定的参考特征数据(golden reference)比对,从而检测硬件随机错误是否发生。首先,本申请实施例无需增加额外的逻辑线路,因而硬件成本低;其次,本申请实施例中预定特征数据填充于输入特征图的边缘位置,其对应的校验特征数据也将位于输出特征图的边缘位置,通过去除该校验特征数据或使用零元素等无意义的数值来定义预定特征数据即可还原神经网络本身的运算结果(例如,使用没有填充预定特征数据的原始输入特征图作为输入时神经网络获得的输出特征图(即原始输出特征图)等),因而预定特征数据及其校验特征数据等均不会影响神经网络正常运算,能够确保神经网络运算的正常进行及其运算结果的正确性;再有,本申请实施例中预定特征数据和参考特征数据均可在神经网络运行之前确定,例如在编译阶段来确定,这使得预定特征数据和参考特征数据在神经网络运行阶段可永久有效,因而可以确保有效性更持久,从而能够适应车载芯片通过相关功能安全认证等的应用需求;此外,本申请实施例中利用神经网络自身的运算来实现硬件随机错误的检测,在神经网络运行过程可即时检测硬件随机错误,实时性更好,而且更高效,无需增加额外运行独立于神经网络本身的软件程序即可实现,成本也更低。换言之,本申请实施例能够在不影响神经网络正常运算和不增加硬件成本的前提下实时地检测神经网络加速器中发生的随机错误,且可持续有效,可以满足例如车载芯片需要通过相关功能安全认证等的应用需求。
本申请实施例图1所示的检测方法可以由执行神经网络运算的硬件来实现。该硬件可以是例如下文所述的电子设备,该电子设备中可以包括用于执行一些神经网络相关但与神经网络本身运算无关的处理(例如,神经网络的调度、神经网络运行状态检测等)的低性能处理器(例如,CPU)、专用于执行神经网络运算的高性能处理器(例如,BPU、GPU等)以及用于执行神经网络各层级运算的各类计算单元。其中,计算单元的类型取决于神经网络加速器本身的硬件构造、神经网络的层级结构、具体应用场景等中的一种或多种因素。如下文所述,计算单元可以是但不限于卷积运算电路(例如,乘加阵列等)、池化运算电路(例如,用于执行池化运算的乘加阵列)、激活函数运算电路等。具体应用中,神经网络中不同类型的层级可以对应不同的计算单元、相同类型的层级可以共用同一计算单元,但某些不同类型的层级也可以共用同一种类型的计算单元。本申请实施例的“神经网络加速器”可以是上述电子设备,也可以是该电子设备中专用于执行神经网络运算的部分,即高性能处理器(例如,BPU、GPU等)和各个计算单元的部分。
本申请实施例中图1所示的检测方法可以由电子设备中的高性能处理器(例如,BPU、GPU等)和低性能处理器来共同执行。一些示例中,可以由电子设备中的高性能处理器完成步骤101中选定层的运算并将包含校验特征数据的输出特征图存储到电子设备的片外存储器(例如,DDR)中,再由电子设备的低性能处理器(例如,CPU)来执行步骤102~103中的处理。这样,利用低性能处理器来执行本申请实施例上述检测方法中与神经网络本身运算无关的处理,可以使高性能处理器的计算资源被充分用于神经网络本身的运算中,从而充分利用电子设备的计算资源来高效地并行完成神经网络本身的运算和神经网络加速器的检测,有利于节省硬件成本,提高处理效率。
本申请实施例中,选定层可以是神经网络中预先被选定作为硬件随机错误选择的任一层。一些示例中,选定层可以是神经网络中的第一层、中间层或最后层中。本申请实施例中,选定层的类型不限。如果神经网络包括卷积层、池化(pooling)层、批量归一化层、激活函数层、全连接层等多种类型,选定层可以是这些中任一类型,本申请实施例中的计算单元可以相应的是卷积运算电路(例如,乘加阵列等)、池化运算电路(例如,用于执行池化运算的乘加阵列)、激活函数运算电路等。一些示例中,可以将卷积层、池化层等层级作为用于检测计算单元状态的选定层,这些层级的参考特征数据较容易确定且仅与预定特征数据相关,使用这些层级来作为选定层可以确保检测精度更高,而且只要不更改预定特征数据参考特征数据便可永久使用,因而使用该参考特征数据来做检测时其结果的有效性也更好。一些示例中,一个神经网络可以预先设定多个选定层。在一实施例中,可以选择神经网络中多个类型不同的层级来作为选定层,以便对神经网络加速器中对应各类计算单元的状态进行实时检测,从而全面且有效地检测神经网络加速器中各个部分发生的随机错误。
图2示出了本申请实施例中神经网络加速器检测方法的另一示例性流程,该流程除包含上述步骤101~步骤103之外,还可以包括:步骤100,在选定层的至少一个原始输入特征图的边界外填充至少一个预定特征数据,以构造边缘位置填充有预定特征数据的至少一个输入特征图;其中,至少一个预定特征数据的尺寸相同,并且任意两个预定特征数据中的至少部分元素的数值不同。
实际应用中,神经网络可能需要对多幅图像同时进行处理。在类似场景中,本申请实施例中神经网络的选定层会有多幅原始输入特征图,此时,可以对该多幅原始输入特征图中的部分或全部来执行上述步骤100的构造处理,以获得一幅或多幅填充有预定特征数据的输入特征图。本申请实施例中,对于多幅填充有预定特征数据的输入特征图,如果它们需要同时执行选定层的运算,这些输入特征图中的预定特征数据的尺寸、填充位置、元素取值、对应的第一预定运算参数、对应的参考特征数据等中至少之一或多项可以相同、也可以不同,具体可参见下文。
在步骤101中,还可以构造用于校验的第一预定运算参数。具体地,该第一预定运算参数可以用于对预定特征数据执行选定层的运算以获得输出特征图中的校验特征数据。本申请实施例中,第一预定运算参数的类型取决于选定层的类型。换言之,第一预定运算参数可以是但不限于卷积运算参数、池化运算参数、激活函数参数、批量归一化处理参数等。比如,如果选定层是卷积层,该第一预定运算参数可以包括但不限于用于卷积运算的权重参数、偏移量等,权重参数中定义了用于选定层卷积运算的卷积核及其数量。再比如,如果选定层是池化层,第一预定运算参数可以包括每次对预定特征数据执行最大值或平均值等运算时的区域大小、步长等参数。
具体应用中,第一预定运算参数的类型与选定层本身运算所需的第二预定运算参数相同,但第一预定运算参数的内容与第二预定运算参数的内容可以相同、也可以不同。此外,同一选定层可能有多幅输入特征图,相应的可以有多个预定特征数据,这多个预定特征数据对应的多个第一预定运算参数可以相同、也可以不同,具体细节将在下文详述。比如,选定层是卷积层时,可以在步骤100中构造一专用于预定特征数据的卷积运算的特定卷积核(下文称为第一卷积核)来对预定特征数据(即输入特征图中的填充部分)执行卷积运算;而输入特征图中除填充外的部分(即原始输入特征图)可以按照该卷积层自己的卷积核(下文称为第二卷积核)来做运算。实际应用中,第一卷积核和第二卷积核可以相同、也可以不同。
一些示例中,第一卷积核中每个元素的数值可以预先设定,这些元素的数值可以完全相同(例如,均取“0”),也可以是随机数。第一卷积核中每个元素的数值完全相同时,可以针对计算单元中某些部分(例如,执行“0”的卷积运算的电路部分)进行检测。第一卷积核中各个元素的数值采用随机数时,预定特征数据的卷积运算可以覆盖到例如乘加阵列等计算单元中的各个线路,例如,执行数值“0”的卷积运算的电路部分、执行“1”的卷积运算的电路部分、执行“2”的卷积运算的电路部分等,从而更全面、有效且准确地检测计算单元是否存在故障(例如,是否发生随机错误)。
在步骤101中,还可以事先生成对应各个预定特征数据的各个参考特征数据并存储在存储器(例如,DDR等)中,以便在步骤103的处理中直接使用。
至少一些实施例中,可以基于至少一个输入特征图的标识将相应的参考特征数据存储在对应的预定存储空间中;其中,参考特征数据由至少一个输入特征图中的预定特征数据确定。一些示例中,某一选定层可能同时有多个输入特征图,每个输入特征图的标号可以是N,N+x,N+y,…,每个输入特征图都有对应的参考特征数据,这些输入特征图的参考特征数据可以存储在不同的预定存储空间中。一种实现方式中,可以按照参考特征数据对应的输入特征图的序号将对应这多个输入特征图的参考特征数据依序存放到地址连续的多个预定存储空间中。例如,标号为N的输入特征图的参考特征数据存储到地址为data_N的预定存储空间中,标号为N+x的输入特征图的参考特征数据存储到地址为data_N_x的预定存储空间中,标号为N+y的输入特征图的参考特征数据存储到地址为data_N_y的预定存储空间中,以此类推。这样,便于在步骤103中从相应的预定存储空间中直接读取相应输入特征图的参考特征数据。
本申请实施例中,边缘位置可以是原始输入特征图外界的位置。假设原始输入特征图是一二维图像,该边缘位置可以是该二维图像上侧边界、下侧边界、左侧边界、右侧边界中任一或多项的外侧。假设原始输入特征图表征为一三维张量(例如,下文图3所示的长方体),该边缘位置可以是该三维张量中部分通道上或全部通道上截面的上侧边界、下侧边界、左侧边界、右侧边界中任一或多项的外侧。换言之,该边缘位置可以是原始输入特征图外围四周或任一侧或多侧。相应的,校验特征数据位于原始输出特征图外围四周或任一侧或多侧。下文图3和图4的示例中,在原始输入特征图的外围四周填充预定特征数据,即选择原始输入特征图的外围四周作为上述的“边缘位置”。相应的,下文图5的示例中,校验特征数据的位置将会在原始输出特征图的外围四周。
本申请实施例中,预定特征数据、第一预定运算参数和参考特征数据均可以在编译阶段确定。在编译阶段确定这些数据,可使预定特征数据和参考特征数据在神经网络运行阶段永久有效。
一些示例中,预定特征数据中各个元素的数值可以取预先约定好的固定值。一个示例中,预定特征数据中所有元素的取值可以均约定为0,这样,参考特征数据中每个元素的数值也都是0,只需要确认输出特征图中校验特征数据中的每个元素的数值是否均为0即可。该方式简单易实现,但可能仅能覆盖计算单元中的某些特定电路部分,例如,执行“0”的卷积运算的电路部分。
一些示例中,预定特征数据中各个元素的数值是预先设定的固定值,该固定值可以预先由随机数算法确定。一些示例中,预定特征数据中各个元素的数值可以是对应输入特征图的预定数值区间中的随机数。一个示例中,可以在编译阶段利用随机数来确定预定特征数据中每个元素的数值。这里,由于预定特征数据中各个元素的数值是随机分布的,例如,有“0”、“1”、“2”、……等多种数值,该预定特征数据的卷积运算可以覆盖到相应计算单元的各个线路,例如,执行数值“0”的卷积运算的电路部分、执行“1”的卷积运算的电路部分、执行“2”的卷积运算的电路部分等,从而更全面准确地检测计算单元是否存在故障。
一些示例中,不同输入特征图中的各个预定特征数据的元素数值范围可以不同,以便对计算单元执行更为全面和准确的检测。例如,标号为N的输入特征图的预定特征数据的元素数值范围可以设为0-100,标号为N+x的输入特征图的预定特征数据的元素数值范围可以设为0-50,标号为N+y的输入特征图的预定特征数据的元素数值范围可以设为51-100,以此类推。这样,通过各种数据范围内分布的随机数作为多个输入特征图中的预定特征数据,这些预定特征数据的运算便可以更为全面地覆盖到相应计算单元的各个线路,例如,执行数值“0”的卷积运算的电路部分、执行“14”的卷积运算的电路部分、执行“52”的卷积运算的电路部分等,从而更全面、准确、高效地检测计算单元是否存在故障。
一些示例中,参考特征数据可以在编译阶段生成,与神经网络的指令序列一起装载到“芯片”中。即在神经网络的指令序列装载到诸如BPU等高性能处理器的同时,将参考特征数据存储到片外存储器(例如DDR)的预定存储空间中。
本申请实施例中,上述构造边缘位置填充有预定特征数据的输入特征图的过程可以在神经网络运行过程中进行(例如,由上述执行神经网络运算的硬件单独执行),也可以在编译阶段进行(例如,由负责编译神经网络运行程序的编译设备来执行)。一些示例中,预定特征数据中全是零元素时,可以在神经网络的运算过程中即时地执行上述构造边缘位置填充有预定特征数据的输入特征图的处理,这样,无需另外存储该边缘位置填充有预定特征数据的输入特征图,有利于节省存储资源,降低对片上存储器和片外存储器的容量需求,从而节省硬件成本。一些示例中,预定特征数据中不全是零元素时,可以在编译阶段执行上述构造边缘位置填充有预定特征数据的输入特征图的处理,例如,可以由编译设备来确定上述预定特征数据的尺寸、预定特征数据中各个元素的取值、预定特征数据在输入特征图中的填充位置以及输入特征图的尺寸等参数并生成对应该输入特征图的选定层运算指令或神经网络指令序列,并将相应的预定特征数据包含该预定特征数据的输入特征图、和/或对应该输入特征图的选定层运算指令或神经网络指令序列预先存储在上述电子设备的片外存储器(例如,DDR)中,电子设备运行神经网络的过程中即可按照本申请实施例上述方法来同时进行检测。使用不全是零元素的预定特征数据,检测结果的准确度更高。
一些示例中,以选定层是卷积层为例,如果预定特征数据中均为零元素,上述构造边缘位置填充有预定特征数据的输入特征图的示例性过程可以是:在运算过程中,可以由例如电子设备等的硬件边读原始输入特征图中的数据边在需要的位置上添加要填充(padding)的数据,这样,实际运算的时候参与的部分就是原始输入特征图和填充的预定特征数据形成的输入特征图。可以边读原始输入特征图中的数据边在相应位置的输入数据之前或之后添加零元素,这样,参与神经网络运算的即是上述边缘位置填充有预定特征数据的输入特征图。
一些示例中,以选定层是卷积层为例,如果预定特征数据中不全是零元素,上述构造边缘位置填充有预定特征数据的输入特征图的示例性过程可以是:可以由例如电子设备等的硬件在神经网络的运算过程中,读取原始输入特征图的过程中根据填充位置(例如,预定特征数据中元素在上述输入特征图中的坐标)来随机生成或按照预先选定的算法实时生成预定特征数据中的相应元素并添加该元素到原始输入特征图的数据中;或者,可以由编译设备等预先按照预先选定的算法或随机生成该预定特征数据中的所有元素并存储在存储器(例如,片外存储器等)中的指定存储空间内,例如电子设备等的硬件在神经网络的运算过程中,读取原始输入特征图的过程中根据填充位置向该指定存储空间读取预定特征数据中的相应元素并添加该元素到原始输入特征图的数据中,这样,参与神经网络运算的即是上述边缘位置填充有预定特征数据的输入特征图。
图3示出了选定层是卷积层时输入特征图的结构示例。图3的示例中,灰色四方体31表示原始输入特征图的尺寸,带有外框的灰色四方体32表示填充有预定特征数据的输入特征图的尺寸,将原始输入特征图的尺寸输入编译器,编译器运行预定特征数据的填充命令即可确定填充有预定特征数据的输入特征图的尺寸并生成相应的选定层运算指令或神经网络指令序列。该预定特征数据的填充命令中至少包括该预定特征数据的尺寸参数,例如预定特征数据的宽度维度大小、高度维度大小和通道维度大小等。图3的示例中,灰色立方体31表示原始输入特征图的尺寸,立方体32表示输入特征图的尺寸,立方体32内部的灰色立方体表示输入特征图中原始输入特征图的尺寸(即灰色立方体31),立方体32中灰色立方体外围无填充色的部分表示输入特征图中的预定特征数据的尺寸,其中,预定特征数据的尺寸是h*w*c,表示该预定特征数据的宽度维度大小是w、高度维度大小是h、通道维度大小也是c,原始输入特征图的宽度维度大小是W1、高度维度大小是H1、通道维度大小也是C1,在该原始输入特征图的外围填充尺寸是h*w*c的预定特征数据后获得输入特征图,该输入特征图的宽度维度大小是W1+w、高度维度大小是H1+h、通道维度大小是C1+c。
图4示出了图3的示例中填充有预定特征数据的输入特征图的一个通道上的元素分布情况,每个小方格表征一个元素。图4的示例中,根据命令行对读入至内存的原始输入特征图填充指定的预定特征数据(如:h*w*c)。图4中虚线框内是原始输入特征图,其元素用“X”表示,编译器会在其外围添加指定的预定特征数据(即虚线框外的宽度为w、长度为h的框所示的方格表示预定特征数据),该示例中预定特征数据中元素用“Y”表示。
至少一些实施例中,步骤101中可以包括:通过上述第一预定运算参数对当前输入特征图中的预定特征数据执行选定层的运算;以及,通过对应当前输入特征图的第二预定运算参数对当前输入特征图中除预定特征数据之外的部分(即上文所述原始输入特征图,图4示例中的“X”部分)执行选定层的运算。这里,第一预定运算参数和第二预定运算参数可以相同,也可以不同。一般来说,第一预定运算参数是固定的,尺寸固定且其中各个元素的数值也是固定的,这样通用性比较好,参照上文相关说明以及“第一卷积核”的说明。
至少一些实施例中,步骤102中可以包括:根据预定特征数据在输入特征图中的位置、以及预定特征数据的尺寸,确定校验特征数据在输出特征图中的位置以及校验特征数据的尺寸;以及,根据校验特征数据在输出特征图中的位置以及校验特征数据的尺寸,确定校验特征数据的存储地址。本实施例中,采用何种方式确定校验特征数据在输出特征图中的位置以及校验特征数据的尺寸取决于选定层的类型、预定特征数据在输入特征图中的位置、预定特征数据的尺寸、以及对应该预定特征数据的第一预定运算参数等。
一些示例中,选定层是卷积层时,根据预定特征数据的位置、尺寸及其对应的第一预定运算参数中卷积核(例如,上文第一卷积核)的尺寸,基于卷积运算的原理即可确定相应校验特征数据的尺寸和位置。
以上文图3为例,预定特征数据位于原始输入特征图外围四周,假设h=5,w=5,c=5,且对应该预定特征数据的第一卷积核是3*3*3,基于卷积运算的原理即可确定校验特征数据尺寸是2*2*2(即宽度为2、长度为2、通道数为2的张量数据)且位于原始输出特征图的外围四周。图5示出了图4所示示例经过卷积运算之后获得的输出特征图在相应通道上的元素分布情况,每个小方格代表一个元素。其中,虚线框以内表示原始输出特征图的部分,其元素用X’表示,虚线框外围四周即是校验特征数据在该通道上的元素分布,其元素用Y’表示。由于校验特征数据的尺寸是2*2*2且位于原始输出特征图的外围四周,那么图5示例中,在一个通道维度上,校验特征数据中的元素分布于在输出特征图的第一行、第二行、倒数第一行、倒数第二行、第一列、第二列、倒数第一列和倒数第二列。
一些示例中,选定层是池化层时,可以根据预定特征数据的位置、尺寸及其对应的第一预定运算参数(例如,每次对预定特征数据执行最大值或平均值等运算时的区域大小、步长等参数),基于当前池化层采用的算法原理(例如,最大值或平均值等)来确定相应校验特征数据的尺寸和位置。
除上述示例之外,还可采用其他方式来确定校验特征数据的位置和尺寸,对此,本申请实施例不予限制。
至少一些实施例中,图6示出了步骤103的一种示例性流程,可以包括:
步骤601,确定至少一个输出特征图中的校验特征数据与事先获得的对应至少一个输入特征图的参考特征数据(例如,预先存储在存储器中的参考特征数据)是否一致;
步骤602,响应于任一校验特征数据与相应参考特征数据的不一致,确定用于执行选定层运算的计算单元的状态为错误状态;
步骤603,响应于任一校验特征数据与相应参考特征数据的一致,确定用于执行选定层运算的计算单元的状态为正常状态。
上述实施例中,如果输出特征图中校验特征数据中的任一元素与参考特征数据中相应位置的元素数值不同,即可以确定执行选定层运算的计算单元存在故障。如果所有输入特征图中校验特征数据的所有元素与相应参考特征数据中对应位置的元素数值均相等,即可以确定执行选定层运算的计算单元正常。
一些示例中,步骤601可以采用元素级别(element-wise)的比较方式(即比较坐标相同的元素的数值)来实现,校验特征数据和参考特征数据中坐标相同的元素取值相同,即表明校验特征数据和参考特征数据是一致的,有任一相同坐标的元素的数值不同即表明校验特征数据和参考特征数据是不一致的。具体地,步骤601的示例性方式可以包括:步骤a1,比较至少一个输出特征图中的校验特征数据中的元素与参考特征数据中相应位置元素的数值;步骤a2,响应于校验特征数据中任一元素与参考特征数据中相应位置元素的数值不一致,确定校验特征数据与参考特征数据不一致。
一些示例中,步骤a1中每个元素的比较过程可以包括:步骤a11,根据校验特征数据中的第一元素在输出特征图的位置,从输出特征图的存储空间中读取第一元素的数值;步骤a12,根据校验特征数据中第一元素在输出特征图的位置,从预定存储空间中读取参考特征数据中第二元素的数值;步骤a13,比较第一元素的数值和第二元素的数值。这样,按照该比较过程将校验特征数据中每个元素与参考特征数据中相应元素逐一比较即可完成步骤601的处理。
仍以上文图3-5为例,图7示出了该示例对应的参考特征数据在存储器中的排布示例,该参考特征数据按照图5所示宽度维度大小是W1+2、高度维度大小是H1+2的输出特征图中校验特征数据的坐标来存储。在比较时,取图5中坐标是(0,0)的元素Y’,取图7所示参考特征数据中坐标也是(0,0)的元素Z,将Y’和Z比较,如此逐个元素比较,直到将校验特征数据中每个元素与参考特征数据中相应元素均比较完成。
一种示例中,可以在编译侧计算选定层的输出特征图的尺寸,并根据输出特征图的尺寸、相应预定特征数据的尺寸及其第一预定运算参数等来估算参考特征数据的尺寸及其坐标参数,该坐标参数可以指示参考特征数据中各元素的位置坐标范围,该位置坐标范围与相应校验特征数据在其输出特征图中的位置坐标范围相同,按照参考特征数据的坐标参数预先将参考特征数据存储在DDR,CPU在比较时便可按照相应校验特征数据中各元素在输出特征图的位置坐标来直接读取参考特征数据中的相应元素。该方式不需要重排,直接存储即可按照元素坐标准确、高效地读取到参考特征数据中相应元素。
一个示例中,可以仅将参考特征数据存储在预定存储空间,存储时通过例如offset等方式重置参考特征数据中各个元素的存储地址,使得参考特征数据中各个元素的存储地址与校验特征数据中相应元素在输出特征图的位置坐标相对应。这样,在上述步骤601中,可以基于校验特征数据中的各个元素在输出特征图中的位置,确定参考特征数据中相应元素的存储地址。换言之,在执行步骤a1的比较时,CPU可以直接按照校验特征数据在输出特征图的位置坐标来读取参考特征数据中的相应元素和输出特征图中校验特征数据中的元素。这样,可以快速准确地完成步骤a1的比较,从而提升本申请实施例的检测效率。
具体应用中,可以在执行选定层的运算之后即执行上述步骤103的处理,也可以在神经网络的运算都完成之后再执行步骤103的处理。如果是在执行选定层的运算之后即执行上述步骤103的处理,BPU可以在执行完选定层的运算之后向CPU发送通知或类似的消息,CPU收到该消息后即刻执行上述步骤103的处理,该方式可以在选定层的运算完成后即时地确定BPU的计算单元是否故障,更及时,检测结果的实时性更好。如果在神经网络的运算完成之后再执行步骤103的处理,则更利于BPU集中所有硬件资源来完成神经网络的运算,对神经网络本身运算的影响可以降低到最小。
至少一些实施例中,在步骤103之后,还可以响应于至少一个输出特征图中的校验特征数据与相应参考特征数据的一致,丢弃至少一个输出特征图中的校验特征数据,并将至少一个输出特征图中除校验特征数据之外的部分连续地存入预定存储空间中。一个示例中,CPU完成步骤103的处理后,可以向BPU发送通知或类似的消息,以便BPU将输出特征图中的校验特征去除,进入下一层的运算。另一示例中,BPU可以根据神经网络的指令序列中选定层的填充参数,将选定层的输出特征图中对应填充部分(该填充部分可能包括但不限于上述的预定特征数据)的部分去除(例如,通过取输出特征图中对应原始输入特征图的各个ROI写回DDR的方式来实现该去除操作),以便执行下一层的运算。
至少一些实施例中,在步骤103之后,还可以响应于任一输出特征图中的校验特征数据与相应参考特征数据的不一致,丢弃至少一个输出特征图和/或中止所述神经网络的运算。一个示例中,在确定BPU的某个计算单元故障之后,CPU可以向BPU发送指令,以控制BPU中止神经网络的后续运算或者控制BPU重新执行神经网络的运算。
下面以结合图3-5以及图8的具体示例来详细说明本申请实施例上述检测方法的流程。
图8的示例中,以神经网络中一卷积层为选定层来检测神经网络加速器中用于执行卷积运算的计算单元的状态。图8中,灰色立方体31表示原始输入特征图的尺寸,立方体32表示输入特征图的尺寸,立方体32内部的灰色立方体表示输入特征图中原始输入特征图的尺寸(即是灰色立方体31),立方体32中灰色立方体外围无填充色的部分表示输入特征图中的预定特征数据的尺寸,立方体33表示输出特征图的尺寸,立方体33内部的灰色立方体表示输出特征图中原始输出特征图的尺寸,立方体33中灰色立方体外围无填充色的部分表示输出特征图中校验特征数据的尺寸,该原始输出特征图由计算单元对原始输入特征图及其对应的第二预定运算参数执行卷积运算来获得,该校验特征数据可以由计算单元对预定特征数据及其对应的第一预定运算参数(即下文的特定卷积核)执行卷积运算来获得。
图8的示例中,预先约定如下:预定特征数据的尺寸为5*5*5,即该预定特征数据的宽度维度大小是5、高度维度大小是5、通道维度大小是5。对应该预定特征数据的特定卷积核(即上文的第一卷积核)的尺寸是3*3*3。
图8的示例中,上述计算单元状态的检测过程可以包括如下步骤:
步骤801,在编译过程中,编译器根据命令行,由读至内存的第N、N+x、N+y、…的多个原始输入特征图(input tensor)的尺寸31和填充参数,该填充参数包括填充尺寸是5x5x5但元素数值范围各不相同的多个预定特征数据,确定相应的多个输入特征图(编号也是第N、N+x、N+y、…)的尺寸32,这多个输入特征图分别填充有其对应的预定特征数据,并生成各个预定特征数据的第一卷积核(假设各个第一卷积核尺寸均是3x3x3且各个第一卷积核中元素的数值不同),根据该输入特征图中的预定特征数据以及第一卷积核分别确定上述多个输入特征图的参考特征数据(golden reference)(假设尺寸是2x2x2);
步骤802,编译器生成神经网络的二进制指令序列并向CPU/BPU装载的过程中,将各个参考特征数据按照其对应的输入特征图的序号依序写入特定的数据段,例如,针对第N、N+x、N+y、…的原始输入特征图加以填充,则可以将对应的参考特征数据写入地址为data_N、data_N_x、data_N_y的数据段。
步骤803,在神经网络运行过程中,BPU完成第N、N+x、N+y、…的输入特征图的卷积运算后,CPU将获得的输出特征图(output tensor)外围的校验特征图(尺寸是2x2x2)和存于对应的data_N,data_N_x,data_N_y段的参考特征数据比对。如比对失败,说明硬件失效,CPU丢弃神经网络此次计算的结果并通知BPU中止神经网络的运算。如比对正确,CPU取原输入特征图中的感兴趣区域(ROI,region of interest)(例如,对应原始输入特征图的部分)写回DDR,BPU继续执行神经网络的后续运算。
需要说明的是,图8中仅示出了一个输入特征图,但实际应用中可能会在一次运算中涉及多个输入特征图,检测过程也会涉及多个输入特征图,具体参见上文关于图8的文字描述。上述流程和图8仅为示例,并非用于限制本申请实施例,具体应用中,本申请实施例还可有其他诸多的实现方式。
示例性装置
图9是本申请一示例性实施例提供的应用于神经网络加速器的检测装置的示例性结构示意图。该装置可部署于电子设备上或通过电子设备来实现,如图9所示,应用于神经网络加速器的检测装置可以包括:
运算单元91,可配置为使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;
第一确定单元92,可配置为从至少一个输出特征图中确定与预定特征数据相对应的校验特征数据;
第二确定单元93,可配置为基于至少一个输出特征图中的校验特征数据与事先获得的对应至少一个输入特征图的参考特征数据,确定用于执行选定层运算的计算单元的状态。
一些示例中,第二确定单元93可以包括:一致性确定模块和状态确定模块;其中,一致性确定模块,可配置为确定至少一个输出特征图中的校验特征数据与事先获得的对应至少一个输入特征图的参考特征数据是否一致;状态确定模块,可配置为响应于任一校验特征数据与相应参考特征数据的不一致,确定用于执行选定层运算的计算单元的状态为错误状态;以及,可配置为响应于任一校验特征数据与相应参考特征数据的一致,确定用于执行选定层运算的计算单元的状态为正常状态。
一些示例中,一致性确定模块可以包括:比对子模块,配置为比较至少一个输出特征图中的校验特征数据中的元素与参考特征数据中相应位置元素的数值;确定子模块,配置为响应于校验特征数据中任一元素与参考特征数据中相应位置元素的数值不一致,确定校验特征数据与参考特征数据不一致。
一些示例中,上述比较子模块是配置为:根据校验特征数据中的第一元素在输出特征图的位置从输出特征图的存储空间中读取第一元素的数值,根据校验特征数据中第一元素在输出特征图的位置从预定存储空间中读取参考特征数据中第二元素的数值,比较第一元素的数值和第二元素的数值。
一些示例中,上述检测装置还可以包括:第三确定单元,可以配置为基于校验特征数据中的各个元素在输出特征图中的位置,确定参考特征数据中相应元素的存储地址,以便第二确定单元93能够准确高效地读取到相应参考特征数据中的元素。
一些示例中,上述检测装置还可以包括:第一后处理单元,可配置为响应于至少一个输出特征图中的校验特征数据与相应参考特征数据的一致,丢弃至少一个输出特征图中的校验特征数据,并将至少一个输出特征图中除校验特征数据之外的部分连续地存入预定存储空间中。
一些示例中,上述检测装置还可以包括:第二后处理单元,可配置为响应于任一输出特征图中的校验特征数据与相应参考特征数据的不一致,丢弃至少一个输出特征图和/或中止所述神经网络的运算。
具体应用中,上述第一后处理单元和第二后处理单元可以合并为一个功能模块,也可以是分别独立部署的两个功能模块。
一些示例中,上述检测装置还可以包括:预存储单元,配置为基于至少一个输入特征图的标识将相应的参考特征数据存储在对应的预定存储空间中;其中,参考特征数据由至少一个输入特征图中的预定特征数据确定。
一些示例中,上述运算单元93是配置为:通过用于校验的第一预定运算参数对当前输入特征图中的预定特征数据执行选定层的运算;以及,通过对应当前输入特征图的第二预定运算参数对当前输入特征图中除预定特征数据之外的部分执行选定层的运算。一些示例中,选定层为卷积层时,第一预定运算参数可以包括预定尺寸的第一卷积核,且第一卷积核中各个元素的数值为预先设定的固定值。
一些示例中,预定特征数据中各个元素的数值是预先设定的固定值,所述固定值预先由随机数算法确定。
一些示例中,至少一个输入特征图中的预定特征数据中各个元素的数值是对应输入特征图的预定数值区间中的随机数。
一些示例中,上述检测装置还可以包括:数据预处理单元,配置为在选定层的至少一个原始输入特征图的边界外填充至少一个预定特征数据,以构造边缘位置填充有所述预定特征数据的至少一个输入特征图;其中,至少一个预定特征数据的尺寸相同,并且任意两个预定特征数据中的至少部分元素的数值不同。
具体应用中,上述数据预处理单元和预存储单元可以部署于编译侧设备中或者由编译侧设备来实现。此外,上述数据预处理单元和预存储单元可以合并为一个功能模块,也可以是分别独立部署的两个功能模块。
一些示例中,第一确定单元92可以包括:尺寸确定模块,配置为根据预定特征数据在所述输入特征图中的位置、以及所述预定特征数据的尺寸,确定校验特征数据在所述输出特征图中的位置以及所述校验特征数据的尺寸;存储地址确定模块,配置为根据校验特征数据在所述输出特征图中的位置以及所述校验特征数据的尺寸,确定校验特征数据的存储地址。
本申请实施例中检测装置的其他技术细节可参照上文“示例性方法”部分。
示例性电子设备
下面,参考图10来描述根据本申请实施例的电子设备。
图10图示了根据本申请实施例的电子设备的框图。
如图10所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的神经网络加速器的检测方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如预定特征数据、参考特征数据等各种内容。
一些示例中,如上文“示例性方法”所述,处理器11可以包括低性能处理器(例如,CPU)和高性能处理器(BPU)。此外,上述电子设备10还可以包括用于执行神经网络中运算的各类计算单元,该计算单元的具体细节可参照上文示例性方法部分。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。该输入装置13可以包括例如键盘、鼠标等等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图10中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的神经网络加速器的检测方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的神经网络加速器的检测方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (17)
1.一种神经网络加速器的检测方法,包括:
使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;
从所述至少一个输出特征图中确定与所述预定特征数据相对应的校验特征数据;以及
基于所述至少一个输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据,确定用于执行所述选定层运算的计算单元的状态。
2.根据权利要求1所述的检测方法,其中,基于所述至少一个输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据,确定用于执行所述选定层运算的计算单元的状态,包括:
确定至少一个所述输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据是否一致;以及
响应于任一所述校验特征数据与相应参考特征数据的不一致,确定用于执行所述选定层运算的计算单元的状态为错误状态;
响应于任一所述校验特征数据与相应参考特征数据的一致,确定用于执行所述选定层运算的计算单元的状态为正常状态。
3.根据权利要求2所述的检测方法,其中,确定至少一个所述输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据是否一致,包括:
比较至少一个所述输出特征图中的校验特征数据中的元素与所述参考特征数据中相应位置元素的数值;以及
响应于所述校验特征数据中任一元素与所述参考特征数据中相应位置元素的数值不一致,确定所述校验特征数据与所述参考特征数据不一致。
4.根据权利要求3所述的检测方法,其中,比较所述校验特征数据中的元素与所述参考特征数据中相应位置元素的数值,包括:
根据所述校验特征数据中的第一元素在所述输出特征图的位置,从所述输出特征图的存储空间中读取所述第一元素的数值;
根据所述校验特征数据中第一元素在所述输出特征图的位置,从预定存储空间中读取所述参考特征数据中第二元素的数值;以及
比较所述第一元素的数值和第二元素的数值。
5.根据权利要求4所述的检测方法,还包括:基于所述校验特征数据中的各个元素在所述输出特征图中的位置,确定所述参考特征数据中相应元素的存储地址。
6.根据权利要求2所述的检测方法,还包括:
响应于所述至少一个输出特征图中的校验特征数据与相应参考特征数据的一致,丢弃所述至少一个输出特征图中的校验特征数据,并将所述至少一个输出特征图中除所述校验特征数据之外的部分连续地存入预定存储空间中。
7.根据权利要求2所述的检测方法,还包括:响应于任一所述输出特征图中的校验特征数据与相应参考特征数据的不一致,丢弃所述至少一个输出特征图和/或中止所述神经网络的运算。
8.根据权利要求1所述的检测方法,还包括:
基于至少一个输入特征图的标识将相应的参考特征数据存储在对应的预定存储空间中;其中,所述参考特征数据由所述至少一个输入特征图中的预定特征数据确定。
9.根据权利要求1所述的检测方法,其中,所述使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,包括:
通过用于校验的第一预定运算参数对当前输入特征图中的所述预定特征数据执行所述选定层的运算;以及
通过对应当前输入特征图的第二预定运算参数对所述当前输入特征图中除所述预定特征数据之外的部分执行所述选定层的运算。
10.根据权利要求9所述的检测方法,其中,所述选定层为卷积层时,所述第一预定运算参数包括预定尺寸的第一卷积核,且所述第一卷积核中各个元素的数值为预先设定的固定值。
11.根据权利要求1所述的检测方法,其中,所述预定特征数据中各个元素的数值是预先设定的固定值,所述固定值预先由随机数算法确定。
12.根据权利要求1所述的检测方法,其中,至少一个所述输入特征图中的预定特征数据中各个元素的数值是对应所述输入特征图的预定数值区间中的随机数。
13.根据权利要求1所述的检测方法,还包括:在所述选定层的至少一个原始输入特征图的边界外填充至少一个预定特征数据,以构造所述边缘位置填充有所述预定特征数据的至少一个输入特征图;
其中,所述至少一个预定特征数据的尺寸相同,并且任意两个预定特征数据中的至少部分元素的数值不同。
14.根据权利要求1所述的检测方法,其中,从所述至少一个输出特征图中确定与所述预定特征数据相对应的校验特征数据,包括:
根据所述预定特征数据在所述输入特征图中的位置、以及所述预定特征数据的尺寸,确定所述校验特征数据在所述输出特征图中的位置以及所述校验特征数据的尺寸;以及
根据所述校验特征数据在所述输出特征图中的位置以及所述校验特征数据的尺寸,确定所述校验特征数据的存储地址。
15.一种应用于神经网络加速器的检测装置,包括:
运算单元,配置为使用至少一个边缘位置填充有预定特征数据的输入特征图执行神经网络中选定层的运算,以得到至少一个输出特征图;
第一确定单元,配置为从所述至少一个输出特征图中确定与所述预定特征数据相对应的校验特征数据;以及
第二确定单元,配置为基于所述至少一个输出特征图中的校验特征数据与事先获得的对应所述至少一个输入特征图的参考特征数据,确定用于执行所述选定层运算的计算单元的状态。
16.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-14任一所述神经网络加速器的检测方法。
17.一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-14任一所述神经网络加速器的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910537254.XA CN112116083B (zh) | 2019-06-20 | 2019-06-20 | 神经网络加速器及其检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910537254.XA CN112116083B (zh) | 2019-06-20 | 2019-06-20 | 神经网络加速器及其检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112116083A true CN112116083A (zh) | 2020-12-22 |
CN112116083B CN112116083B (zh) | 2024-03-08 |
Family
ID=73795894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910537254.XA Active CN112116083B (zh) | 2019-06-20 | 2019-06-20 | 神经网络加速器及其检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112116083B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032843A (zh) * | 2021-03-30 | 2021-06-25 | 北京地平线信息技术有限公司 | 用于获得和处理带数字签名信息的张量数据的方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379381A1 (en) * | 2015-06-23 | 2016-12-29 | Freescale Semiconductor, Inc. | Apparatus and method for verifying the origin of texture map in graphics pipeline processing |
WO2018058426A1 (zh) * | 2016-09-29 | 2018-04-05 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
US20180181838A1 (en) * | 2016-12-22 | 2018-06-28 | Samsung Electronics Co., Ltd. | Convolutional neural network system and operation method thereof |
US20180354487A1 (en) * | 2017-06-12 | 2018-12-13 | Robert Bosch Gmbh | Computation unit and operating method therefor |
CN109358993A (zh) * | 2018-09-26 | 2019-02-19 | 中科物栖(北京)科技有限责任公司 | 深度神经网络加速器故障的处理方法及装置 |
CN109377532A (zh) * | 2018-10-18 | 2019-02-22 | 众安信息技术服务有限公司 | 基于神经网络的图像处理方法及装置 |
US10229346B1 (en) * | 2018-09-04 | 2019-03-12 | StradVision, Inc. | Learning method, learning device for detecting object using edge image and testing method, testing device using the same |
EP3480740A1 (en) * | 2017-11-07 | 2019-05-08 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network performing deconvolution |
CN109754359A (zh) * | 2017-11-01 | 2019-05-14 | 腾讯科技(深圳)有限公司 | 一种应用于卷积神经网络的池化处理的方法及系统 |
-
2019
- 2019-06-20 CN CN201910537254.XA patent/CN112116083B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379381A1 (en) * | 2015-06-23 | 2016-12-29 | Freescale Semiconductor, Inc. | Apparatus and method for verifying the origin of texture map in graphics pipeline processing |
WO2018058426A1 (zh) * | 2016-09-29 | 2018-04-05 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
US20180181838A1 (en) * | 2016-12-22 | 2018-06-28 | Samsung Electronics Co., Ltd. | Convolutional neural network system and operation method thereof |
US20180354487A1 (en) * | 2017-06-12 | 2018-12-13 | Robert Bosch Gmbh | Computation unit and operating method therefor |
CN109754359A (zh) * | 2017-11-01 | 2019-05-14 | 腾讯科技(深圳)有限公司 | 一种应用于卷积神经网络的池化处理的方法及系统 |
EP3480740A1 (en) * | 2017-11-07 | 2019-05-08 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network performing deconvolution |
US10229346B1 (en) * | 2018-09-04 | 2019-03-12 | StradVision, Inc. | Learning method, learning device for detecting object using edge image and testing method, testing device using the same |
CN109358993A (zh) * | 2018-09-26 | 2019-02-19 | 中科物栖(北京)科技有限责任公司 | 深度神经网络加速器故障的处理方法及装置 |
CN109377532A (zh) * | 2018-10-18 | 2019-02-22 | 众安信息技术服务有限公司 | 基于神经网络的图像处理方法及装置 |
Non-Patent Citations (5)
Title |
---|
SHUANG WU 等: "Convolution with even-sized kernels and symmetric padding", 《HTTPS://ARXIV.ORG/PDF/1903.08385.PDF》, 22 May 2019 (2019-05-22), pages 1 - 12 * |
ZHEN LI 等: "A survey of neural network accelerators", 《FRONTIERS OF COMPUTER SCIENCE》, vol. 11, 17 May 2017 (2017-05-17), pages 746 - 761, XP036319088, DOI: 10.1007/s11704-016-6159-1 * |
史怡芳: "基于支持向量机的步态识别算法研究", 《万方数据知识服务平台》, 29 August 2017 (2017-08-29) * |
张榜、来金梅: "一种基于FPGA的卷积神经网络加速器的设计与实现", 《复旦学报(自然科学版)》, vol. 57, no. 3, 30 April 2018 (2018-04-30), pages 236 - 242 * |
朱莉 等: "基于多模态特征图融合的红外热图像目标区域提取算法", 《红外与毫米波学报》, vol. 38, no. 1, 28 February 2019 (2019-02-28), pages 125 - 132 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032843A (zh) * | 2021-03-30 | 2021-06-25 | 北京地平线信息技术有限公司 | 用于获得和处理带数字签名信息的张量数据的方法和装置 |
CN113032843B (zh) * | 2021-03-30 | 2023-09-15 | 北京地平线信息技术有限公司 | 用于获得和处理带数字签名信息的张量数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112116083B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109919311B (zh) | 生成指令序列的方法、执行神经网络运算的方法和装置 | |
US10496471B2 (en) | Register error detection system | |
US20220100601A1 (en) | Software Defined Redundant Allocation Safety Mechanism In An Artificial Neural Network Processor | |
US11221929B1 (en) | Data stream fault detection mechanism in an artificial neural network processor | |
CN109144515B (zh) | Dcs图形化算法组态的离线仿真方法和装置 | |
CN106779057B (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
US11263077B1 (en) | Neural network intermediate results safety mechanism in an artificial neural network processor | |
US11874900B2 (en) | Cluster interlayer safety mechanism in an artificial neural network processor | |
US11494265B2 (en) | Securing against errors in an error correcting code (ECC) implemented in an automotive system | |
JP2020091868A (ja) | 作業負荷の繰り返し冗長化 | |
CN117274031A (zh) | 缓冲器检查器 | |
CN110574045A (zh) | 用于优化后的深度网络处理的图形匹配 | |
US10908916B2 (en) | Apparatus and method for executing a plurality of threads | |
US11811421B2 (en) | Weights safety mechanism in an artificial neural network processor | |
CN115934346B (zh) | 算子的自动检测方法、装置、电子设备及介质 | |
US20220101043A1 (en) | Cluster Intralayer Safety Mechanism In An Artificial Neural Network Processor | |
CN112116083B (zh) | 神经网络加速器及其检测方法和装置 | |
US10209990B2 (en) | Conditional atomic operations in single instruction multiple data processors | |
CN112631955A (zh) | 数据处理方法、装置、电子设备以及介质 | |
US20040093476A1 (en) | System for preventing memory usage conflicts when generating and merging computer architecture test cases | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
US11989560B2 (en) | Method and device for executing instructions to perform artificial intelligence | |
US20230259737A1 (en) | Integrated computing apparatus, chip, board card, device and computing method | |
CN112132274B (zh) | 特征图全连接卷积方法、装置、可读存储介质及电子设备 | |
CN115184771B (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 |