AI计算的校验方法和装置与流程

文档序号:33247295发布日期:2023-02-17 23:40阅读:157来源:国知局
AI计算的校验方法和装置与流程
ai计算的校验方法和装置
技术领域
1.本技术涉及人工智能领域,并且更具体的,涉及一种ai计算的校验方法和装置。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能的应用领域广泛,交通、医疗、安防等领域中的数据处理都可以通过ai神经网络来完成,需要分析处理的数据越多,神经网络运算负荷就越大。以智能驾驶场景为例,等级较高的智能驾驶车辆为了实现对周围环境的全面感知往往配备多个摄像头、激光雷达、超声波雷达等传感器,由此产生大量需要处理的信息,且智能驾驶车辆对神经网络推理计算的实时性要求很高,神经网络的推理计算若有滞后,则无法及时提供环境信息给后续的规控决策,降低智能驾驶的安全性。而传统中央处理器(central processing unit,cpu)无法负担如此庞大的神经网络的推理计算,因此,人工智能芯片被用作硬件加速单元专门进行神经网络的推理计算,ai芯片在执行神经网络的推理计算时相较于传统芯片更快速更节能,目前常用的ai芯片包括图形处理器(graphics processing unit,gpu)、现场可编程门阵列(field programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)。
3.智能驾驶汽车运行在外部环境中,可能遭遇各种恶劣天气和电磁干扰等问题,这要求智能驾驶系统的计算平台具有极高可靠性。cpu、内存等传统器件具有程序流监控、数据流监控、内存校验(error checking and correction,ecc)、奇偶校验等检错容错机制保障cpu和内存中的数据不受软失效的影响。对于ai芯片,为了实现其高速的运算,ai芯片内部一般没有有效的检错机制,并且由于ai芯片与cpu等传统芯片的计算架构不同,传统芯片的检错机制并不能直接应用于ai芯片。
4.为了保障智能驾驶的安全,计算平台需要满足汽车安全完整性等级(automotive safety integrity level,asil)的要求,需要一种检错方法对ai芯片进行实时性检测,从而保障ai芯片的应用满足应用场景的需求。


技术实现要素:

5.本技术提供一种ai计算的校验方法和装置,校验方法可以由处理ai计算的计算单元之外的其他计算单元执行,不会对ai计算的处理造成影响,相比于冗余校验,本技术实施例的ai计算的校验方法具有极小的计算量,对用于校验的计算单元性能要求低,相应地降低了硬件成本,为ai芯片的可靠性提供了保障。
6.第一方面,提供了一种ai计算的校验方法,方法由第一计算单元执行,方法包括:获取第二计算单元处理ai计算的ai模型的参数,ai模型包括一个或多个第一处理层;对一个或多个第一处理层中的每一个第一处理层分别执行以下校验处理得到一个或多个第一处理层中的每一个第一处理层的校验标记位:从第二计算单元获取第一处理层的输入数
据;基于ai模型的参数和第一处理层的输入数据对第一处理层进行校验处理,以得到第一处理层的校验标记位,其中,对第一处理层的校验处理的计算量小于第二计算单元通过第一处理层处理输入数据的计算量;基于校验结果确定第二计算单元处理ai计算的输出结果是否正确,校验结果包括一个或多个第一处理层中的每一个第一处理层的校验标记位。
7.本技术实施例的ai计算的校验方法由执行ai计算的计算单元之外的其他计算单元执行,相比于周期性运行自检库的校验方法,本技术实施例的ai计算的校验方法不会干扰ai模型的推理计算的正常进行,因此不会影响ai计算单元的加速性能,也避免了同一个ai计算单元在执行ai计算时又执行校验,在保证ai模型输出结果的正确性的同时保证ai模型的推理计算的实时性,并且由于校验处理的计算量小于ai计算,因此对用于校验处理的计算单元的性能要求可以不高于用于ai计算的计算单元,相比于冗余计算单元进行校验,本技术实施例提供的异构校验方式可以节省功耗,降低成本。
8.在某些可能的实现方式中,ai模型还包括一个或多个第二处理层,方法还包括:对一个或多个第二处理层中的每一个第二处理层分别进行冗余校验得到一个或多个第二处理层中的每一个第二处理层的校验标记位;校验结果还包括一个或多个第二处理层中的每一个第二处理层的校验标记位。
9.第二处理层包括池化层和激活层等,由于池化计算和激活计算只占用极少部分的资源,因此即便使用冗余校验也不会消耗过多的资源。
10.在某些可能的实现方式中,ai模型的参数包括权重矩阵,第一处理层的输入数据包括特征图矩阵,基于ai模型的参数和第一处理层的输入数据对第一处理层进行校验处理,以得到第一处理层的校验标记位,包括:
11.获取第一校验标记位,第一校验标记位是对权重矩阵进行第一校验计算得到的;获取第二校验标记位,第二校验标记位是对特征图矩阵进行第二校验计算得到的;根据第一校验标记位和第二校验标记位获取计算前校验标记位;从第二计算单元获取输出矩阵,输出矩阵为第二计算单元在第一处理层对权重矩阵和特征图矩阵进行计算得到;对输出矩阵进行第三校验计算,以得到计算后校验标记位;根据计算前校验标记位和计算后校验标记位获取校验标记位。
12.上述权重矩阵和特征图矩阵可以离线计算得到,并保存在内存中。且上述获得不同标记位的矩阵计算不同。本技术实施例的ai计算的校验方法针对ai模型中的不同处理层设计了不同的校验方式,最大限度节约了计算资源,使得校验可以在计算能力较低的计算单元中进行,降低了校验的成本。
13.在某些可能的实现方式中,校验标记位表示计算前校验标记位和计算后校验标记位是否一致,基于校验结果确定第二计算单元处理ai计算的输出结果是否正确,包括:如果校验结果中存在至少一个校验标记位表示计算前校验标记位和计算后校验标记位不一致,则输出结果不正确。
14.在某些可能的实现方式中,第一处理层为卷积层或全连接层。多个第一处理层可以包括多个卷积层,或,多个全连接层,或,一个或多个卷积层和一个或多个全连接层。
15.在某些可能的实现方式中,当判断输出结果不正确时,第二计算单元的状态包括瞬态失效和永久性失效。
16.在某些可能的实现方式中,当判断输出结果不正确时,方法还包括:通过运行自检
库确定第二计算单元的状态为瞬态失效或永久性失效。
17.在某些可能的实现方式中,方法还包括:当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
18.本技术实施例的ai计算的校验方法在确定了硬件失效后还可以进一步判断硬件的具体失效状态,若计算单元只是发生瞬态失效,则可以继续使用该计算单元,从而避免资源的浪费,提升了ai芯片的可用性。
19.第二方面,提供了一种ai计算的校验方法,其特征在于,方法由第一计算单元执行,方法包括:获取第二计算单元处理ai计算的ai模型的输出结果的校验结果,校验结果为判定输出结果不正确;运行自检库确定第二计算单元的状态为瞬态失效或永久性失效。
20.在某些可能的实现方式中,运行自检库确定第二计算单元的状态为瞬态失效或永久性失效,包括:当运行自检库的运行结果为没有故障时,第二计算单元的状态为瞬态失效;当运行自检库的运行结果为有故障时,第二计算单元的状态为永久性失效。
21.在某些可能的实现方式中,方法还包括:当第二计算单元的状态为瞬态失效时,舍弃输出结果;当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
22.本技术实施例的ai计算的校验方法通过cpu执行系统调度,调用自检库对出现硬件失效的ai核进行自检,判断ai核是发生永久性失效还是瞬态失效,如果自检没有发现故障,则说明ai核发生了瞬态失效,不影响后续的计算,该ai核可以继续参与系统运算。如果自检发现了故障,说明ai核发生了永久性失效,那么该ai核不能继续参与运算,需要进行故障上报。避免了将发生了失效的ai核直接停用,降低了资源的浪费,提升了ai芯片的可用性。
23.第三方面,提供了一种ai计算的校验装置,装置包括:收发单元,用于获取第二计算单元处理ai计算的ai模型的参数,ai模型包括一个或多个第一处理层;对一个或多个第一处理层中的每一个第一处理层分别执行以下校验处理得到一个或多个第一处理层中的每一个第一处理层的校验标记位:收发单元还用于,从第二计算单元获取第一处理层的输入数据;处理单元,用于基于ai模型的参数和第一处理层的输入数据对第一处理层进行校验处理,以得到第一处理层的校验标记位,其中,对第一处理层的校验处理的计算量小于第二计算单元通过第一处理层处理输入数据的计算量;处理单元还用于基于校验结果确定第二计算单元处理ai计算的输出结果是否正确,校验结果包括一个或多个第一处理层中的每一个第一处理层的校验标记位。
24.在某些可能的实现方式中,ai模型还包括一个或多个第二处理层,处理单元还用于:对一个或多个第二处理层中的每一个第二处理层分别进行冗余校验得到一个或多个第二处理层中的每一个第二处理层的校验标记位;校验结果还包括一个或多个第二处理层中的每一个第二处理层的校验标记位。
25.在某些可能的实现方式中,ai模型的参数包括权重矩阵,第一处理层的输入数据包括特征图矩阵,处理单元具体用于:获取第一校验标记位,第一校验标记位是对权重矩阵进行第一校验计算得到的;获取第二校验标记位,第二校验标记位是对特征图矩阵进行第二校验计算得到的;根据第一校验标记位和第二校验标记位获取计算前校验标记位;从第二计算单元获取输出矩阵,输出矩阵为第二计算单元在第一处理层对权重矩阵和特征图矩阵进行计算得到;对输出矩阵进行第三校验计算,以得到计算后校验标记位;根据计算前校
验标记位和计算后校验标记位获取校验标记位。
26.在某些可能的实现方式中,校验标记位表示计算前校验标记位和计算后校验标记位是否一致,处理单元具体用于:如果校验结果中存在至少一个校验标记位表示计算前校验标记位和计算后校验标记位不一致,则输出结果不正确。
27.在某些可能的实现方式中,第一处理层为卷积层或全连接层。
28.在某些可能的实现方式中,当判断输出结果不正确时,第二计算单元的状态包括瞬态失效和永久性失效。
29.在某些可能的实现方式中,当判断输出结果不正确时,处理单元还用于:通过运行自检库确定第二计算单元的状态为瞬态失效或永久性失效。
30.在某些可能的实现方式中,收发单元还用于:当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
31.第四方面,提供了一种ai计算的校验装置,该装置包括:收发单元,用于获取第二计算单元处理ai计算的ai模型的输出结果的校验结果,校验结果为判定输出结果不正确;处理单元,用于运行自检库确定第二计算单元的状态为瞬态失效或永久性失效。
32.在某些可能的实现方式中,当运行自检库的运行结果为没有故障时,第二计算单元的状态为瞬态失效;当运行自检库的运行结果为有故障时,第二计算单元的状态为永久性失效。
33.在某些可能的实现方式中,装置还用于:当第二计算单元的状态为瞬态失效时,舍弃输出结果;当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
34.第五方面,提供了一种芯片,包括第一计算单元,第一计算单元用于执行上述第一方面和第二方面中任一中可能的实现方式中的方法。
35.在某些可能的实现方式中,芯片还包括第二计算单元,第二计算单元用于执行ai计算。
36.第六方面,提供了一种计算机可读介质,其特征在于,计算机可读介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述第一方面和第二方面中任一中可能的实现方式中的方法。
37.第七方面,提供了一种计算设备,包括第一计算单元和第二计算单元,第二计算单元用于基于ai模型处理ai计算,第一计算单元执行上述第一方面和第二方面中任一中可能的实现方式中的方法。
38.在某些可能的实现方式中,第一计算单元的处理能力小于或等于第二计算单元的处理能力。
39.在某些可能的实现方式中,第一计算单元为ai芯片中的计算单元、cpu芯片中的计算单元或gpu芯片中的计算单元中的至少一种,第二计算单元为ai芯片中的计算单元。
附图说明
40.图1是本技术实施例的周期性运行自检库的校验方法的示意图;
41.图2是本技术实施例的ai计算的校验方法的一种可能的应用的系统架构示意图;
42.图3是本技术实施例的ai计算的校验方法应用于智能驾驶计算平台时可能涉及的硬件单元的示意图;
43.图4是本技术实施例的ai计算的校验方法应用的系统架构图;
44.图5是本技术实施例的ai计算的校验方法的示意性流程图;
45.图6是本技术实施例的计算离线校验标记位的示意图;
46.图7是本技术实施例的计算特征图校验标记位的示意图;
47.图8是本技术实施例的计算计算前校验标记位的示意图;
48.图9是本技术实施例的ai模型对数据进行处理的示意图;
49.图10是本技术实施例的计算计算后校验标记位的示意图;
50.图11是本技术实施例的计算校验标记位的示意图;
51.图12是本技术实施例的检测到第二计算单元发生失效后进一步检测其具体失效状态的示意图;
52.图13是本技术实施例的判断第二计算单元的具体失效状态的示意图;
53.图14是本技术实施例的另一种ai计算的校验方法的示意性流程图;
54.图15本技术实施例提供的ai计算的校验装置的示意性框图;
55.图16是本技术实施例的一种ai计算的校验设备的示意性结构图。
具体实施方式
56.下面将结合附图,对本技术中的技术方案进行描述。
57.目前ai芯片中并没有专门的校验机制对神经网络的推理计算结果进行校验,其中神经网络的推理计算属于ai计算,但神经网络的推理计算结果的正确性保障却十分有必要,例如在智能驾驶或智能驾驶的场景中,如果根据神经网络输出的错误的计算结果执行了错误的决策,会给驾驶带来巨大的危险。因此为了保证神经网络的推理计算结果的正确性,目前业界提出了的一些校验方法,包括冗余校验和周期性运行自检库(self-test library,stl)的校验方法。冗余校验又包括双重冗余(dual module redundancy,dmr)和三重冗余(triple module redundancy,tmr)等,是指使用两倍或三倍数量的相同计算芯片或计算单元同时执行相同的计算,然后对比计算结果,若计算结果一致则说明计算结果正确,若计算结果有不一致则说明计算结果错误。冗余校验理论上可以实现对神经网络输出结果的校验,但是同时会带来双倍或三倍的成本增加。
58.下面结合图1对stl的校验方法进行介绍。图1中的(a)图示出了一个ai芯片中的一个ai核按照时间顺序依次执行4次ai计算的示意图,每次ai计算即运行一次神经网络进行推理计算,并得到输出结果。为了保障输出结果的准确性,需要对计算结果进行检测。图1中的(b)图示出了使用stl检测方法对4次ai计算进行检测,其中stl检测为周期性的,在理想情况下,stl检测的周期与执行一次ai计算的时间相同,即每次ai计算后都进行一次stl检测,当且仅当stl检测结果为正常时,才继续执行下一次ai计算。图1中的(c)图示出了stl检测出硬件失效的情况,如(c)图所示,在第3个检测周期时,进行stl检测发现ai芯片发生了永久性失效,则该ai芯片不再进行ai计算,并且将故障上报。
59.由上述介绍可知,stl检测存在一些不足,首先,stl检测为周期性进行,检测周期是固定的,但ai计算的时间是不确定的,例如预设的检测周期为10毫秒,但某一次的ai计算时间可能超过10毫秒,因此运行stl检测时可能会打断ai计算过程,导致决策延迟,并且执行stl检测时需停止ai计算,无法保证决策的实时性。此外,在预设的检测周期为10毫秒的
情况下,ai计算时间可能少于10毫秒,例如图1的(c)图中的第3个检测周期中,在一个检测周期中ai计算进行了两次,在第3个检测周期中检测到ai芯片失效,该失效可能发生在第3个检测周期中的第一次ai计算中,但stl检测没有及时检测到,使得错误的计算结果产生的错误决策,可能对设备的使用安全性造成威胁。再者,stl检测主要识别永久性失效,对于瞬态失效的检测较弱,如果发生了瞬态失效,stl检测也会将瞬态失效判定为永久性失效,进而进行故障上报,然而ai芯片包括大量乘加计算单元,因此ai芯片面积占比较大,理论上受到高能粒子冲击的概率也较高,因此ai芯片发生瞬态失效的概率比发生永久性失效的概率更高,而stl检测将瞬态失效判定为永久性失效进行故障上报,系统则会停用该被上报的ai芯片,浪费硬件资源,降低系统的可用性。
60.因此本技术实施例提供一种ai计算的校验方法,该校验方法可以由处理ai计算的计算单元之外的其他计算单元执行,不会对ai计算的处理造成影响;校验与神经网络的推理计算同步进行,使得神经网络的计算结果具有正确性和实时性;相比于冗余校验,本技术实施例的ai计算的校验方法具有极小的计算量,对用于校验的计算单元性能要求低,相应地降低了硬件成本,为ai芯片的可靠性提供了保障。
61.本技术实施例的ai计算的校验方法可以应用于任何神经网络推理计算的场景中,包括:对神经网络推理计算的安全性要求较高的场景,例如在5g智慧工业中会将海量工业数据通过ai神经网络进行分析、处理和优化,这就需要更加安全可靠的神经网络的推理计算,因此本技术实施例的ai计算的校验方法可以应用于5g智慧工业中,如控制设备,服务器等部署有ai芯片的设备,以提高神经网络推理计算的可靠性;需要大规模部署ai芯片的场景,例如云计算的服务器、智能安防摄像头、智能驾驶车辆,终端设备等,这些设备规模大、运行时间长,容易发生硬件失效,而硬件失效对ai芯片的计算结果的准确性和系统的可用性都会造成不利影响,降低用户的体验,因此本技术实施例的ai计算的校验方法可以应用于云计算的服务器、智能安防摄像头、智能驾驶车辆中,实时校验ai计算结果的正确性;存在大量矩阵运算的场景,例如智能手机和智能电视等智能设备中通常会配备图形处理单元(gpu),考虑到成本这类图形处理单元在涉及时工艺要求较低,因而失效率很高,且通常不具备任何检错能力,但同时配备了这类图形处理单元的设备需要处理大量的图像数据,处理过程中以矩阵运算为主,当发生失效时体现在智能手机或智能电视中可能是图像乱码等,降低用户使用感受,因此本技术实施例的ai计算的校验方法作为一种低成本的校验方法可以应用于配备了上述图形处理单元的智能设备中,降低硬件失效对数据处理的影响,提高用户体验。
62.图2示出了本技术实施例的ai计算的校验方法应用时可能涉及的硬件单元,包括ai芯片、cpu芯片、内存芯片、总线和gpu等。如图2所示,神经网络推理计算由ai芯片执行,ai芯片可以包括一个或多个ai核,ai计算可以由ai芯片中的每个ai核执行,ai核为ai芯片中进行推理计算的最小运算单元,因此ai核可称为ai计算单元,片内存储单元用于缓存ai计算的ai模型的参数、中间计算结果以及推理计算结果,各个ai核与片内存储单元之间通过总线连接。cpu和gpu也可以分别包括1个或多个计算单元。
63.本技术的神经网络计算的校验方法对神经网络的每一次计算进行校验,其中每一次校验可以由ai芯片的ai核执行,也可以由cpu芯片或者gpu中的计算单元执行,校验结果存储在内存芯片中,最后cpu芯片读取内存芯片中的校验结果,进行逻辑判断,确定神经网
络的计算结果是否正确。ai芯片、cpu芯片、内存芯片、gpu之间通过总线连接。
64.以智能驾驶的场景为例,图3示出了本技术实施例的ai计算的校验方法的一种应用的系统架构,如图3所示,对于智能驾驶车辆,需要将摄像头、激光雷达、超声波雷达等传感器获取的数据经过智能驾驶计算平台的计算,从而生成一系列的执行指令,并发送给具体的执行器执行,例如转向执行器根据执行指令控制车辆转向、油门执行器控制车辆加速、刹车执行器控制车辆减速等。如果智能驾驶计算平台发生计算结果错误,产生了错误的执行指令,执行器根据错误的执行指令执行会造成驾驶危险,因此对智能驾驶计算平台中神经网络的推理计算进行校验尤为必要,本技术的ai计算的校验方法可应用于图3中的智能驾驶计算平台中,对智能驾驶计算平台中神经网络的推理计算进行校验,以保证计算结果的正确性,保障智能驾驶的安全性。图3中的智能驾驶计算平台包括图2所示的硬件单元。
65.图4示出了本技术实施例的ai计算的校验方法应用的系统架构图,如图4所示,本技术实施例中的ai计算的校验方法为异构并行校验方法,是相对于传统的冗余校验计算而言。冗余的校验计算是通过执行和被校验的处理相同的计算,比对计算结果确定被校验的处理是否正确。对于图4中被校验的ai计算单元而言,采用另一用于校验的ai计算单元对输入数据执行相同的卷积计算,池化,激活以及全连接计算输出计算结果,通过比较两个ai计算单元的计算结果确定被校验的ai计算单元处理是否正确。这一方式要求用于校验的ai计算单元处理能力和被校验的ai计算单元相同或高于被校验的ai计算单元。本技术实施例中的ai计算的校验方法为异构并行校验方法,异构是采用了与被校验计算不同的计算处理进行校验,例如,针对神经网络内部不同结构卷积、全连接、池化、归一化等设计不同的校验方式,计算是异构的。由于计算是异构的,用于校验的计算单元也可以不同于被校验的ai计算单元,用于校验的计算单元和被校验的ai计算单元可以是不同结构,不同能力的硬件。本技术实施例中异构并行校验可以是不同于被校验的ai计算的计算处理,这种情况下,用于校验的计算单元可以和被校验的ai计算单元相同。本技术实施例中异构并行校验还可以不仅采用不同于被校验的ai计算的计算处理,用于校验的计算单元和被校验的ai计算单元结构或处理能力不同。例如,对ai计算的异构并行校验可以由ai计算单元执行,也可以由其他计算单元执行,这里执行ai推理计算的校验的计算单元均记为异构计算单元,其中异构计算单元的算力可以与执行ai推理计算的计算单元的算力相同,也可以比执行ai推理计算的计算单元的算力更低,这是由于本技术实施例的神经网络计算的校验方法对ai计算的校验所消耗的资源远小于ai计算所消耗的计算资源,因此可以在算力较低的普通的计算单元中执行,例如gpu计算单元或算力较小cpu等,由此降低了校验的门槛,节约了成本。并行是指在ai计算的过程中即对神经网络中的每一次计算进行校验,以生成校验标记位,这里的神经网络的每一次计算是指神经网络的每一个处理数据的处理层对数据进程处理时所做的计算,当神经网络计算完成输出计算结果后,即可根据所有的校验标记位对计算结果进行判断,确定计算结果是否正确,无需停止ai计算,且校验具有实时性,以满足应用场景中对神经网络推理计算的实时性要求。以下结合图4对本技术实施例的ai计算的校验方法进行具体介绍。
66.首先ai计算单元正常执行神经网络的推理计算,当待处理的数据输入ai计算单元后,经过预处理,数据以张量的形式被输入到ai核中,同时神经网络模型也被加载到ai核中。神经网络模型具有不同的结构,待处理的数据经过神经网络模型中多个处理层进行处
理得到推理结果并输出。神经网络模型中处理层按结构分可以包括卷积层,池化层,激活层和全连接层。通常神经网络模型可以包含多个处理层,例如,一个或多个卷积层,一个或多个池化层,一个或多个激活层,一个或多个全连接层。其中,卷积层和全连接层的计算体现为矩阵的乘法,当矩阵维度较高时,矩阵乘法运算引入的计算量较大,会消耗较多的计算资源。
67.图4以一种具有典型结构的神经网络模型为例进行说明,该神经网络模型包括卷积层、池化层、激活层和全连接层,应理解,本技术实施例的ai计算的校验方法并不限于图4中的神经网络模型的结构,对于其他结构的神经网络模型也适用,每种结构也可以有多个相同的处理层。预处理后的数据经过卷积层、池化层、激活层和全连接层的计算得到输出的计算结果,然后ai核将输出的计算结果传递给cpu,由cpu根据该计算结果执行相应的决策。由上述过程可知,传统的神经网络的推理计算的过程并不包括校验机制,传递给cpu的计算结果的正确性无法保证。本技术实施例的ai计算的校验方法可以对神经网络的推理计算进行校验,以保证输出的计算结果的正确性,避免cpu根据错误的计算结果执行错误的决策而导致严重后果。
68.不同于冗余校验中对神经网络的推理计算进行一次或多次重复计算,也不同于运行自检库的校验方法中在神经网络的推理计算结束后再进行校验,异构计算单元根据本技术实施例的ai计算的校验方法对ai核中神经网络中的一次或多次计算进行同步校验,如图4所示,对卷积层的第一次卷积计算进行校验得到校验标记位1,而卷积层可能有进行多次卷积计算,因此对卷积层的第二次卷积计算进行校验得到校验标记位2,对卷积层的第三次卷积计算进行校验得到校验标记位3
……
对池化层的第一次计算进行校验得到校验标记位2a,其中a为正整数,对池化层的第二次计算进行校验得到校验标记位2a+1
……
对激活层的第一次计算进行校验得到校验标记位3b,其中b为正整数,对激活层的第二次计算进行校验得到校验标记位3b+1
……
对全连接层的第一次计算进行校验得到校验标记位3c,其中c为正整数,对全连接层的第二次计算进行校验得到校验标记位3c+1
……
以此类推。以上校验具有实时性,且不会干扰神经网络的正常的推理计算过程。当神经网络的推理计算完成输出计算结果时,神经网络中的一次或多次计算的同步校验也完成,生成一个或多个校验标记位存储在内存中,cpu根据内存中的一个或多个校验标记位对输出结果进行校验,根据该一个或多个校验标记位即可判定神经网络输出的计算结果是否正确。同时本技术实施例的ai计算的校验方法针对神经网络内部的不同结构设计不同的校验方式,如图4所示,对于卷积层、全连接层等因为矩阵的乘运算而消耗计算资源较多的处理层使用矩阵计算校验方式,例如降维度的矩阵计算进行校验,包括使用向量和矩阵的乘运算,或者向量乘运算进行校验,矩阵计算的计算量相对于冗余校验方式下矩阵的乘运算的计算量而言低,其中冗余校验是指对相应处理层执行相同的计算。由于神经网络中99%以上的计算量都是由卷积层、全连接层等结构中的矩阵乘运算带来的,剩下不到1%的计算量是由池化层、激活层等结构中的运算带来的,因此对消耗大多数计算资源的卷积层、全连接层等结构中的矩阵乘运算使用计算量相对较低的方式校验,可以极大减小对神经网络的推理计算校验的计算量。对于消耗极小部分计算资源的池化层、激活层等结构中的运算仍可使用冗余校验简化校验的处理方式,当然也可以使用计算量小的校验方式,进一步减小对神经网络的推理计算校验的计算量。
69.根据本技术实施例的ai计算的校验方法,在神经网络完成推理计算输出计算结果后,神经网络中的一次或多次计算的同步校验也完成,并生成了一个或多个校验标记位,cpu读取内存中的一个或多个校验标记位,根据该一个或多个校验标记位判定神经网络输出的计算结果是否正确,如果判定计算结果正确,则执行相应的决策,如果判定计算结果不正确,则上报故障。
70.图5示出了本技术实施例的ai计算的校验方法的示意性流程图,如图5所示包括步骤501至步骤504,以下分别介绍。
71.s501,获取第二计算单元处理ai计算的ai模型的参数,ai模型包括一个或多个第一处理层。
72.第二计算单元为执行神经网络推理计算的ai核,图5所示的ai计算的校验方法由第一计算单元执行,第一计算单元可以与第二计算单元并非同一计算单元,第一计算单元可以是第二计算单元所在的ai芯片上的另一ai核,或者第二计算单元所在的ai芯片上的其他算力更低的计算单元,该其他计算单元可以是为ai加速设计,也可以不是为ai加速设计,第一计算单元也可以是其他ai芯片上的计算单元,第一计算单元还可以是cpu芯片中的cpu核等,其中cpu核为cpu芯片中的最小的计算单元。在一种可能的实现方式中,第一计算单元也可以与第二计算单元为同一计算单元,即该计算单元既执行ai计算,又同时执行本技术实施例的ai计算的校验方法。
73.由于第二计算单元执行神经网络的推理计算,因此所需的ai模型被加载到第二计算单元中,ai模型可以包括一个或多个处理层用于对输入ai模型的数据进行处理,其中第一处理层消耗的计算资源较大,对于具有典型结构的卷积神经网络模型时,可以是卷积层或者全连接层。ai模型中可以包括一个或多个第一处理层,例如,ai模型可以包括卷积层和全连接层,ai模型也可以包括多个卷积层和多个全连接层。上述均为举例说明,并不以此为限制。当然第一处理层还可以是池化层或激活层。
74.第一计算单元可以从第二计算单元中获取ai模型的参数,ai模型的参数包括权重、偏置等,例如,可以是权重矩阵。ai模型的参数可以是离线训练好后保存在系统内存中的。第一计算单元也可以从系统内存中获取ai模型的参数。
75.对一个或多个第一处理层中的每一个第一处理层执行步骤s502至s503:
76.s502,从第二计算单元获取第一处理层的输入数据。
77.第一计算单元从第二计算单元获取第一处理层的输入数据,依然以s501中的具有典型结构的卷积神经网络模型对图像数据进行处理为例,当第一处理层为卷积层时,第一处理层的输入数据即为经过预处理的图像数据;当第一处理层为全连接层时,第一处理层的输入数据即为激活层的输出数据。
78.s503,基于ai模型的参数和所述第一处理层的输入数据对第一处理层进行校验处理,以得到第一处理层的校验标记位,其中,对第一处理层的校验处理的计算量小于第二计算单元通过第一处理层处理输入数据的计算量。
79.具体的,ai模型的第一处理层中以卷积层和全连接层为例,对数据的处理都会转换为矩阵计算,因此上述获取的ai模型的参数包括ai模型的权重矩阵,获取的第一处理层的输入数据包括特征图矩阵。其中,权值矩阵包括多个行向量或多个列向量,特征图矩阵包括多个行向量或多个列向量,每个向量包括多个元素。矩阵的维度可以是矩阵的行数或列
数,维度越高,矩阵计算的复杂度越高,消耗的计算资源也越高。本技术实施例的ai计算的校验方法使用降维度的矩阵计算校验的方式对第一处理层的计算进行校验处理,以得到第一处理层的校验标记位,例如,可以通过一个或多个相对于权值矩阵或者特征图矩阵的行数或列数少的矩阵进行计算。一种可能的实现方式如下:
80.首先,第一计算单元对权重矩阵进行第一校验计算,以得到第一校验标记位。由于ai模型的参数是离线训练好之后保存在系统内存中的,因此对参与数据处理的ai模型的参数可以采用离线的方式进行校验计算,也就是说第一校验标记位可以是离线校验标记位。第一校验计算可以采用相对于特征图矩阵的降维度矩阵,行数或列数小于特征图矩阵的矩阵,与权重矩阵进行矩阵乘计算得到第一校验标记位。如图6中所示,将全1行向量与ai模型的权重矩阵进行矩阵乘运算,从而可以得到对于权重矩阵的离线校验标记位(offline checkpoint,oc)。计算得到的离线校验标记位oc可以存储在内存中,在后续校验过程中可以读取使用。应理解,本技术实施例中矩阵乘运算应当满足左矩阵列数与右矩阵行数相同,即图6中全1向量的列数应该等于权重矩阵的行数,本技术实施例中的其他矩阵乘运算也应该满足此规则。这里全1行向量只有1行,从行数这个维度来看是小于特征图矩阵的行数的,全1行向量和权重矩阵的矩阵运算相对于权重矩阵与特征图矩阵的矩阵计算而言是降维度矩阵计算。需要说明的是,此处仅为举例,并不限于此。
81.以s501中的具有典型结构的卷积神经网络模型对图像数据进行处理为例,如图7所示,在每一帧图像输入第二计算单元后会转换为特征图矩阵(feature matrix),第一计算单元对特征图矩阵进行第二校验运算,以得到第二校验标记位,也可以称之为特征图校验标记位(checkpoint feature map matrix,cf)。第二校验计算可以采用相对于权重矩阵的降维度矩阵,行数或列数小于权重矩阵的矩阵,与特征图矩阵进行矩阵计算得到第二校验标记位。如图7所示,将特征图矩阵与全1列向量进行矩阵乘运算,从而得到特征图校验标记位。这里全1列向量只有1列,从列数这个维度来看是小于权重矩阵的列数的,全1列向量和特征图矩阵的矩阵运算相对于权重矩阵与特征图矩阵的矩阵计算而言是降维度矩阵计算。需要说明的是,此处仅为举例,并不限于此。
82.第一计算单元根据第一校验标记位(离线校验标记位oc)和第二校验标记位(特征图校验标记位cf)获取计算前校验标记位。如图8所示,将离线校验标记位oc和特征图校验标记位cf进行向量乘运算,从而得到计算前校验标记位(check bit in,cb_in)。
83.图9示出了第二计算单元将权重矩阵和特征图矩阵进行卷积运算,以得到输出矩阵,该计算过程为ai模型中第一处理层对数据的正常处理过程,而非校验过程。
84.以下对卷积层中的卷积运算做简要介绍,卷积运算由卷积算子执行,卷积层可以包括很多个卷积算子,卷积算子也称为卷积核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使
用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络进行正确的预测。
85.第一计算单元从第二计算单元获取输出矩阵,然后对输出矩阵进行第三校验计算(也为矩阵乘计算),以得到计算后校验标记位。具体如图10所示,使用全1矩阵与输出矩阵进行卷积运算,其中全1矩阵应该满足其列数与输出矩阵的行数相同,方可进行矩阵乘计算,由此可以得到计算后校验标记位(check bit out,cb_out)。
86.第一计算单元根据计算前校验标记位cb_in和计算后校验标记位cb_out获取校验标记位(check bit,cb),校验标记位可以通过cb_in和cb_out相减得到,也可以通过cb_in和cb_out相除得到,目的是为了对比cb_in和cb_out之间的差异。
87.图4中对卷积层和全连接层采用上述图6至图11的矩阵计算校验方式,得到的校验标记位cb即为图4中的校验标记位1和校验标记位4c。
88.s504,基于校验结果确定ai模型的输出结果是否正确,校验结果包括根据步骤s502至s503得到的一个或多个第一处理层的校验标记位。
89.校验标记位表示计算前校验标记位和计算后校验标记位是否一致,如果校验结果中存在至少一个校验标记位表示计算前校验标记位和计算后校验标记位不一致,则输出结果不正确。图11中以cb_in和cb_out相减得到校验标记位cb为例,由于cb_in由离线校验标记位oc和特征图校验标记位cf得到,表示输出矩阵理论上的矩阵计算校验结果,而cb_out为输出矩阵实际上的矩阵计算校验结果,如果cb为0,则cb_in和cb_out相同,则说明输出矩阵理论上的矩阵计算校验结果与输出矩阵实际上的矩阵计算校验结果相同,第一处理层在根据权重矩阵和特征图矩阵进行计算的过程中没有发生错误;反之,如果cb不为0,则cb_in和cb_out不相同,则说明输出矩阵理论上的矩阵计算校验结果与输出矩阵实际上的矩阵计算校验结果不相同,第一处理层在根据权重矩阵和特征图矩阵进行计算的过程中发生错误。
90.根据图6至图11的过程可以得到一个或多个第一处理层的校验标记位,记为校验结果。可知,如果校验结果中有至少一个校验标记位表示计算前校验标记位和计算后校验标记位不一致,例如一个或多个第一处理层的校验标记位有至少一个非0值,则说明该校验标记位对应的第一处理层在根据权重矩阵和特征图矩阵进行计算的过程中发生错误,则ai模型最后输出的计算结果不正确;如果校验结果中所有校验标记位表示计算前校验标记位和计算后校验标记位不均一致,例如一个或多个第一处理层的校验标记位均为0值,则说明一个或多个第一处理层在根据权重矩阵和特征图矩阵进行计算的过程中均没有发生错误,则ai模型最后输出的计算结果正确。
91.可选的,上述一个或多个第一处理层的校验标记位存储在内存中,当ai模型输出
计算结果后,由cpu读取内存中的一个或多个第一处理层的校验标记位,然后根据该一个或多个第一处理层的校验标记位判断ai模型输出计算结果是否正确。如果判断ai模型输出计算结果正确,则执行相应的决策,例如图2中根据智能驾驶计算平台的计算,从而生成一系列的执行指令,执行器根据执行指令控制车辆转向、加速、减速等;如果判断ai模型输出计算结果不正确,则上报第二计算单元发生故障。
92.图6至图11所示的降维度的矩阵计算进行校验(以下简称矩阵计算校验)的方式可以用于对卷积层和全连接层的计算的校验,这是由于卷积计算和全连接计算均会转换为矩阵计算,适用降维度的矩阵计算进行校验的方式。
93.而对于ai模型中不适用降维度的矩阵计算进行校验的方式校验的一个或多个第二处理层,本技术实施例的ai计算的校验方法还包括,对一个或多个第二处理层中的每一个第二处理层进行冗余校验,以得到第二处理层的校验标记位,由此上述校验结果还包括一个或多个第二处理层的校验标记位,在判断ai模型输出计算结果是否正确时需要结合一个或多个第一处理层的校验标记位和一个或多个第二处理层的校验标记位综合判断。具体的,冗余校验即为前述在另一块芯片或者另一个计算单元上根据相同的输入数据和相同的ai模型,执行一个或多个第二处理层的相同计算,然后比较一个或多个第二处理层原计算结果和冗余计算结果是否一致,从而得到一个或多个第二处理层的校验标记位,一个或多个第二处理层的校验标记位可以是一个或多个第二处理层原计算结果和冗余计算结果的差或者商。如果一个或多个第二处理层原计算结果和冗余计算结果一致,则说明一个或多个第二处理层在处理数据时并未发生错误;如果一个或多个第二处理层的原计算结果和冗余计算结果不一致,则说明一个或多个第二处理层在处理数据时发生错误,则会导致ai模型最终输出的计算结果错误。由于池化计算和激活计算只占用极少部分的资源,因此即便使用冗余校验也不会消耗过多的资源。当原计算结果和冗余计算结果不一致,则判定第二处理层处理数据时发生错误,而不是冗余计算发生错误的根据可以是,在冗余校验中,可以设定只要当原计算结果和冗余计算结果不一致,则判定原计算发生错误;或者,由普通芯片或普通计算单元执行原计算,由高可靠性芯片或高可靠性计算单元执行冗余计算,当原计算结果和冗余计算结果不一致时,由于执行冗余计算的芯片或计算单元可靠性更高,因此发生错误的可能性较低,而执行原计算的芯片或计算单元可靠性较低,因此发生错误的可能性更高,因此当原计算结果和冗余计算结果不一致,认为是原计算发生错误。
94.当判定ai模型的输出结果不正确时,则说明第二计算单元所在的ai芯片发生了失效,具体包括瞬态失效和永久性失效,其中瞬态失效只会对发生瞬态失效时的那一次计算造成影响,但对之后的计算不造成影响,而永久性失效则会对发生永久性失效后的所有计算都造成影响,如果不区分瞬态失效和永久性失效,进行故障上报后,根据系统的安全机制,被检测到发生失效的第二计算单元均会被直接停用,即使发生瞬态失效的第二计算单元还可以继续使用也会被停用,造成资源浪费,降低了系统的可用性。
95.因此本技术实施例的ai计算的校验方法还包括,当根据图5中的方法判定ai模型的输出结果为不正确时,通过运行自检库确定发生失效的第二计算单元的状态为瞬态失效或永久性失效。如图12所示,当第二计算单元在进行ai计算时,第一计算单元同步进行异构并行校验,当判定ai模型的输出结果错误,即检测到第二计算单元发生失效后,则运行自检库判断第二计算单元是发生了瞬态失效还是永久性失效,如果判断第二计算单元是发生了
瞬态失效,则舍弃该次ai模型的输出结果,继续使用该第二计算单元进行ai计算,如果判断第二计算单元是发生了永久性失效,则上报第二计算单元的发生故障。
96.图13示出了本技术实施例的ai计算的校验方法判断第二计算单元的具体失效状态的示意图,如图13所示,cpu根据内存中的多个校验标记位判断ai模型的输出结果是否有误,具体判断方法参照上述对于图5中的描述,本技术实施例在此不再赘述,如果判断ai模型的输出结果有误,说明此时硬件发生了失效,则运行自检库进一步判断硬件是否发生永久性失效。由前述可知,stl主要用于识别永久性失效,因此调用stl对失效的硬件进行自检,如果自检发现了故障,说明此时第二计算单元是发生了永久性失效,则该第二计算单元不能再继续参与运算,需要进行故障上报;如果自检没有发现故障,说明此时第二计算单元是发生了瞬态失效,不会对后续的计算造成影响,则只需舍弃本次的错误的输出结果,第二计算单元可以继续进行后续的计算。
97.本技术实施例的ai计算的校验方法使用异构并行的校验方式对ai模型的计算进行校验,首先,校验由执行ai计算之外的其他计算单元执行,相比于周期性运行自检库的校验方法,本技术实施例的ai计算的校验方法不会干扰ai模型的推理计算的正常进行,因此不会影响ai核的加速性能,也避免了同一个ai核在执行ai计算时又执行校验,在保证ai模型输出结果的正确性的同时保证ai模型的推理计算的实时性。其次,本技术实施例的ai计算的校验方法针对ai模型中的不同处理层设计了不同的校验方式,最大限度节约了计算资源,使得校验可以在计算能力较低的计算单元中进行,降低了校验的成本。本技术实施例的ai计算的校验方法在确定了硬件失效后还可以进一步判断硬件的具体失效状态,若计算单元只是发生瞬态失效,则可以继续使用该计算单元,从而避免资源的浪费,提升了ai芯片的可用性。
98.图14示出了本技术实施例的另一种ai计算的校验方法的示意性流程图,如图14所示,包括步骤1401和步骤1402。
99.s1401,从第二计算单元获取对ai模型的输出结果的校验结果,校验结果为判定输出结果不正确。
100.s1402,运行自检库确定第二计算单元的状态为瞬态失效或永久性失效。
101.图14的方法由第一计算单元执行,第一计算单元可以是第二计算单元所在的ai芯片上的另一ai核,或者第二计算单元所在的ai芯片上的其他算力更低的计算单元,该其他计算单元可以是为ai加速设计,也可以不是为ai加速设计,第一计算单元也可以是其他ai芯片上的计算单元,第一计算单元还可以是cpu芯片中的cpu核等,其中cpu核为cpu芯片中的最小的计算单元,在一种可能的实现方式中,第一计算单元也可以与第二计算单元为同一计算单元,即该计算单元既执行ai计算,又同时执行本技术实施例的ai计算的校验方法。。其中,从第二计算单元获取对ai模型的输出结果的校验结果,该校验结果可以是由图5所示的方法得到的校验结果,也可以是由现有的任一种校验方法得到的校验结果。
102.当运行自检库的运行结果为没有故障时,第二计算单元的状态为瞬态失效;当运行自检库的运行结果为有故障时,第二计算单元的状态为永久性失效。当第二计算单元的状态为瞬态失效时,舍弃所述输出结果;当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
103.本技术实施例的ai计算的校验方法通过cpu执行系统调度,调用stl对出现硬件失
效的ai核进行自检,判断ai核是发生永久性失效还是瞬态失效,如果自检没有发现故障,则说明ai核发生了瞬态失效,不影响后续的计算,该ai核可以继续参与系统运算。如果自检发现了故障,说明ai核发生了永久性失效,那么该ai核不能继续参与运算,需要进行故障上报。避免了将发生了失效的ai核直接停用,降低了资源的浪费,提升了ai芯片的可用性。
104.以上,结合图1至图14详细说明了本技术实施例的ai计算的校验方法。以下,结合图15和图16详细说明本技术实施例提供的ai计算的校验装置,这里的ai计算的校验装置可以是上述第一计算单元,用于执行对ai计算的校验。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
105.图15是本技术实施例提供的ai计算的校验装置的示意性框图,装置1500具体可以是芯片、智能驾驶硬件平台等。该装置1500包括收发模块1510、处理模块1520。收发模块1510可以实现相应的通信功能,处理模块1520用于进行数据处理。收发模块1510还可以称为通信接口或通信单元。
106.可选地,该装置1500还可以包括存储模块,该存储模块可以用于存储指令和/或数据,处理模块1520可以读取存储模块中的指令和/或数据,以使得装置实现前述方法实施例。
107.该装置1500可以用于执行上文方法实施例中的动作,具体的,收发模块1510用于执行上文方法实施例中的收发相关的操作,处理模块1520用于执行上文方法实施例中的处理相关的操作。
108.该装置1500可实现对应于根据本技术实施例中的方法实施例中的步骤或者流程,该装置1500可以包括用于执行图5、图14中的方法的模块。并且,该装置1500中的各模块和上述其他操作和/或功能分别为了实现图5、图14中的第二节点侧中的方法实施例的相应流程。
109.其中,当该装置1500用于执行图5中的方法500时,收发模块1510可用于执行方法500中的步骤501和步骤502;处理模块1520可用于执行方法500中的处理步骤503和步骤504。
110.具体的,收发模块1510,用于获取第二计算单元处理ai计算的ai模型的参数,ai模型包括一个或多个第一处理层;对一个或多个第一处理层中的每一个第一处理层分别执行以下校验处理得到一个或多个第一处理层中的每一个第一处理层的校验标记位:收发模块1510还用于,从第二计算单元获取第一处理层的输入数据;处理模块1520,用于基于ai模型的参数和第一处理层的输入数据对第一处理层进行校验处理,以得到第一处理层的校验标记位,其中,对第一处理层的校验处理的计算量小于第二计算单元通过第一处理层处理输入数据的计算量;处理模块1520还用于基于校验结果确定第二计算单元处理ai计算的输出结果是否正确,校验结果包括一个或多个第一处理层中的每一个第一处理层的校验标记位。
111.在某些可能的实现方式中,ai模型还包括一个或多个第二处理层,处理模块1520还用于:对一个或多个第二处理层中的每一个第二处理层分别进行冗余校验得到一个或多个第二处理层中的每一个第二处理层的校验标记位;校验结果还包括一个或多个第二处理层中的每一个第二处理层的校验标记位。
112.在某些可能的实现方式中,ai模型的参数包括权重矩阵,第一处理层的输入数据包括特征图矩阵,处理模块1520具体用于:获取第一校验标记位,第一校验标记位是对权重矩阵进行第一校验计算得到的;获取第二校验标记位,第二校验标记位是对特征图矩阵进行第二校验计算得到的;根据第一校验标记位和第二校验标记位获取计算前校验标记位;从第二计算单元获取输出矩阵,输出矩阵为第二计算单元在第一处理层对权重矩阵和特征图矩阵进行计算得到;对输出矩阵进行第三校验计算,以得到计算后校验标记位;根据计算前校验标记位和计算后校验标记位获取校验标记位。
113.在某些可能的实现方式中,校验标记位表示计算前校验标记位和计算后校验标记位是否一致,处理模块1520具体用于:如果校验结果中存在至少一个校验标记位表示计算前校验标记位和计算后校验标记位不一致,则输出结果不正确。
114.在某些可能的实现方式中,第一处理层为卷积层或全连接层。
115.在某些可能的实现方式中,当判断输出结果不正确时,第二计算单元的状态包括瞬态失效和永久性失效。
116.在某些可能的实现方式中,当判断输出结果不正确时,处理模块1520还用于:通过运行自检库确定第二计算单元的状态为瞬态失效或永久性失效。
117.在某些可能的实现方式中,收发模块1510还用于:当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
118.当该装置1500用于执行图14中的方法1400时,收发模块1510可用于执行方法1400中的步骤1401;处理模块1520可用于执行方法1400中的处理步骤1402。
119.具体的,收发模块1510,用于获取第二计算单元处理ai计算的的对ai模型的输出结果的校验结果,校验结果为判定输出结果不正确;处理模块1520,用于运行自检库确定第二计算单元的状态为瞬态失效或永久性失效。
120.在某些可能的实现方式中,当运行自检库的运行结果为没有故障时,第二计算单元的状态为瞬态失效;当运行自检库的运行结果为有故障时,第二计算单元的状态为永久性失效。
121.在某些可能的实现方式中,装置1500还用于:当第二计算单元的状态为瞬态失效时,舍弃输出结果;当第二计算单元的状态为永久性失效时,上报第二计算单元的失效状态。
122.应理解,各模块执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
123.如图16所示,本技术实施例还提供一种ai计算的校验设备1600。图16所示的ai计算设备1600可以包括:存储器1610、处理器1620、以及通信接口1630。其中,存储器1610、处理器1620,通信接口1630通过内部连接通路相连,该存储器1610用于存储指令,该处理器1620用于执行该存储器1620存储的指令,以控制通信接口1630接收输入样本或发送预测结果。可选地,存储器1610既可以和处理器1620通过接口耦合,也可以和处理器1620集成在一起。
124.需要说明的是,上述通信接口1630使用例如但不限于收发器一类的收发装置,来实现通信设备1600与其他设备或通信网络之间的通信。上述通信接口1630还可以包括输入/输出接口(input/output interface)。
125.在实现过程中,上述方法的各步骤可以通过处理器1620中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1610,处理器1620读取存储器1610中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
126.应理解,本技术实施例中,该处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
127.还应理解,本技术实施例中,该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
128.本技术实施例还提供了一种芯片,其特征在于,所述芯片包括第一计算单元,第一计算单元用于执行上述图5或图14中的方法。
129.可选的,该芯片还包括第二计算单元,第二计算单元用于执行ai计算。
130.请实施例还提供了一种计算机可读介质,其特征在于,计算机可读介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行图5或图14中的方法。
131.请实施例还提供了一种计算设备,包括第一计算单元和第二计算单元,第二计算单元用于基于ai模型处理ai计算,第一计算单元执行图5或图14中的方法。第一计算单元的处理能力小于或等于第二计算单元的处理能力。第一计算单元为ai芯片中的计算单元、cpu芯片中的计算单元或gpu芯片中的计算单元中的至少一种,第二计算单元为ai芯片中的计算单元。
132.在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
133.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
134.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
135.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
136.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
137.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
138.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
139.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1