莱莱 发表于 2024-8-4 22:28:29

体系结构论文导读(三十一)(下):Soft errors in DNN accelerators: A c

第五部门:DNN加快器中的软错误

本部门回顾和分析了有关人工神经网络(ANN)可靠性的研究。特别是关注通过DNN加快器解决DNN可靠性的研究,从软错误的角度举行探讨。许多前期工作声称ANN本身对故障具有固有的容错本领。然而,在硬件(加快器)层面,单事件翻转(SEU)和单事件瞬变(SET)等错误可能发生在执行硬件中,削弱DNN的固有容错本领。因此,加快器比其他电子装备更轻易受到瞬态故障的影响,因为其并行性会将单个故障传播到多个输出元素。
5.1 GPU

研究人员在进步GPU的可靠性方面做了许多积极。然而,只管以前的工作关注了GPU在高性能计算(HPC)应用中的可靠性,但却忽视了DNN模子的可靠性。DNN算法在计算特性上与HPC应用有显著不同,比方练习阶段的非结构化数据和处理惩罚激活和可学习权重的大量内存。别的,由于ANN算法预测的是特定百分比的正确性,DNN本身并非完全正确。因此,先前的可靠性研究不能扩展到高级DNN案例中。
以下是一些代表性研究及其重要发现:

[*] Santos等人评估了著名的实时目标检测系统“YOLO”的可靠性,重点利用GEMM(通用矩阵乘法)作为重要指标评估系统的韧性。研究思量了三种不同的GPU架构,提出了一种基于算法的容错策略(ABFT)来检测和缓解这些错误,从而进步DNN的可靠性。

[*]重要发现:不同GPU的晶体管布局对软错误率的影响不同;GPU之间的架构差别对错误传播过程有不同影响。
[*]结论:DNN的可靠性依靠于具体的加快器,不能将特定加快器的情况推广到同类的所有加快器。

[*] Lunardi等人研究了在GPU中使用ECC(错误改正码)的有用性,发现ECC固然是粉饰软错误影响的有用解决方案,但某些内存资源(如管道和队列中的触发器)并未受到ECC掩护。

[*]重要发现:YOLO和GEMM由于计算麋集型数据处理惩罚,ECC的掩护效果较差;接纳FinFET技术比启用ECC更有用地淘汰SDC(静默数据损坏)率。

[*] Arechiga等人研究了DNN架构在其参数(如位翻转)受到干扰时的稳健性,评估了三种基于CNN的模子:VGG16、ResNet50和Inception V3。

[*]重要发现:即使只有极小比例的参数受到影响,也会导致显著的性能下降;VGG16在随机位翻转中表现出较低的可靠性,因为它缺乏批量归一化和快捷毗连,这些技术有助于增强模子的稳健性。

[*] Santos等人分析了GPU架构中的辐射引发错误怎样影响CNN模子的可靠性,研究表明GPU中的单个故障倾向于传播到多个活跃线程,显著降低CNN的可靠性。

[*]重要发现:通过筹划特殊的Max-pooling层来替换CNN的常规Max-pooling层可以在运行时检测错误,显著进步可靠性;ECC显著淘汰了SDC的数量,但对关键错误的影响较小。

[*] 作者研究了CNN模子在NVIDIA GPU上实现时软错误的影响,特别是VGG-16、AlexNet和ResNet-18的错误韧性。

[*]重要发现:19.7%的注入故障导致了错误;通太过析错误依靠性,我们发现RF模式下的错误生成DUE比SDC错误多,而IOA和IOV模式下的错误倾向于生成更多的SDC错误;硬化VGG-16的单个内核(Im2col)显著进步了模子的韧性,将Faulty SDC的率从19.7%降至约0.4%。

[*] Santos等人研究了在不同浮点精度下执行基准测试时GPU的可靠性,发现降低精度(如从双精度到单精度到半精度)可以显著进步CNN模子的可靠性。

[*]重要发现:检测错误比分类错误更少依靠数据格式,因为检测框的坐标表示为整数值;降低精度格式显著进步了CNN模子的可靠性,因为较低的精度必要较少的内存资源,从而进步了模子的性能。

5.2 ASIC(专用集成电路)

这一部门回顾并介绍了在DNN模子实现过程中评估ASIC加快器韧性的研究。每项研究可能会思量DNN模子/加快器的各种元素。因此,表5和表6列出了这一种别的代表性工作以及每项工作中思量的组件和指标。
代表性研究和重要发现


[*] Li等人分析和评估了运行在专用ASIC加快器Eyeriss上的DNN模子的容错特性。研究了四种基于CNN的模子:AlexNet、CaffeNet、ConvNet和NiN。这项研究具体诊断了错误从加快器级别传播到DNN模子级别的方式。

[*]重要发现:

[*]DNN的错误韧性取决于多个因素,包罗网络拓扑、用于表示的数据格式(如FxP和FP)、DNN加快器数据流中的数据重用,以及DNN网络中的层数和位置。
[*]使用相同数据格式的NiN、AlexNet和CaffeNet模子的SDC错误率大致相同,而ConvNet的错误率非常高。这是因为ImageNet数据集有1000个类,而CIFAR数据集只有10个类,错误更轻易被传播到前五个元素中。

[*]提出两种错误掩护策略:

[*]基于症状的错误检测器(SED):用于检测内存系统中的SDC错误,均匀精度为90.21%,均匀召回率为92.5%。
[*]选择性锁存加固(SLH):用于检测和改正数据路径中的SDC错误。


[*] Pandey等人研究了基于TPU加快器的错误韧性,特别是评估TPU近阈值操作引起的定时错误。这项研究最初提出了一种称为GreenTPU的筹划范式,重要目的是限定TPU的能耗。

[*]重要发现:

[*]通过预测激活序列模式,可以防止同一序列中的其他错误。
[*]接纳Razor触发器检测每个MAC单位中的定时错误,当任何行中的定时错误发生时,这个单位记录导致错误的输入模式,并增长后续MAC单位的供电电压以制止未来的定时错误。


[*] Jiao等人评估了ASIC类加快器中处理惩罚单位的软错误对DNN模子的影响。软错误是由温度和动态电压变化引起的时间错误。评估了三层全毗连(MLP)和LeNet-5(CNN)架构。

[*]重要发现:

[*]对于MLP和CNN,Adder中的错误对模子精度的影响大于Multiplier中的错误。
[*]随着错误率的增长,精度急剧下降。CNN比MLP对错误更敏感,因为CNN有更多的算术计算。


[*] Choi等人引入了基于DNN过滤器和权重敏捷度差别的错误韧性技术,使用一阶泰勒展开来分析敏捷度。

[*]重要发现:

[*]通过将高敏捷度权重的计算映射到更可靠的MAC单位,可以显著进步DNN模子的分类精度。


[*] Lee等人广泛研究了实现于CMOS数字电路上的DNN的容错性,特别是分析了固定点格式的数据表示。

[*]重要发现:

[*]通过“权重掉落”技术(随机断开权重毗连)进步DNN对故障的容忍度,特别是在错误率低于10%的情况下,预测精度只会略有下降。


[*] Zhang等人研究了基于时间错误电压缩放的软错误传播,提出了一种称为“时间错误扬弃(TE-drop)”的新技术。

[*]重要发现:

[*]TE-drop通过为每个MAC单位提供“Razor触发器”来检测这些错误,并在不重新执行错误MAC操作的情况下屏蔽错误,从而进步了模子的可靠性。


   FPGA和Others部门略去
六、讨论

6.1 各种别中的要点

GPU 种别



[*]晶体管布局:不同GPU的晶体管布局有不同的错误率。因此,各种GPU微架构(如Maxwell、Volta和Turing)影响错误从一个条理传播到另一个条理,直到它到达输出。
[*]ECC 和 ABFT:固然ECC已被证明是用于各种内存元素的非常有用的掩护技术,但ABFT策略可以通过软件解决方案在GPU中更好地强化DNN。这是因为大多数DNN操作在GPU中都依靠于矩阵乘法,这是ABFT的基本任务。
ASIC 种别



[*]机动性:只管ASIC渐渐发展为更小的结构、低功耗和高性能,但代价是不机动性。从可靠性角度来看,不同于GPU,ECC策略不能直接应用于ASIC的缓冲区,因为矩阵乘法和卷积更得当使用没有当地内存的矩阵阵列来实现。因此,当提出可靠性解决方案时,可能必要修改底层DNN架构。别的,由于Google的TPU目前是这一种别中唯一突出的加快器,基准测试问题对于筹划师来说是一个不小的挑战。
   为什么ECC不能直接应用于ASIC的缓冲区

对于ASIC(专用集成电路),尤其是专门用于DNN加快的ASIC(如TPU、Eyeriss),其筹划和架构与GPU有很大不同。
1. 矩阵乘法和卷积操作的实现方式

在DNN计算中,矩阵乘法和卷积是非常告急的操作。这些操作通常通过矩阵阵列(systolic array)来实现。矩阵阵列是一种高度并行的硬件结构,可以高效地执行矩阵乘法和卷积操作。


[*]矩阵阵列的特点:

[*]高度并行:矩阵阵列由许多处理惩罚单位构成,这些单位可以同时举行计算。
[*]流水线操作:数据从一个处理惩罚单位通报到下一个,像流水线一样,直到计算完成。
[*]没有当地内存:每个处理惩罚单位通常没有独立的当地存储,而是通过直接的数据通报实现高效计算。

2. 没有当地内存的影响

因为矩阵阵列通常没有独立的当地存储空间(如缓存或寄存器文件),以是ECC无法直接应用于这些处理惩罚单位之间的数据通报。


[*]没有当地存储:在矩阵阵列中,数据在处理惩罚单位之间直接通报,而不是存储在当地内存中。这意味着ECC无法在数据通报过程中举行错误检测和改正。
[*]实时性要求:矩阵阵列必要高效的实时计算,增长ECC会引入额外的延迟和复杂性,倒霉于实现高效的DNN计算。
FPGA 种别



[*]机动性和重设置:与其他加快器相比,FPGA的机动性和重设置功能使其更轻易评估DNN的韧性。大多数FPGA的DNN加快器筹划仅针对一种数据流。比方,某些加快器仅针对CNN模子。因此,很难以相同的效率将DNN的各种层映射到这些加快器上。
[*]SRAM基FPGA:SRAM基FPGA是最常用的一种范例。当遇到故障时,比方粒子撞击设置位,可能导致LUT、BRAM或路由毗连的设置发生变化。为解决这一种别中的瞬态错误影响,通常接纳硬件冗余解决方案。
6.2 种别比力

DNN加快器之间的架构差别使得全面比力成为一项不公平且具有挑战性的任务。然而,可以突出表明每个种别在软错误可靠性方面的优缺点。
本文比力了两种常用的DNN加快器(即GPU和FPGA),作为首次实验答复“哪种加快器在面对瞬态故障时更可靠?”的问题。目的是展示当相同模子在不同加快器中遇到瞬态故障时,其韧性可能有不同的表现。为此,选择了一种特定的DNN架构作为基准。选择CNN架构,因为它已在两种种别中执行,并且每种种别的可靠性研究已被分析。
6.2.1 硬件资源

在GPU中,主流CNN严重依靠于麋集的浮点矩阵乘法(即GEMM)。大约76%的GPU操作用于CNN模子与GEMM相关的操作。GPU的硬件资源包罗寄存器文件、缓存、SM、调度器等,都是为了执行这些操作。
在FPGA中,主流CNN依靠于LUT、FF、Carry逻辑、I/O块和DSP单位来举行MAC操作,并使用块RAM作为内存元素。别的,设置位用于功能和路由,故障会被注入其中。
6.2.2 浮点(FxP) vs. 定点(FP)

FPGA比GPU更倾向于使用定点(FxP)格式而非浮点(FP)格式。FP的范围比FxP格式更广,因此其指数中的故障会导致值的显著变化。因此,对于相同长度(即位数),FP比FxP更易受到影响。实验表明,通过降低精度(比方,从双精度到单精度再到半精度),硬件资源利用率降低,从而淘汰了暴露于辐射的面积,因此FIT率也降低。然而,较低精度会增长软错误的影响,因此FPGA更易受到关键错误的影响。
6.2.3 错误传播行为

在CNN计算中,数据从输入层传播到中间(隐蔽)层再到输出层。一旦发生错误,它也会遵照相同的规则传播。GPU中的全毗连层(FC层)倾向于传播SDC错误,但本身不会产生SDC错误。这是因为FC层具有高度并行(冗余)的毗连,意味着神经元排列成矢量而不是矩阵。因此,数据重用性比卷积层少。
在FPGA中,FC层比卷积和池化层更轻易产生SDC错误。FPGA是可编程加快器,可以具有空间和时间架构。别的,FPGA的筹划由存储在设置内存中的位流确定。因此,FC层的密度越高,其易感性越高。
6.2.4 缓解技术

在GPU中,只管ECC是一种硬件解决方案(用于内存元素),但最常见的进步GPU应用可靠性的方式是软件解决方案,用于掩护内存或逻辑资源。这是因为GPU的预筹划架构制止研究人员访问低级布局(RTL)。提出的软件技术包罗程序模块复制(如DMR和TMR)、ABFT等。然而,文献中没有提供用于练习阶段的缓解技术,所有提出的方法仅用于推理阶段。
在FPGA中,缓解技术通常是硬件解决方案,使用硬件描述语言(HDL)表示的RTL。现有的硬件策略是基于冗余的解决方案,即构建与原始模块相同的冗余硬件模块。这种冗余可以是比力复制(DWC)或TMR。与GPU不同,FPGA案例中提出了一些解决方案,特别是用于练习阶段的,如容错练习。
综上所述,要决定哪种加快器更具韧性,必要综合思量上述四个因素,因为它严格依靠于底层架构。
 
七、未来的挑战与方向

未来深度学习的重要挑战之一是其算法在易受故障影响的加快器上实现时的可靠性问题。因此,DNN在高包管应用中的实用性受到来自DNN加快器上软错误引发的可靠性问题的限定。
其他DNN架构

现代定制的深度学习系统由混淆DNN构成,以实现现实生活中的认知任务。换句话说,同一系统中可能包含多种DNN架构。比方,Parana架构包含CNN、MLP和其他两种架构。固然Yin等人在筹划过程中提出了一种仅解决DRAM热问题的技术,但尚未评估这种复杂系统的错误韧性。因此,现有技术无法简朴地评估这种加快器的处理惩罚和控制元素的可靠性问题。因此,必要新的评估和缓解技术,这些技术可以或许顺利顺应这些混淆架构。
DNN错误韧性评估工具

许多回顾的研究报告了用于评估DNN组件错误韧性的故障注入器或DNN框架较慢。因此,必须优化这些工具的评估时间,以更真实地模拟可靠性影响。这些工具对于研究DNN加快器/算法在可靠性问题方面的独特特性非常有用。这可能是一个对研究社区有价值的研究方向。
领域的快速发展

正如我们的回顾所揭示的那样,AI模子的演变正在举行中。因此,用于加快这些计算麋集型模子的硬件的可用性在筹划层面是一个显著问题。因此,全部注意力都集中在AI加快器的吞吐量优化上,而可靠性问题却被大大忽视。因此,可靠性研究人员应填补这一空缺,为每个种别(即加快器)提供有用的解决方案。
评估不同的DNN阶段

大多数工作都评估了DNN在推理阶段的可靠性。相反,只有少数研究研究了练习阶段。别的,练习有两种范例:在线练习(在每个练习数据点后更新参数)和离线练习(在整个练习数据集后一次性更新参数)。研究人员可能必要确定这两种范例的练习是否在可靠性方面留下不同的影响。
数据集的大小

正如其有助于忽略小噪声一样,影响DNN韧性的告急因素之一是用于练习模子的数据集。因此,使用更多的练习数据来练习模子会进步其正确性。然而,大多数文献中的可靠性研究都研究了使用较小数据集(如CIFAR-10和MNIST)练习的DNN的可靠性,特别是FPGA和其他种别。因此,研究在更大基准数据集(如ImageNet)上练习的DNN的可靠性可能会产生有益的影响。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 体系结构论文导读(三十一)(下):Soft errors in DNN accelerators: A c