编辑推荐:
本文探讨利用近似计算(AxC)中的功能近似技术增强深度神经网络(DNN)对硬件故障的韧性,评估其在安全关键系统(如自动驾驶)中的应用潜力。通过全面基准测试,证明在特定条件下,使用近似乘法器可在不降低可靠性的前提下将能耗降低30%,并构建了基于TensorFlow的故障注入框架以加速验证。
萨尔瓦托雷·帕帕拉尔多(Salvatore Pappalardo)| 萨尔瓦托雷·巴罗内(Salvatore Barone)| 巴斯蒂安·德沃图尔(Bastien Deveautour)| 安纳基亚拉·鲁奥斯波(Annachiara Ruospo)| 埃内斯托·桑切斯(Ernesto Sanchez)| 马塞洛·特拉奥拉(Marcello Traiola)| 阿尔贝托·博西奥(Alberto Bosio)
法国里昂中央理工学院(Centrale Lyon)、里昂高等工业学校(INSA Lyon)、法国国家科学研究中心(CNRS)、克洛德·贝尔纳第里昂第一大学(Université Claude Bernard Lyon 1)、里昂计算机工程实验室(CPE Lyon)、INL、UMR5270研究组
摘要
本文研究了近似计算(Approximate Computing, AxC)技术,特别是函数近似(functional approximation),在提高深度神经网络(Deep Neural Networks, DNNs)对硬件故障的鲁棒性方面的应用。在包括自动驾驶车辆在内的安全关键系统中,部署DNNs需要平衡性能、能效和可靠性。传统方法通常通过冗余来实现可靠性,但这会增加面积、功耗和延迟。我们的初步研究表明,在某些条件下,利用近似乘法器可以在不牺牲DNN鲁棒性的前提下降低功耗。我们评估了近似计算对DNN性能和鲁棒性的影响,探讨了能效与容错性之间的相互作用。通过全面的基准测试,我们展示了AxC技术在实现更高效、更可靠的DNN系统方面的潜力,为实时计算和边缘计算环境中的应用奠定了基础。在四种不同的DNN上获得的结果表明,可以在不降低鲁棒性的情况下,将功耗降低多达3倍。
引言
深度神经网络(DNNs)由于其从大量数据中学习的能力,在人工智能和机器学习领域取得了革命性进展,能够做出非常复杂的预测。如今,工业界在许多领域都在使用DNNs,包括安全关键领域。例如,[1]使用神经网络通过时间分割来确定飞机的飞行状态,准确率超过了90%。另一个例子是[2],作者提出了一种用于自动驾驶场景中的车道检测的新方法。
DNNs使用过程中面临的主要挑战包括高功耗、大量的计算资源需求以及完成单个任务所需的长时间。幸运的是,DNNs本身对计算错误具有固有的鲁棒性。近年来,人们对此进行了深入研究[3],[4]。近似计算(AxC)的目标正是利用这种鲁棒性来开发高效的计算系统。虽然会略微损失精度,但AxC技术可以提供功耗更低、面积更小、延迟更短的优化系统。迄今为止,AxC已经应用于从硬件到应用层的整个数字系统栈。在不同的近似方法中,函数近似旨在修改电路功能,从而在降低精度的同时提高效率(面积/能耗/性能)[3],[4]。
虽然AxC有助于减少DNN的开销(即功耗和延迟)[5],但它可能会降低DNN对硬件故障的鲁棒性。特别是,已经证明影响运行DNNs的硬件故障会显著影响推理结果,可能导致应用程序出现错误[6],[7],[8],[9]。使用近似电路可以放大或减少硬件故障的影响[10]。因此,确保近似DNN的鲁棒性至关重要,尤其是在实时安全关键系统中。这些系统承载着高风险,因为任何故障都可能带来生命威胁[11]。
如现有研究所述,为了提高系统的鲁棒性,可以采用多种容错机制。一种典型的解决方案是在原始设计中添加冗余[11]。然而,即使使用选择性容错技术,使用冗余也会增加面积、功耗和延迟的成本,这对于边缘应用来说可能是不可接受的。因此,需要进一步降低DNN硬件的容错成本。
一种以零开销构建鲁棒DNN硬件的方法是精心设计数据流。实际上,根据数据流的不同,故障传播的方式也不同。[7],[12]表明,对于基于收缩阵列(Systolic Array)的加速器,使用输出静态数据流可以将所谓的“关键故障”(即导致错误推理的故障)的数量减少约2倍。
本文研究的方法利用了函数近似。在[13]中,我们研究了使用近似乘法器来减轻DNN推理过程中的故障,以实现零成本容错机制,同时通过函数近似降低功耗。在这项工作中,我们进行了全面的设计空间探索,分析了一组更激进的近似乘法器,以进一步降低功耗。为了实现这一探索,我们在Tensorflow之上实现了一个特定的故障注入框架[14],以模拟近似乘法器的行为,并利用GPU并行性加速故障注入过程。在四种不同的DNN上进行的结果表明,可以在不影响鲁棒性的情况下将功耗降低多达3倍。
本文的其余部分结构如下:第2节概述了现有工作;第3节介绍了函数近似技术和采用的故障模型;第4节详细介绍了我们开发的故障注入框架以及近似计算的建模方法;第5节描述了整体方法论;第6节展示了研究结果并讨论了未来方向。
相关研究
相关工作
迄今为止,已经发表了多项关于在容错背景下使用近似计算(AxC)的研究。实际上,可靠性和AxC密切相关,因为两者都依赖于DNN对错误的固有鲁棒性。然而,它们之间存在矛盾,因为AxC的目标是减少系统冗余——从而减少开销——这与可靠性对冗余的需求相悖。因此,在设计DNNs时,应同时考虑这两个方面,以产生高度可靠的系统。
硬件架构与故障
图1展示了深度神经网络硬件加速器(DNN-HA)的系统级视图。该加速器由微处理器控制,并需要访问主内存以获取数据(即DNN参数)。最常用的DNN-HA类型包括收缩阵列(TPU)、GPU和FPGA。
本文旨在不依赖于具体的DNN-HA类型。我们的目标是评估AxC对DNN在面对硬件故障时的鲁棒性的影响。因此,接下来的小节将介绍所使用的AxC技术。
故障注入框架
可以出于多种目的,在不同层次上评估DNN模型和基于DNN的系统的鲁棒性:从应用层面到物理设备上的硅片测量,如专用集成电路(ASICs)、现场可编程门阵列(FPGAs)和图形处理单元(GPUs)(见图1)。
近年来,人们投入了大量精力来开发促进这一任务的方法。其中大多数方法依赖于特定的框架。
近似乘法器的影响
如前所述,我们旨在评估函数近似对DNN对硬件故障鲁棒性的影响。首先,我们使用了四个使用不同数据集训练的知名DNN分类器:
- 1. 使用MNIST数据集训练的Lenet5,
- 2. 使用CIFAR10数据集训练的ResNet14,
- 3. 使用CIFAR10数据集训练的ResNet20,
- 4. 使用CIFAR10数据集训练的AlexNet。
每个DNN都被量化为8位有符号整数。
总体鲁棒性
图6展示了每种网络的故障注入实验结果。在轴上表示从左到右逐渐增加的近似乘法器;在轴上表示每个类别中的故障百分比。每个乘法器的三个点之和为100%。我们仅在那些即使使用近似乘法器后精度下降不超过10%的网络上进行了故障注入。
第一个值得注意的结果是...
结论与未来工作
本文分析和证明了函数近似对给定DNN的鲁棒性可能只有微小的影响。这种影响取决于DNN的类型和所使用的近似乘法器。
本工作的主要局限性在于故障定位并未真正涉及加速器的硬件架构。我们未来的工作将致力于表征影响加速器内部寄存器的故障,以模拟观察到的RTL错误。
利益冲突声明
作者声明他们没有已知的财务利益或个人关系可能会影响本文的研究结果。
致谢
本项工作得到了RE-TRUSTING项目的支持,该项目由法国国家研究机构(ANR-21-CE24-0015)资助;同时获得了欧盟下一代人工智能研究计划(FAIR - Future Artificial Intelligence Research)的资助(项目编号:PNRR,任务4,组成部分2,投资额1.3,日期:2022年11月15日,项目编号:PE00000013)。本手稿仅反映作者的观点和意见,欧盟委员会对此不承担责任。
萨尔瓦托雷·帕帕拉尔多(Salvatore Pappalardo)是法国里昂中央理工学院(Ecole Centrale de Lyon)纳米技术研究所的电气工程博士生,他的主要研究兴趣是AI的鲁棒性。