【架构】面向人工智能 (AI) 的硬件的可靠性(2021)

由于激进的技术扩展,现代系统越来越容易受到可靠性威胁的影响,例如软错误、老化和工艺变化。这些威胁在硬件级别表现为位翻转,并且根据位置,可能会损坏输出,从而导致不准确或潜在的灾难性结果。

传统的缓解技术基于冗余,例如双模块化冗余 (DMR) [16] 和三重模块化冗余 (TMR) [17]。然而,由于 DNN 的计算密集型性质,这些技术会导致巨大的开销,对系统的效率产生负面影响。

纠错码 (ECC) 和指令重复 (ID) [18] 也存在类似的问题。因此,需要替代缓解技术,以低成本提高基于 DNN 的系统的弹性,同时不影响效率。这些技术通常是通过利用 DNN 的固有特征并仅在系统中的关键位置部署保护或将关键错误转换为非关键错误来开发的。

A. 硬件引起的可靠性威胁

上图突出显示了硬件引起的可靠性威胁的主要类型,以及它们如何影响基于 DNN 的系统的功能。

  • 软误差是由于高能粒子撞击硬件而引起的瞬态故障,这些故障在系统中表现为位翻转,并可能传播到应用层并影响系统的功能/精度。
  • CMOS器件的老化与各种物理现象有关,例如偏置温度不稳定(BTI)、热载流子注入(HCI)和电迁移(EM)老化会导致时序错误,从长远来看也可能导致永久性故障。
  • 工艺变化是由于制造过程中的缺陷而导致的硬件特性(例如晶体管通道长度和导线电阻)与所需特性的变化。这些变化通常会影响硬件的性能和效率,因为它们需要增加电源电压或降低工作频率以确保正确的功能。极端变化会导致永久性故障,从而影响制造过程的产量。

B. 具有成本效益的故障缓解技术

已经提出了各种技术来解决基于 DNN 的系统中硬件引起的可靠性威胁。

1) 软错误缓解:

软错误是暂时性故障,在硬件级别表现为随机位翻转。这些故障有可能严重降低系统的性能,特别是当它们发生在关键位置时。在硬件层面,已经提出了改进的SRAM单元设计。辐射强化是另一种防止软错误的技术,它用更强大的节点替换易受攻击的硬件节点,提供更高的弹性[22]。但是,这些技术需要对硬件的大多数部分进行修改(附加硬件),这会导致高开销。

为了克服这个问题,最近提出了范围限制技术[23][24],该技术定义了激活值的工作范围,并将所有异常值视为故障,并根据一些预定义的策略将它们映射到该范围内。

2) 永久故障缓解:

在 DNN 的背景下,永久性故障缓解的主要目标是提高专用 DNN 加速器的制造良率。由于永久性故障是静态故障,因此对付它们最有效的技术之一是故障感知修剪(FAP)[25]。FAP 利用 DNN 的修剪弹性,通过丢弃映射到故障处理元素 (PE) 的相应计算来缓解永久性故障。它需要进行制造后测试来识别有故障的 PE,并在运行时使用此信息来识别需要绕过哪些 PE。

3) 老化缓解:

CMOS电路中的老化会导致时序误差。为了检测和减轻DNN硬件加速器计算阵列中时序误差的影响,Zhang等人提出了ThunderVolt[27],这是一种利用剃刀触发器以及DNN的修剪弹性来减轻时序错误的技术。在检测到时序错误时,ThunderVolt 会通过丢弃其计算来传递正确的结果,从而从后续的 MAC 操作中窃取一个周期。计算的删除避免了整个数组的停滞,而 DNN 对修剪的弹性有助于保持基线准确性。

为了缓解DNN加速器片上SRAM单元的老化,最近,Hanif等人提出了DNN-Life[28]。该技术采用读写传感器来平衡SRAM每个单元的占空比,从而最大限度地减少NBTI老化,这是现代纳米级器件中最突出的老化类型。

C. 开发高度可靠的 DNN 的挑战

缓解技术的集成:对于每种类型的可靠性威胁,已经提出了各种缓解技术,其中一些是针对特定模块设计的,例如片上存储器或计算结构。每种缓解技术通常也会影响系统对其他可靠性威胁的弹性。因此,在构建一个强大而高效的基于 DNN 的系统时,重要的是要研究不同缓解技术的相互作用,并选择一组合适的技术,在定义的约束和条件下提供最佳弹性。

对鲁棒算法的需求:深度学习的核心问题之一是对抗性示例,即注入小扰动会导致显著的精度损失。尽管对抗性示例仅在安全上下文中被认为是重要的,但它们还提供了有关 DNN 对故障/错误的一般弹性的信息。强大的 DNN 可提供对对抗性噪声的高弹性,这将说明对可靠性威胁的更高弹性。研究人员提出了各种方法来提高 DNN 对对抗噪声的鲁棒性;然而,这些方法要么提供微小的收益,要么仅在特定条件下显示出改进。因此,迫切需要算法/方法,以产生设计稳健的模型。

新兴技术对新型测试技术的需求:内存处理 (PIM) 因其实现高能效的潜力而备受关注。它们通常基于新兴存储器,如ReRAM和自旋电子器件。此类器件具有独特的故障机制,无法用传统故障模型建模,也无法用传统测试方法进行测试[29;此外,PIM中的内存具有两种配置(存储和计算),这一事实对其测试提出了额外的要求[1;29]。

参考文献

https://ieeexplore.ieee.org/document/9465409

相关推荐
搏博14 分钟前
神经网络问题之一:梯度消失(Vanishing Gradient)
人工智能·机器学习
z千鑫14 分钟前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr23 分钟前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
威桑25 分钟前
CMake + mingw + opencv
人工智能·opencv·计算机视觉
爱喝热水的呀哈喽29 分钟前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
.生产的驴44 分钟前
SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
spring boot·后端·spring·spring cloud·微服务·架构
肥猪猪爸1 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
丁总学Java1 小时前
ARM 架构(Advanced RISC Machine)精简指令集计算机(Reduced Instruction Set Computer)
arm开发·架构
LZXCyrus2 小时前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm