体系结构论文(五十二):HTAG-eNN: Hardening Technique with AND Gates for Embedded Neural Networks【DAC‘24】

HTAG-eNN: Hardening Technique with AND Gates for Embedded Neural Networks【DAC‘24】

这篇文章介绍了嵌入式神经网络在面对单粒子翻转(SEUs)时的脆弱性,提出了HTAG-eNN 的硬化技术,以提高嵌入式神经网络的容错性。

一、文章背景

问题描述

嵌入式神经网络在执行过程中可能会受到 SEU 的影响,这种错误通常由环境因素引发,例如高能量电磁辐射,可能会翻转存储在硬件寄存器中的值,导致推理结果出错。

现有的保护技术,如三模冗余 (TMR)、双模冗余 (DMR) 和使用 Hamming 码的错误校正码 (ECC),虽有成效,但往往会带来较大的硬件开销。以往的研究主要关注SEU对AI模型不同层的敏感性分析,但缺乏对中间数据的详细研究。

贡献

文章提出了一种新型的硬件保护机制,称为 HTAG,用于检测并缓解SEU的影响。

相较于传统的纠错机制(如三模冗余TMR、双模冗余DMR、汉明码ECC等),HTAG 的方法更简单且硬件开销较小。

通过实验表明,HTAG在LeNet-5卷积神经网络推理模型中达到了96.85%的保护效率,尤其适用于嵌入式系统。

技术实现

HTAG的设计基于分析SEU对不同数据类型(权重、偏置、中间数据)的影响,重点关注SEU从0到1的位翻转,因为这种翻转对分类结果的影响更大。

HTAG通过复制敏感触发器并插入AND门来驱动硬件设计。当发生SEU时,HTAG将错误的值强制为0,减少对推理结果的影响。

二、相关工作

故障分析

  • 先前的研究集中在神经网络的参数(如权重)的故障敏感性分析上。现有的研究表明,不同层和数据之间的敏感性不同,尤其是中间数据也对单粒子翻转(SEU)敏感。
  • 许多工作已经探讨了SEU对FP(浮点数)数据格式的影响,尤其是在较高权重的位翻转时,错误可能会导致较大的推理误差。

故障保护

  • 常见的故障保护方法基于不同级别的硬件或信息冗余。例如,架构级的容错性可以通过复制关键神经元及其连接来实现,而微架构级的方法则可能通过调整数据精度或对敏感位进行选择性加固来提高鲁棒性。
  • 具体的例子包括ApFT,它通过复制卷积滤波器来实现容错性,考虑了卷积神经网络(CNN)架构的特殊性。
  • 还有如 FT-ClipAct 等方法,通过限制权重的数值范围来应对存储器中的错误。

作者的分析

  • 基于现有研究的发现,作者进行了更深入的分析,重点研究了SEU导致的0到1的位翻转对分类结果的影响大于1到0的位翻转。
  • 此外,文章提出了一种低硬件开销的容错技术,通过复制触发器和插入逻辑AND门来缓解SEU的影响。

三、SEU敏感性分析

 

本文使用了 LeNet-5 模型,该模型包括两层卷积层和三层全连接层,如表 1 所示。表格描述了每一层的输出形状、数据量和参数数量。以下是表格的一些关键点:

  • 输入层 接受 784 个输入像素,对应 [1, 28, 28] 的图像大小。
  • 卷积层(CONV-1 和 CONV-2),每层包括卷积、激活(Sigmoid)、池化操作,具有不同数量的输出通道。
  • 全连接层(FC-1, FC-2, FC-3) 逐步将数据从更高维度减少到更低维度,最终输出10个类别的预测值。
  • 总体而言,LeNet-5 包含 61,706 个参数,并在多个层中传递 15,012 个数据。
3.1 使用案例神经网络架构

该部分描述了使用LeNet-5模型对MNIST数据库进行分类的实验设置。LeNet-5模型包含两个卷积层和三个全连接层。神经网络的参数(权重和偏置)由训练过程确定,只有这些层包含这些参数。

主要架构特点

  • 使用了卷积、池化、线性连接和激活函数(如 Sigmoid)。
  • 平均池化层用于在每个卷积层后减少数据的形状,最后一层使用 softmax 函数对10个类进行分类。

为了适应嵌入式系统,作者将模型的参数和数据改编为自定义浮点数格式。不同的数据格式包括:float4 (1, 2, 1)、float6 (1, 3, 2)、float8 (1, 4, 3)、float12 (1, 4, 7) 和 float16 (1, 5, 10)。这些格式分别指代符号位、指数部分和尾数部分的位数。

3.2 故障注入框架

在推理过程中,本文考虑了SEU对神经网络参数(权重和偏置)以及中间数据的影响。对于参数的故障注入,实验仅限于卷积层和全连接层,因为这些层独占了这些参数。注入故障后,模型使用新参数执行推理,结果与无错误推理的基准进行对比。如果出现分类差异,则该位被标记为敏感位,需要被保护。

对于中间数据,由于 PyTorch 默认不提供直接访问,故障注入是在每一层之间逐步执行的。实验采用了穷尽搜索的方式,探索了所有可能发生故障的位。

3.3 每层和数据类型的敏感性

权重的敏感性(图1a):

  • 卷积层和最后一层全连接层对SEU的影响最为敏感,尤其是权重的故障会影响整个图像,导致推理结果出现显著误差。

偏置的敏感性(图1b):

  • 偏置的故障影响较小,因为每个卷积通道只有一个偏置,且神经元的数量较少。

数据传输的敏感性(图1d):

  • 随着靠近输出层,数据的敏感性逐步增加,特别是 Sigmoid 激活函数输出值在高权重位的故障下,可能导致后续层的推理出错。

故障位置对误分类的影响(图1c):

  • 符号位和指数位对分类结果影响最大,这与类似的研究结果一致。保护这些关键位可以大大减少误分类,而无需保护所有浮点数位。

总结(图1e):

  • float6 (1, 3, 2) 格式对故障的容忍度最佳,提供了足够的精度,并且硬件开销较低。相比之下,float4 的精度不足,不能提供足够的分类率,而更高位数的格式(如 float8、float12 和 float16)尽管精度更高,但会增加硬件成本。
进一步分析:

  • 绿色线条:表示数值未受错误影响,前后数值保持一致。

  • 不同符号和颜色

    • 紫色“+”:符号位从 0 翻转为 1,即正数变为负数。
    • 蓝色“x”:指数位发生 0→1 翻转。
    • 橙色“x”:尾数位的错误翻转。
  • 标记点 A, B, C, D

    • A 点:值为 6(0 101 10₂ = 6),这是初始无错误状态。
    • B 点:符号位翻转后,数值从 6 变为 -6(1 101 10₂ = -6)。
    • C 点:指数位翻转,数值变为 0.375(0 001 10₂ = 0.375)。
    • D 点:指数位错误导致数值激增为 24(0 111 10₂ = 24)。

具体示例:

以值为 6(0 101 10₂)为例:

  • SEU 对不同层、不同数据类型(权重、偏置和中间数据)的敏感性存在差异,尤其是最后的全连接层和靠近输出层的层更容易受到 SEU 的影响。
  • 在浮点数格式选择上,float6 在分类精度和硬件开销之间取得了最佳平衡,是最适合嵌入式神经网络系统的格式。
  • 0 → 1 的位翻转 通常对分类结果影响较大,尤其是高权重位或指数位的翻转可能导致输出值大幅增加,进而影响整个网络的推理。
  • 1 → 0 的翻转 相对影响较小,因为其通常会使数值靠近 0(除符号位外),这种情况下,网络的推理结果可能不会受到太大影响。
  • 当符号位发生翻转,6 变为 -6。
  • 当指数位发生翻转,6 会变成 0.375 或大幅增加到 24。 这表明,不同位的翻转会导致数值发生不同程度的偏离。一般情况下,如果一个位受到 SEU 影响,将其视为 0 可以有效减小故障对网络的影响。

 

这张图展示了神经网络在无错误推理情况下权重、偏置和中间数据的值分布

(a) 权重

绝大多数权重的值集中在 -2 到 2 之间,且大部分值围绕 0 波动。

(b) 偏置

偏置的分布范围较小,值主要在 -0.5 到 0.5 之间波动,且大部分值接近 0,。

(c) 数据

数据的值分布较广,从 -24 到 24 不等,数据的分布相对均匀,值范围较大。

四、硬件保护

HTAG 技术的核心思想:
  1. 投票机制:HTAG 使用 AND 门作为投票器,复制存储敏感位的触发器。根据真值表,当两个输入位不同(即一个被错误翻转)时,投票器将输出逻辑 0。该设计基于在某些位翻转的情况下,神经网络对 1 → 0 的容忍性较高,而 0 → 1 的错误对推理结果影响较大。

  2. 优点

    • HTAG 的硬件开销极低,只需增加一个 AND 门和一个触发器。
    • 与现有方法相比,它只在关键路径中增加了一个组合逻辑门。
    • 即便某些错误未能完全纠正,HTAG 的保护效果在实际推理过程中依然很出色。

  • N 比特的输入

    • 来自外部内存的 N 位数据(紫色箭头)或来自上一层的 N 位数据(蓝色箭头)输入到该模块。这些数据可以是权重偏置中间数据
  • 复制敏感位

    • HTAG 技术的核心思想是复制存储敏感位的触发器,并通过逻辑门对比这些位,来实现对错误的检测和修正。每一个敏感位都会有一个对应的触发器来保存其副本。
    • 图中橙色箭头表示从输入位到复制敏感位的过程。图示的 BitN-1和 BitN-2 分别是两个敏感位的示例,它们各自被复制到两个 D 触发器中。
  • 逻辑门(AND 门)

    • 复制后的敏感位会输入到 AND 逻辑门中。当两个位不一致时,表示其中一个发生了翻转错误,此时 AND 门的输出将强制为 0。这种方式有效地将错误减小到可以容忍的范围,特别是 1 → 0 的错误往往不会显著影响神经网络的分类结果。
    • 每个敏感位都会通过一个 AND 门进行校正。
  • 输出

    • 校正后的数据(即通过 AND 门处理的 N 位)将被传递到本地神经元或下一层的输入(橙色和蓝色箭头)。
    • 校正后的 N 位数据通过橙色路径传递给本地神经元,同时 N 位数据也会传递给下一个层(通过蓝色箭头)。
性能评估:
  • 保护有效性:TMR(三模冗余)、DMR(双模冗余)和 Hamming 码在 SEU 故障下能实现 100% 的保护效果,但它们的硬件开销更高。HTAG 在浮点格式 float6 的模型上保护效率为 96.85%,仅损失了 3.15% 的推理精度。
  • 硬件开销:HTAG 的硬件开销远低于 TMR、DMR 和 Hamming 码。如图 5a 所示,HTAG 在保护的位数较小时表现出最低的面积开销,随着位数增加,其开销增加速度也最慢。
  • 关键路径时间:HTAG 的关键路径延迟非常低,只需要跨越一个简单的逻辑门,而 TMR 和 DMR 的关键路径受限于复杂的投票机制。Hamming 码的延迟则随着需要保护的位数增加而逐渐变长。
  1. 图 5a: 面积开销

    • HTAG 的面积开销显著低于其他方法,尤其在需要保护较少的位时表现尤为出色。TMR 的硬件开销最高,主要是因为它需要三倍的冗余。
    • Hamming 码的硬件开销在保护位数较多时变得更加吸引人,但对于需要保护的位数较少时,它的开销较高。
  2. 图 5b: 关键路径估计

    • HTAG 在关键路径时间上表现最佳,因为它仅使用了一个逻辑门进行修正。TMR 虽然保护效果最好,但需要三组逻辑门来执行投票。
    • DMR 尽管减少了触发器的数量,但由于投票块中的反馈环路,其关键路径时间增加显著。
HTAG 的局限性:
  • 最后一层的保护效果较差:在故障注入实验中,HTAG 对最后一层的保护不如前几层有效。这是因为最后一层(特别是在 softmax 之前的层)的数据大多为负值,而 HTAG 无法有效纠正 1 → 0 的错误,导致保护效果下降。因此,建议在最后一层结合其他保护方法,以提高总体容错性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D了一天bug忘了编译

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值