CN112506690B - 控制处理器的方法及装置 - Google Patents
控制处理器的方法及装置 Download PDFInfo
- Publication number
- CN112506690B CN112506690B CN202011451522.5A CN202011451522A CN112506690B CN 112506690 B CN112506690 B CN 112506690B CN 202011451522 A CN202011451522 A CN 202011451522A CN 112506690 B CN112506690 B CN 112506690B
- Authority
- CN
- China
- Prior art keywords
- processor
- neural network
- fault
- network model
- fault information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000003062 neural network model Methods 0.000 claims abstract description 115
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000013528 artificial neural network Methods 0.000 claims description 131
- 238000001514 detection method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 27
- 238000012545 processing Methods 0.000 abstract description 16
- 238000011156 evaluation Methods 0.000 abstract description 2
- 230000007257 malfunction Effects 0.000 abstract 2
- 230000000875 corresponding effect Effects 0.000 description 27
- 230000001276 controlling effect Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 11
- 230000004913 activation Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000011176 pooling Methods 0.000 description 8
- 230000001052 transient effect Effects 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005094 computer simulation Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process 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
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0745—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
公开了一种控制处理器的方法及装置,方法包括:检测处理器在执行神经网络模型运算过程中的工作状态;响应于所述工作状态表示所述处理器出现故障,确定所述处理器的故障信息;以及根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算。当处理器发生故障时,如果对故障信息评估的结果指示计算结果在可接受范围内,可以依旧使用处理器的计算结果而不需要丢弃该计算结果或重启处理器,从而可以提高处理器的处理效率。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及一种控制处理器的方法及装置、设备、存储介质。
背景技术
基于卷积神经网络的深度学习技术能够以较高的准确率进行图像识别和检测、语音识别等任务,因此被广泛地应用于安全监控、辅助驾驶、智能机器人、人机交互等领域。例如,在自动驾驶系统里,需要使用神经网络处理器或加速器来完成目标识别、图像分类等任务。对安全性能有要求的系统中,都会存在故障检测机制,以检测到神经网络处理器的故障,然后进行相应处理。
发明内容
现有技术中,由于无法对神经网络处理器运行神经网络的过程中产生的故障进行有效评估,因而在检测到神经网络处理器故障或者收到关于神经网络处理器的故障信号指示时,可能会重启神经网络处理器,这就会导致神经网络处理器上的系统任务频繁被中断,影响了神经网络处理器的效率。为解决这些技术问题,本公开实施例期望提供一种新的神经网络处理器的控制方法及装置、设备、存储介质。
根据本公开的一个方面,提供了一种控制处理器的方法,包括:
检测处理器在执行神经网络模型运算过程中的工作状态;
响应于所述工作状态表示所述处理器出现故障,确定所述处理器的故障信息;以及
根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算。
根据本公开的另一方面,提供了一种控制处理器的装置,包括:
检测模块,配置为检测处理器的工作状态;
分析模块,配置为响应于所述工作状态表示所述处理器出现故障,确定所述处理器的故障信息;以及
控制模块,配置为根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算。
根据本公开的另一方面,提供了一种电子设备,包括:一个或多个处理器;以及存储器,其存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行上述控制方法。
另外,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行上述控制方法。
通过本公开的示例的方法和装置,在处理器发生故障时,根据故障信息来控制处理器是否需要停止执行神经网络模型的运算。例如,可根据故障信息评估发生故障后的处理器执行神经网络模型的计算结果是否在可接受范围,并且在评估的计算结果在可接受范围内时,可以依旧使用处理器的计算结果而不需要丢弃该计算结果或重启处理器,从而可以提高处理器的处理效率。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例的应用神经网络处理器的示意框图。
图2是本公开一示例性实施例的控制处理器的方法的流程图。
图3是本公开一示例性实施例提供的控制处理器是否需要停止执行神经网络模型运算的流程图。
图4是本公开一示例性实施例提供的确定查找表的方法的流程图。
图5是本公开一示例性实施例提供的确定处理器响应发生故障的处理方式的示意图。
图6是本公开一示例性实施例提供的控制处理器的装置的结构示意图。
图7是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
申请概述
神经网络已成功地应用于图像处理、语音分析等领域。例如,卷积神经网络(CNN)已被广泛地应用于辅助驾驶、安全监控、机器翻译、疾病诊断等领域。
在训练得到神经网络模型之后,可借助于处理器或加速器来执行各种任务。图1是本公开一示例性实施例的应用处理器的示意框图,以自动驾驶系统为例,车载传感器(摄像机、红外传感器、麦克风阵列、LIDAR等)获取声音、图像等传感器数据作为输入数据,处理器100运行经编译后的神经网络模型对这些传感器数据进行处理,执行各种任务(例如,目标检测、目标分类、目标识别、图像分割等),并获得输出数据。例如在目标检测任务中,神经网络的输出数据可以为一些坐标框,标识出可能有目标对象的位置;在目标分类任务中,神经网络的输出数据可以为一个检测到的对象在某个分类或某些分类上的打分值,标识该对象属于某个分类的可能性。
如果处理器或者加速器在计算过程中发生故障,有可能导致运算结果与预期结果的不一致。例如,在目标分类任务中,计算故障的发生可能会导致打分结果与目标实际分类存在偏差,而使得目标被错误地分类。再例如,在目标识别任务中,运算结果与预期结果之间的不一致可体现在神经网络输出的坐标框的数值与目标实际位置有偏差,而使得目标被错误地定位。在处理器发生故障时,现有方案一般是放弃当前计算结果而重启处理器,这会导致处理器上的系统任务被中断,影响了处理器的执行效率。
针对上述技术问题,本公开的基本构思是提出一种控制处理器的方法、装置、电子设备及计算机可读存储介质,在处理器执行运算时,检测处理器在执行神经网络模型运算过程中的工作状态;若所述工作状态表示所述处理器发生故障,确定所述处理器的故障信息;以及根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算。本公开的实施例通过对处理器配置工作状态检测机制,并在处理器发生故障时收集确定相关故障信息,并决定对故障的响应方式,而非直接中断神经网络模型运算,从而能够提高处理器的处理效率。
需要说明的是,尽管上文以特定的神经网络以及应用场景为例进行说明,但本公开实施例的适用范围不限于此。本公开的处理器可以是用于执行卷积神经网络(CNN)、循环神经网络(RNN)、人工神经网络(ANN)等各种神经网络运算的处理器,并可应用于自动驾驶、安全监控、自动化工厂等各种场景。
示例性方法
图2是本公开一示例性实施例提供的控制处理器的方法200,其可以开始于步骤S210,检测处理器在执行神经网络模型运算过程中的工作状态。
本文中的处理器指的是具有数据处理能力和/或指令执行能力的任何形式的处理单元,例如通用处理器CPU、图形处理器GPU、专用集成电路ASIC、现场可编程门阵列FPGA等,也可以是专用的神经网络处理器或加速器等。
例如,神经网络处理器可通过卷积计算电路、池化计算电路、激活计算电路等用于神经网络模型运算的计算通路来配置,例如,卷积计算电路可包括用于执行卷积运算的乘法和累加(MAC)功能的处理元件(PE)阵列。此外,除了核心的计算通路,神经网络处理器还可包含有数据保存通路和传输通路。例如,数据保存通路可包括用于在相邻PE的数据传输的临时存储和累加的中间值的存储的内部缓冲器。传输通路可包括用于从例如外部存储器读取输入数据和/或指令以及在处理器内部元件之间传输数据的各种接口。
神经网络处理器可以被配置为在启动(例如,通电)后其工作状态便受到检测和监控。在一实施例中,检测处理器在执行神经网络模型运算过程中的工作状态可包括检测所述处理器在执行所述神经网络模型运算中的计算通路、数据存储通路和数据传输通路是否出现故障。
参见图1,处理器100可以通过外部接口(例如,AXI接口)接收输入数据和/或指令,并生成特征数据以及对特征数据执行卷积、池化、激活等运算,并将获得的结果进行存储和输出。相应地,检测神经网络处理器在执行神经网络模型运算过程中的工作状态可以包括对外部接口、神经网络计算逻辑、内部缓冲存储器等各部分的工作状态进行检测,例如,可在神经网络处理器中设置与外部接口、计算逻辑、内部缓冲存储器等相关联的多个检测单元或集成的单个检测单元以确定处理器各模块的工作状态处于正常状态或发生故障。神经网络处理器的工作状态既可以包括神经网络处理器内的硬件工作状态,也可以包括神经网络运算相关的逻辑状态。
在一实施例中,可检测神经网络处理器是否发生了指令故障。例如,可以检测神经网络处理器是否通过外部接口接收到正确的指令(例如,是否接收到不完整指令或指令集之外的未知指令),所接收的指令是否可执行(例如,指令是否因与其他指令或规则例如时序规则相矛盾而不可执行)等等。当接收到不完整指令、未知指令或者不可执行的指令时,可以指示出现了指令故障。
在一实施例中,可检测神经网络处理器在执行运算时是否出现无响应或响应时间过长的情形。例如,可通过定时器以监测神经网络处理器执行卷积操作、数据搬移操作等各种指令操作的执行情况,并在出现挂起或响应超时的情况下生成信号以指示出现超时故障。
在一实施例中,可检测神经网络处理器的外部接口是否发生通信协议相关的故障。例如,在检测到不符合AXI协议的读/写数据通道信号时,可生成信号以指示出现接口协议故障。
在一实施例中,可检测神经网络处理器的内部计算逻辑电路是否发生神经网络运算相关的故障。例如,在检测到卷积计算电路的处理单元PE阵列(例如,乘加器阵列)中的某个计算单元发生故障,或者用于平均池化操作的一个或多个平均池化电路发生故障时,可生成信号以指示出现计算逻辑故障。
在一实施例中,可检测数据在神经网络处理器的内部传输过程中是否发生故障。例如,在输入/输出特征图、权重等数据在向存储缓冲器传输的通道上发生寄存器故障时,可生成信号以指示出现数据传输故障。
在一实施例中,可检测数据在神经网络处理器的内部存储过程中是否发生故障。例如,在将卷积运算的中间结果存储在内部SRAM存储器时同时增加ECC编码以对数据进行纠错操作,在检测到ECC校验错误时,可生成信号以指示出现数据存储故障。
以上示例性地列举了神经网络处理器在操作过程中发生的故障类型以及具体的故障信号,可以理解的是,神经网络处理器还可包括其它的故障类型检测单元或故障检测方式,其均在本公开的保护范围之内。
然后,示例方法200可以继续到步骤S220,响应于所述工作状态表示所述处理器发生故障,确定所述处理器的故障信息。在一实施例中,在处理器的工作状态表示所述处理器发生故障时,可通过对检测收集到的故障信号结合神经网络模型的结构进行分析而确定相关的故障信息,并可对确定的相关信息进行记录存储。故障信息可包括故障的类型信息、故障相关的硬件信息、以及故障相关的神经网络运算信息等各种信息。
如前所述,故障的类型信息可包括指令故障、接口协议故障、超时故障、数据传输/存储故障等故障类型,其可通过对各种类型信息进行编码来标识。在此基础上,还可将故障分为与神经网络精度无关的故障和影响神经网络精度的故障。例如,与神经网络精度无关的故障类型可包括指令故障、接口协议故障、超时故障等,而影响神经网络精度的故障可包括神经网络处理器计算逻辑电路等硬件故障、神经网络模型执行过程中发生的运算故障。
故障相关的硬件信息可包括故障器件的类型信息(例如乘法器、加法器、插值器、比较器等)及其位置信息。例如,在计算单元发生故障时,位置信息可包括发生故障的该计算单元(例如,乘法器)在整个计算阵列中的位置以及出错计算在该计算单元的输出结果的bit位,其可通过该计算单元的编码来标识。在将神经网络运算结果存储过程中发生故障时,位置信息可包括相应数据在例如SRAM存储器中的存储地址。
故障相关的神经网络运算信息可包括发生故障时神经网络处理器所执行的操作的类型及其位置信息。例如,对于卷积神经网络,操作的类型可包括卷积操作、池化操作、数据维度变换、激活函数的计算、以及数据搬移或传输操作等,位置信息包括出错计算所在神经网络层的索引(例如,故障发生在第一个卷积层或最后一个全连接层)、出错计算的结果在后续计算结果中的对应位置(例如,第一个卷积层中出错的数据对应到第二个卷积层特征图中的位置)。与故障的类型信息、故障相关的硬件信息类似,故障相关的神经网络运算信息也可通过对各种操作类型及位置信息进行编码来进行标识。
在一具体实施例中,记录并存储所述故障的相关信息可包括确定前述故障的类型信息、故障相关的硬件信息、故障相关的神经网络运算信息中的至少一个,并将故障的相应编码信息进行保存。例如,可将故障信息按照{故障的类型信息;故障相关的硬件信息;故障相关的神经网络运算信息}的格式将相应的编码信息保存到寄存器或SRAM存储器中,以方便后续评估分析发生的故障对处理器工作状态的影响。
之后,在示例方法200的步骤S230中,根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算。
在没有检测到故障时,处理器将对输入数据进行神经网络模型运算并输出运算结果,例如识别或分类等结果,而当处理器检测到异常故障时,可能导致处理器不能工作或者输出结果偏离预期值,即执行神经网络模型运算的精度发生改变。
精度是评价处理器所执行的神经网络模型的一个指标,例如,其可为处理器执行任务(分类任务、识别任务等)的准确率,影响神经网络模型精度的因素主要有模型结构以及权重、激活函数等参数选择。不同的神经网络模型,在处理相同任务的时候,精度可能会有所不同。例如,神经网络模型A在分类任务上的训练精度可能为85%,神经网络模型B在分类任务上的训练精度可能为90%。
当运行神经网络模型的神经网络处理器出现故障时,可能会导致神经网络处理器运行神经网络模型以执行任务时获得的实际运行精度偏离神经网络模型的训练精度。一般而言,神经网络处理器故障将导致神经网络模型的实际运行精度相对于训练精度下降,但这种下降并不必然导致处理器不能执行相关任务。例如,处理器在利用上述神经网络模型A以识别图像中车道线类型时,在处理器没有出现故障时,处理器输出的打分结果是90%可能为白色实线,9%可能为白色虚线,在出现故障时,处理器输出的打分结果是70%可能为白色实线,28%可能为白色虚线,即处理器发生故障时的判断结果与没有发生故障的判断结果是一致的,并不会导致车道线被错误地分类。根据本公开的实施例,可通过对收集记录的故障信息对处理器执行神经网络模型运算的精度进行评估来控制处理器是否需要停止执行神经网络模型运算,而非如现有技术丢弃该运算结果或重启处理器,从而可以提高处理器的处理效率。
在一实施例中,可根据相关的故障信息判断所述故障是否属于影响神经网络精度的故障,并控制是否需要停止执行所述神经网络模型运算。
在一实施例中,在所述故障信息指示所述故障与所述神经网络运算不相关时,确定所述故障属于与神经网络精度无关的故障,比如,故障的类型信息指示故障为指令故障、超时故障、接口协议故障等故障时,可以确定该故障与运算结果精度无关,其不影响执行神经网络模型运算的结果本身的精度,但可能会造成处理器无法正常运行。
例如,在确定所述故障属于与神经网络精度无关的故障时,由于其可能造成神经网络处理器无法正常运行,因此响应于所述故障属于与神经网络精度无关的故障,可指示神经网络处理器停止执行当前神经网络模型运算,并可重启神经网络处理器。
而在所述故障信息指示所述故障与所述神经网络运算相关时,确定所述故障属于影响执行神经网络模型运算的结果精度的故障,比如,计算单元(乘法器、加法器等)硬件发生故障或者执行神经网络模型的操作(卷积操作、池化操作等)发生故障时,可以确定该故障与神经网络运算相关,其将影响神经网络运算所得结果的精度。
在一实施例中,为了提高处理器响应故障的执行效率,在确定所述故障属于影响神经网络精度的故障时,可进一步定位出现的故障是永久故障还是瞬态故障。其中,永久故障是不可恢复故障,一旦出现就会保持故障状态,而瞬态故障是一种可以恢复的故障,其只存在于一段时间内,可以随着电路的更新而消失。
多种原因可能导致永久故障,例如神经网络处理器的IC生产制造工艺出现偏差、处理器内部的电路器件发生老化、处理器遭受外力作用等。出现永久故障的电路器件会一直处于故障的状态,无法恢复正常功能。例如,电路器件中的晶体管出现永久故障,可能一直保持为高电平(例如,PMOS晶体管击穿而与VDD短路),也可能一直保持为低电平(例如,NMOS晶体管击穿而与地短路),即可通过对电路器件的电位监测确定是否发生硬件永久故障。
瞬态故障可能是由宇宙射线、阿尔法粒子或者电磁辐射等原因引起的,瞬间的能量干扰可以暂时性地改变某个电路器件的状态,但不会持续对电路产生破坏。例如,在寄存器中出现瞬态故障时,寄存器内保存的bit位数据可能出错,从而会对后面依赖该寄存器值的逻辑计算产生影响,导致计算得到不正确的结果。但是,当下一时刻电路对该寄存器进行更新,寄存器所保存的数据就会更新为正确的值,后面依赖该寄存器的逻辑计算也就会计算得到预期结果。
一般而言,永久故障对神经网络处理器的运算精度的影响等级较高,而瞬态故障对神经网络处理器的运算精度的影响等级较低。因此,可以结合故障的类别信息(例如,永久故障、瞬态故障)和故障的相关信息(例如,故障相关的硬件信息、故障相关的神经网络运算信息等)而确定故障对神经网络处理器运算所得结果的精度。
在本公开的一些实施例中,可以通过多种方式来确定发生故障的处理器执行神经网络模型运算时能获得的精度。例如,在车辆类型检测等对实时性要求不高的应用场合下,可通过对预设的数据集进行检测以获得发生故障的神经网络处理器执行神经网络模型时能获得的实际运行精度,举例而言,神经网络处理器执行神经网络模型用于通过图像识别自动驾驶车辆前方车辆的类型,用于检测实际运行精度的预设数据集包括1000张标注为各种类型的车辆图片,假设发生故障的神经网络处理器对上述1000张图片的识别结果为其中800张图片识别为正确结果,则可计算出实际运行精度为800/1000=80%;而对于交通信号灯等对实时性要求较高的场合,可通过对故障信号和/或所收集的故障信息等进行分析来定性或者定量地确定发生故障的处理器执行神经网络模型运算时能获得的实际运行精度,这将在后面进行具体描述。
例如,在神经网络处理器中的卷积层、池化层或全连接层的计算逻辑电路出现故障时,可能导致神经网络模型A在分类任务上的实际运行精度变为75%,低于其训练精度80%,导致神经网络模型B在分类任务上的实际运行精度变为85%,低于其训练精度90%。虽然神经网络处理器的故障导致其运行神经网络模型时能实现的精度降低,但是应注意,出现故障的神经网络处理器运行模型B的精度依然比没有出现故障的神经网络处理器运行模型A的精度高。就是说,虽然神经网络处理器故障导致神经网络模型的实际运行精度低于训练精度,但是有可能并不会导致神经网络模型变得不可在该处理器上执行。例如,如果执行一任务的可接受的最低精度为80%,那么神经网络处理器故障导致上述模型A变得不可使用,但是模型B仍可以在该发生故障的神经网络处理器上运行以执行相关任务,其执行精度是可接受的,因此即使神经网络处理器发生故障也可不终止处理器的运行,从而提高了处理器的运行效率。
在本公开的一实施例中,可根据检测获得的故障信息来分析其对处理器执行神经网络模型运算操作的影响,而不需要在线通过数据集的方式来确定精度,从而提高神经网络处理器响应故障的执行效率。图3示出了根据本公开一实施例提供的控制所述处理器是否需要停止执行所述神经网络模型运算的流程图。
如图3所示,控制所述处理器是否需要停止执行所述神经网络模型运算的步骤S230可以包括:
在步骤S231中,根据所述故障信息,确定所述处理器执行所述神经网络模型运算所得结果的精度偏差值。
不同类型的故障、故障发生的硬件位置、及故障所参与的神经网络运算等故障信息均会对处理器执行神经网络模型运算造成不同的影响,故障的各种信息可线性或非线性地影响处理器执行神经网络模型运算所得结果的精度,因此,可将收集得到的故障的类型信息、故障相关的硬件信息、神经网络运算信息中的一项或多项后,通过对这些相关信息进行评估、分析来确定发生的故障对神处理器执行神经网络模型运算所产生的影响而引起的精度偏差值。
在一实施例中,在例如根据故障的类型信息确定其会影响神经网络精度后,可根据所收集的硬件信息、神经网络运算信息等进一步确定发生该故障的处理器执行神经网络模型运算所得结果的精度偏差值。例如,收集的信息显示故障发生在神经网络的全连接层(例如最后一层全连接层)的计算过程中,并且是某个乘法器出现了故障,可以对参与运算的神经网络模型的权重参数进行记录,并根据该乘法器所执行的计算追溯参与运算的神经网络中的相应权重。如果此权重值较小(例如,小于一阈值),可以认为乘法器执行的乘法计算结果对最终运算结果的影响较低。而如果该乘法器在计算电路中多次使用,初步可认为该故障带来的影响很大,此时可进一步根据发生故障的乘法器在神经网络计算过程中的使用次数以及该乘法器参与的逻辑运算的占比等数据来分析该故障对神经网络运算结果的影响。类似地,如果故障发生在激活函数(例如softmax函数)的计算过程中,可以确定故障在该激活函数计算过程中的归一化比重,进而确定该故障对于神经网络处理器运算结果的影响。在获得故障器件类型、故障发生位置等故障信息,和/或上述权重、使用次数等数据后,例如可通过预设的查找表或计算模型确定故障所引起的精度偏差值,这将在下面进行具体描述。
在步骤S232中,根据所述精度偏差值,控制处理器是否需要停止执行神经网络模型运算。
精度偏差值反映了处理器的运算结果偏离预期结果的程度,根据本公开的一实施例,可以通过对该偏离程度的评估来确定处理器的工作方式。即在处理器发生故障时,不是直接终止运算而是先判断发生故障的该处理器执行神经网络模型运算的精度是否在可接受范围内,例如,根据确定的精度偏差值来确定所述处理器响应故障的方式。
在一实施例中,如果确定的精度偏差值小于或等于一预设精度偏差阈值,则表明故障对于神经网络处理器的影响在可接受范围内,此时可不停止执行所述神经网络模型运算,即可依旧使用神经网络处理器的计算结果进行后续运算而不做丢弃处理或重启处理器,另一方面,如果精度偏差值大于该预设阈值,则表明故障所引起的精度偏差不可接受,则应停止执行所述神经网络模型运算或对当前运算结果进行丢弃处理。通过这种方式,从而可以提高神经网络处理器的运算效率。
在一实施例中,神经网络处理器运算所得结果的精度偏差值与预设阈值的判断结果可使用字段来进行表示。该字段例如为单bit二进制数值字段并可存放在状态寄存器内,其可由外部控制器读取以作为指示信号,指示当前运算结果是否可以作为有效数据继续使用,或者需要停止执行神经网络模型的运算。
下面对通过预设的查找表或计算模型来确定故障所引起的精度偏差值的示例性方式进行描述。
在一实施例中,如图3所示,确定处理器执行神经网络模型运算所得结果的精度偏差值可包括:
在步骤S2311中,利用故障信息在预先配置的查找表中进行查询,以获得所述故障对应的精度偏差值,其中,所述查找表中包含所述故障信息和神经网络的精度偏差值之间的对应关系。
例如,可以预先编制一查找表,该查找表包含有故障的相关信息和神经网络的精度偏差值之间的对应关系,例如可通过神经网络处理器执行运算的神经网络模型的训练精度作为参照,记录在各种故障条件下的处理器执行神经网络模型运算所得结果的实际精度与一基准精度的偏差数值,将该偏差数值与相应的故障信息作为一组数据进行记录并进行存储。
如前所述,收集的故障信息可包括故障的类型信息、故障相关的硬件信息、故障相关的神经网络运算信息等信息的一项或多项,并可按照预定的规则对收集的故障信息进行编码,因此可将编码后的故障信息与相对应的偏差数值进行记录并存储在SRAM等片上存储器中。
在对所有收集的故障信息进行编码并存储的情况下,查找表将占用较大的存储空间。为此,在一实施例中,可以对编码后的故障信息进行哈希运算并将故障信息的哈希值与对应的精度偏差值进行存储,从而减小处理器的硬件成本,并提高处理器的查找效率。
神经网络处理器在实际运算过程中发生故障时,可从该预先配置的查找表中查找与所收集的故障信息的编码信息对应的精度偏差值,并以查找到的精度偏差值作为由所述故障引起的神经网络的精度偏差值。通过查找表的方式可以快速确定发生的故障对于神经网络运算的影响,从而可及时确定应对该故障的响应方式。替代地,在查找表中存储的为故障信息的哈希值的情况下,可根据收集的故障信息确定所述故障信息的哈希值,并利用所述哈希值在查找表中进行查询以获得所述精度偏差值。
确定查找表的步骤可由执行神经网络模型运算的处理器预先实施,也可由另外单独设置的神经网络处理器来实施。图4示出了根据本公开一实施例提供的确定查找表的方法300的流程图。
如图4所示,确定查找表的步骤可以包括:
在步骤S310中,通过神经网络模型对预定数据集进行运算,得到基准精度值。
例如,可使用未发生故障的处理器对预定数据集执行神经网络模型运算,从而可统计获得基准精度值。如果该预定数据集采用训练神经网络模型的数据集,上述基准精度值即可以认为是神经网络模型的训练精度。
在步骤S320中,确定所述处理器的电路结构中发生故障的计算逻辑。
对应于神经网络模型的结构,处理器用于执行神经网络模型运算的电路可包括用于执行卷积运算的计算逻辑、用于执行池化操作的计算逻辑、用于执行激活函数运算的计算逻辑等。每个计算逻辑可包括一个或多个用于执行相应运算或操作的计算单元。例如,可对处理器的电路结构进行分析,确定其中所有可能发生故障的计算单元,即处理器在实际运行中该计算单元可能会输出错误的计算结果。在一实施例中,也可以只确定处理器的用于执行特定运算(例如,卷积运算)的电路结构中发生故障的计算逻辑。
在步骤S330中,针对所述计算逻辑,将预定的单点故障映射到所述神经网络模型的运算中,并记录发生故障的计算逻辑所对应的故障信息。
例如,针对每个可能发生故障的计算单元,可设定发生一种预定的单点故障(例如,该计算单元的计算结果的某bit位数据固定为0或1等),并将该单点故障映射到神经网络模型的等效运算中,并记录发生该单点故障的计算逻辑所对应的故障信息。在一实施例中,故障信息可至少包括故障相关的硬件信息以及故障相关的神经网络运算信息,例如故障发生在哪个计算单元,该计算单元输出结果的哪个bit位出现故障,该计算单元对应于神经网络运算的哪一层或哪几层等故障信息。在一实施例中,还可结合神经网络模型的权重等参数确定计算单元参与的逻辑运算在神经网络模型运算的占比等数据并进行记录。
举例而言,针对乘法器设定其输出结果的最后一个bit位出现固定为1的单点故障,可将该预定故障映射到神经网络模型的运算中,其可等效为在乘法计算之后增加一个“或”操作。假设没有发生故障时的计算为c=a*b,且其输出为8bit数据,则发生故障后的运算可等效为c’=(a*b)|00000001。同时,可记录该乘法器的位置信息、该乘法器的输出所参与运算类型以及相应的神经网络层的位置等信息。
在步骤S340中,使用修改后的神经网络模型对所述预定数据集进行运算,得到发生所述单点故障时的实际精度值。
在将单点故障映射到神经网络模型的运算中后,即可确定发生所述故障的处理器所执行的等效的神经网络模型运算,因此,可使用修改后的神经网络模型对步骤S310中采用的预定数据集进行再次运算,并将统计获得的精度值作为处理器发生所述故障时的实际精度值。
在步骤S350中,确定所述实际精度值与所述基准精度值的差值,得到精度偏差值。
实际精度值与基准精度值的差值即反映了处理器的运算结果偏离预期结果的影响等级。一般可认为精度偏差数值越大,故障的影响等级越高。在一实施例中,也可以确定实际精度值和基准精度值的比值,作为精度偏差值的衡量参数。
在步骤S360中,将所述故障信息与所述精度偏差值进行对应,生成数据对;以及
在步骤S370中,基于所述数据对,确定所述查找表。
例如,可将步骤S330中得到的故障信息和步骤S350中得到的精度偏差值进行相关联,可生成一个{故障信息:精度偏差值}数据对。针对所有可能发生故障的计算逻辑重复上述步骤,可得到包含有大量数据对的数据集,其可作为处理器的故障查找表进行使用。
在获得查找表后,还可对其中包含的数据进行各种调整,以提高处理器在发生故障时的安全性能或提高处理器的执行效率。
例如,可能存在两种或多种故障情况下所收集到的故障信息一致,但对应的精度偏差值并不相同的情形。为此,在一实施例中,在确定查找表后,还可从发生故障的计算逻辑对应的数据对中,确定故障信息相同的两个或多个数据对,以及针对故障信息相同的所述两个或多个数据对,从查找表中删除所述两个或多个数据对中精度偏差值最大的数据对之外的其他数据对,即保留了查找表精度偏差值最大的一个数据对,其可提高处理器响应故障时的安全性能。
在一实施例中,还可将查找表中的各数据对的故障信息按照精度偏差值进行分类,例如可将小于或等于精度偏差阈值的故障信息归类为可接受故障,而将大于精度偏差阈值的故障信息归类为不可接受故障,由此,{故障信息:精度偏差值}数据对可转化为{故障信息:故障是否可以接受}数据对。在检测到处理器发生故障时,可直接从查找表中获得故障可接受或不可接受的指示消息,其可提高处理器的响应效率。进一步地,在获得所有{故障信息:故障是否可接受}数据对后,可以只存储“故障可以接受”这一分类的数据对。在查找表没有找到的故障信息可都认为是“故障不可以接受”的情形,其可减小查找表所占用的存储空间,并提高处理器的查找效率。
在一实施例中,可对数据对中的故障信息进行哈希运算,由此,{故障信息:精度偏差值}或{故障信息:故障是否可以接受}可转化为{故障信息的哈希值:精度偏差值}或{故障信息的哈希值:故障是否可以接受}数据对,其可减小查找表所占用的存储空间。在检测到处理器发生故障时,可先对收集到的故障信息进行哈希运算,根据其哈希值在查找表中确定对应的精度偏差值或故障是否可接受的指示。
在一实施例中,为了进一步减小查找表所占用的存储空间,可以只存储其中的部分数据对。例如,可以只存储故障信息中的硬件信息和/或神经网络运算信息为特定值的数据对。比如,可以只存储故障信息中的硬件类型为“乘法器”或运算操作类型为“卷积运算”的数据对。
可以理解的是,一个处理器可以用于执行多个神经网络模型用于执行不同的任务,相应地,可针对处理器配置有多个不同的查找表,以用于处理器在执行不同任务时检测到发生故障而进行响应处理。
返回参考图3,在另一实施例中,确定所述处理器执行所述神经网络模型运算所得结果的精度偏差值也可包括:
在步骤S2312中,使用预先训练的计算模型对所述故障信息进行运算,以获得所述故障对应的精度偏差值。
在一实施方式中,预先训练的计算模型可以采用基于学习的方式通过使用离线训练的网络而获得。例如,其可通过以下方式训练获得计算模型,首先,可以在神经网络模型中引入预定的单点故障,并评估其对神经网络运算的精度偏差值。之后,可以将引入的单点故障映射到神经网络处理器的实际运算的硬件逻辑中,并收集出现故障时的各种故障信息。重复前两个步骤,得到大量的故障分析数据和其产生的精度偏差的数据对应关系,并得到{故障信息:精度偏差值}的数据集。获得数据集的方式可采用前面确定查找表的方式进行,此处不再赘述。在此基础上,可以使用这些数据集,训练一个网络作为评估故障引起的精度偏差值的计算模型。
在获得故障引起的精度偏差值后,可进一步根据所述精度偏差值确定处理器执行神经网络模型运算所得结果的精度。例如,在神经网络处理器正常运行时,其执行神经网络运算的精度可预先通过对预设数据集进行检测而得到,其一般为神经网络模型的训练精度。在一实施例中,可通过将训练精度与上述精度偏差值的差值作为发生故障后的神经网络处理器执行神经网络运算所得结果的实际精度。
图5示出了根据本公开一实施例提供的确定处理器响应发生故障的处理方式的示意图。
如图5所示,在处理器发生故障时,其可收集获得故障的类型信息、故障相关的硬件信息、故障相关的神经网络运算信息等各种故障信息,并可根据例如故障的类型信息确定故障是否属于与神经网络精度无关的故障。在确定故障会影响神经网络精度时,可根据例如收集的硬件信息、神经网络运算信息等而通过预设的查找表或计算模型确定故障所引起的精度偏差值或故障是否可接受的指示。在获得精确偏差值之后,可以根据该精度偏差值来确定处理器响应故障的方式。如图5所示,可将所述故障引起的执行神经网络模型运算的精度偏差值与预先配置的阈值进行比较,若所述精度偏差值小于所述阈值,可控制所述处理器继续所述神经网络模型的后续运算,若所述精度偏差值大于或等于所述阈值,则控制所述处理器停止当前运算(例如对于永久故障)或者丢弃当前的运算结果(例如对于瞬态故障)。
需要说明的是,尽管在各个实施例中分别对根据本公开实施例的故障处理方法的各步骤进行了说明,但是不应理解为其为本公开能实施的全部实施方式,相反这些实施例中的一个或多个、全部或部分之间可以相互结合,同时这些实施例还可以与本文描述的其他特征进行结合,这些实施方式均不脱离本公开的发明原理并可实现辅助的技术效果。
示例性装置
图6是本公开一示例性实施例提供的控制处理器的装置。如图6所示,控制处理器的装置400包括:
检测模块410,其配置为检测处理器的工作状态;
分析模块420,其配置为响应于所述工作状态表示所述处理器出现故障,确定所述处理器的故障信息;以及
控制模块430,其配置为根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算。
可以理解的是,虽然图6中上述各模块图示在处理器100的外部,各模块也可以置于处理器的内部而与处理器的计算电路紧密耦合。分析模块420、控制模块430也可以置于神经网络处理器的外部,通过接口与处理器进行通信,交互故障和控制信息。
在一个示例中,检测模块410可配置为检测所述处理器在执行所述神经网络模型运算中的计算通路、数据存储通路和数据传输通路是否出现故障。
在一个示例中,分析模块420可配置为确定所述故障的类型信息、故障相关的硬件信息、故障相关的神经网络运算信息中的至少一个,并将所述故障信息进行保存。
在一个示例中,控制模块430可配置为根据所述故障信息,确定所述神经网络处理器执行所述神经网络模型运算所得结果的精度偏差值;以及根据所述精度偏差值,控制所述处理器是否需要停止执行所述神经网络模型运算。
在一个示例中,控制模块430还可配置为利用所述故障信息在预先配置的查找表中进行查询,以获得所述故障对应的精度偏差值,其中,所述查找表中包含所述故障信息和神经网络的精度偏差值之间的对应关系。
在一个示例中,控制模块430还可配置为根据所述故障信息,确定所述故障信息的哈希值,并利用所述哈希值在所述查找表中进行查询获得所述精度偏差值。
在一个示例中,控制模块430还可配置为使用预先训练的计算模型对所述故障信息进行运算,以获得所述故障对应的精度偏差值。
在一个示例中,控制模块430还可配置为将所述故障对应的精度偏差值与预设的精度偏差阈值比较;响应于所述故障对应的精度偏差值小于或等于所述精度偏差阈值,控制所述处理器不停止执行所述神经网络模型运算;响应于所述故障对应的精度偏差值大于所述精度偏差阈值,控制所述处理器停止执行所述神经网络模型运算。
在一个示例中,故障处理装置400还可包括查找表确定模块440,其配置为:通过所述神经网络模型对预定数据集进行运算,得到基准精度值;确定所述处理器的电路结构中发生故障的计算逻辑;针对所述计算逻辑,将预定的单点故障映射到所述神经网络模型的运算中,并记录发生故障的计算逻辑所对应的故障信息;使用修改后的神经网络模型对所述预定数据集进行运算,得到发生所述单点故障时的实际精度值;确定所述实际精度值与所述基准精度值的差值,得到精度偏差值;将所述故障信息与所述精度偏差值进行对应,生成数据对;以及基于所述数据对,确定所述查找表。
在一个示例中,所述查找表确定模块440还可配置为从发生故障的计算逻辑对应的数据对中,确定故障信息相同的两个或多个数据对;以及针对故障信息相同的所述两个或多个数据对,删除所述查找表中所述两个或多个数据对中精度偏差值最大的数据对之外的其他数据对。
示例性电子设备
除了上述方法和装置意外,本公开的实施例还可以是电子设备,该电子设备包括:一个或多个处理器;以及存储器,其存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的控制处理器的方法中的步骤。
本公开实施例的上述电子设备可适用于利用神经网络处理器控制的各种设备,例如自动驾驶车辆、安防机器人等,其在电子设备中的神经网络处理器发生故障时,先评估故障对神经网络运算结果造成的精度影响,并在可接受范围内不终止运算,提高电子设备的处理效率。
图7图示了根据本公开实施例的电子设备的框图。
如图7所示,电子设备500包括一个或多个处理器510和存储器520。
处理器510可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备500中的其他组件以执行期望的功能。
存储器520可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器510可以运行所述程序指令,以实现上文所述的本公开的各个实施例的故障处理方法以及/或者其他期望的功能。
在一个示例中,电子设备500还可以包括:输入装置530和输出装置540,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该输入装置530可以是摄像头、激光雷达、麦克风或麦克风阵列。此外,该输入设备530还可以包括例如键盘、鼠标等等。该输出装置540可以向外部输出各种信息。该输出设备540可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图7中仅示出了该电子设备500中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备500还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的控制处理器的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的控制处理器的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (6)
1.一种控制处理器的方法,包括:
检测处理器在执行神经网络模型运算过程中的工作状态;
响应于所述工作状态表示所述处理器出现故障,确定所述处理器的故障信息;以及
根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算,
其中,根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算包括:
根据所述故障信息,确定所述神经网络处理器执行所述神经网络模型运算所得结果的精度偏差值;以及
根据所述精度偏差值,控制所述处理器是否需要停止执行所述神经网络模型运算;
其中,根据所述故障信息,确定所述处理器执行所述神经网络模型运算所得结果的精度偏差值包括:
根据所述故障信息,确定所述故障信息的哈希值,并利用所述哈希值在预先配置的查找表中进行查询,以获得所述故障对应的精度偏差值,其中,所述查找表中包含所述故障信息和神经网络的精度偏差值之间的对应关系。
2.如权利要求1所述的方法,其中,所述检测处理器在执行神经网络模型运算过程中的工作状态包括:
检测所述处理器在执行所述神经网络模型运算中的计算通路、数据存储通路和数据传输通路是否出现故障。
3.如权利要求1所述的方法,其中,根据所述精度偏差值,控制所述处理器是否需要停止执行所述神经网络模型运算,包括:
将所述故障对应的精度偏差值与预设的精度偏差阈值比较;
响应于所述故障对应的精度偏差值小于或等于所述精度偏差阈值,控制所述处理器不停止执行所述神经网络模型运算;
响应于所述故障对应的精度偏差值大于所述精度偏差阈值,控制所述处理器停止执行所述神经网络模型运算。
4.一种控制处理器的装置,包括:
检测模块,配置为检测处理器在执行神经网络模型运算过程中的工作状态;
分析模块,配置为响应于所述工作状态表示所述处理器出现故障,确定所述处理器的故障信息;以及
控制模块,配置为根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算,
其中,所述控制模块配置为以如下方式根据所述故障信息,控制所述处理器是否需要停止执行所述神经网络模型运算:
根据所述故障信息,确定所述神经网络处理器执行所述神经网络模型运算所得结果的精度偏差值;以及
根据所述精度偏差值,控制所述处理器是否需要停止执行所述神经网络模型运算;
其中,所述控制模块配置为以如下方式根据所述故障信息,确定所述处理器执行所述神经网络模型运算所得结果的精度偏差值:
根据所述故障信息,确定所述故障信息的哈希值,并利用所述哈希值在预先配置的查找表中进行查询,以获得所述故障对应的精度偏差值,其中,所述查找表中包含所述故障信息和神经网络的精度偏差值之间的对应关系。
5.一种电子设备,包括:
一个或多个处理器;以及
存储器,存储有计算机程序,所述计算机程序在被所述处理器运行时使所述处理器执行根据权利要求1至3中任一项所述的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行如权利要求1至3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011451522.5A CN112506690B (zh) | 2020-12-09 | 2020-12-09 | 控制处理器的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011451522.5A CN112506690B (zh) | 2020-12-09 | 2020-12-09 | 控制处理器的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506690A CN112506690A (zh) | 2021-03-16 |
CN112506690B true CN112506690B (zh) | 2024-07-05 |
Family
ID=74972006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011451522.5A Active CN112506690B (zh) | 2020-12-09 | 2020-12-09 | 控制处理器的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506690B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230209253A1 (en) * | 2021-12-29 | 2023-06-29 | Motional Ad Llc | Autonomous vehicle with microphone safety |
KR20230155249A (ko) | 2022-05-03 | 2023-11-10 | 주식회사 딥엑스 | 구동중인 컴포넌트를 테스트할 수 있는 npu |
CN115113528B (zh) * | 2022-07-06 | 2023-07-25 | 昆仑芯(北京)科技有限公司 | 神经网络模型的运行控制方法、装置、设备及介质 |
CN115712517B (zh) * | 2022-09-30 | 2024-04-16 | 北京地平线机器人技术研发有限公司 | 一种神经网络处理器的故障处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212775A (zh) * | 2017-11-17 | 2020-05-29 | 特斯拉公司 | 用于处理载具神经网络处理器中的错误的系统和方法 |
CN112231134A (zh) * | 2020-10-28 | 2021-01-15 | 地平线(上海)人工智能技术有限公司 | 神经网络处理器的故障处理方法及装置、设备、存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108172288A (zh) * | 2018-01-05 | 2018-06-15 | 深圳倍佳医疗科技服务有限公司 | 医疗设备智能监控方法、装置及计算机可读存储介质 |
US11687761B2 (en) * | 2018-12-11 | 2023-06-27 | Amazon Technologies, Inc. | Improper neural network input detection and handling |
CN109740523B (zh) * | 2018-12-29 | 2020-12-29 | 国网陕西省电力公司电力科学研究院 | 一种基于声学特征和神经网络的电力变压器故障诊断方法 |
CN111340326A (zh) * | 2019-12-24 | 2020-06-26 | 国网浙江省电力有限公司嘉兴供电公司 | 基于神经网络故障预测的电力终端监控方法和装置 |
-
2020
- 2020-12-09 CN CN202011451522.5A patent/CN112506690B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111212775A (zh) * | 2017-11-17 | 2020-05-29 | 特斯拉公司 | 用于处理载具神经网络处理器中的错误的系统和方法 |
CN112231134A (zh) * | 2020-10-28 | 2021-01-15 | 地平线(上海)人工智能技术有限公司 | 神经网络处理器的故障处理方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112506690A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506690B (zh) | 控制处理器的方法及装置 | |
CN112231134B (zh) | 神经网络处理器的故障处理方法及装置、设备、存储介质 | |
JP7430735B2 (ja) | 画像誤分類のためのセーフティモニタ | |
JP6889279B2 (ja) | デジタル画像内の物体を検出するためのシステムおよび方法、ならびに物体検出を再スコアリングするためのシステムおよび方法 | |
WO2022089202A1 (zh) | 故障识别模型训练方法、故障识别方法、装置及电子设备 | |
WO2016132468A1 (ja) | データ評価方法および装置、故障診断方法および装置 | |
CN109991951B (zh) | 多源故障检测与诊断方法和装置 | |
US20190197145A1 (en) | Mset-based process for certifying provenance of time-series data in a time-series database | |
EP3736694A1 (en) | Automatic driving processing system, system on chip and method for monitoring processing module | |
JPWO2019176603A1 (ja) | 異常診断システム及び異常診断方法 | |
CN102547812B (zh) | 一种无线传感网络故障检测方法及事件检测方法 | |
US20240103964A1 (en) | Method and system for fault-tolerant data communication | |
KR20220068799A (ko) | 자동화설비의 고장 검출 시스템 및 그 방법 | |
CN116668083A (zh) | 一种网络流量异常检测方法及系统 | |
CN116049249A (zh) | 报错信息处理方法、装置、系统、设备和存储介质 | |
WO2024066833A1 (zh) | 神经网络处理器的故障处理方法及装置 | |
JP7348103B2 (ja) | 運転状態分類システム、および、運転状態分類方法 | |
TWI812558B (zh) | 針對微小瑕疵與錯件的影像檢測方法及其系統 | |
CN116910499A (zh) | 一种系统状态监测方法、装置、电子设备及可读存储介质 | |
KR102172840B1 (ko) | 객체 제어 및 모니터링 시스템 | |
US11288159B2 (en) | System model evaluation system, operation management system, system model evaluation method, and program | |
CN115017019B (zh) | 一种基于日志的系统异常检测方法、装置及存储介质 | |
JP2019164762A (ja) | 情報処理装置,機械学習装置及びシステム | |
KR102261840B1 (ko) | 군집비행에서의 개체 간 고장검출 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 | |
US20230401140A1 (en) | Method for carrying out data processing |
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 |