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

news2025/1/19 2:39:46

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

传统的缓解技术基于冗余,例如双模块化冗余 (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。
(a) 设计用于加速 DNN 推理的脉动阵列。(b) 改进的PE设计,以减轻永久性故障[25]。(c)改进了PE设计,以减轻时序误差[27]。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1470067.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络Day03--物理层

信道复用技术 频分复用 时分复用 统计时分复用 频分复用(FDM) 最基本 将整个宽带分为多份,用户在分配到一定的频带后,在通信过程中自始至终都使用这个频带 所有的用户在同一时间占用不同的带宽资源,以并行的方式工…

一文带你彻底搞懂 Python 编程进阶之闭包

什么是闭包:在函数嵌套的情况下,内部的函数使用外部函数中的变量,并且外部函数返回了内部函数,我们将这个内部函数称之为闭包。 闭包是实现装饰器的基础,通过装饰器可以在不修改原函数代码的情况下增强其功能。 在Py…

JDK10新特性:探索Java10的编程新境界

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

nodejs+vue+ElementUi废品废弃资源回收系统

系统主要是以后台管理员管理为主。管理员需要先登录系统然后才可以使用本系统,管理员可以对系统用户管理、用户信息管理、回收站点管理、站点分类管理、站点分类管理、留言板管理、系统管理进行添加、查询、修改、删除,以保障废弃资源回收系统系统的正常…

异步框架Celery在Django中的运用

参考博客:https://www.cnblogs.com/pyedu/p/12461819.html 参考视频:01 celery的工作机制_哔哩哔哩_bilibili 定义:简单灵活、处理大量消息的分布式系统,专注于实时处理异步队列,支持任务调度 主要架构: …

YOLOv7基础 | 第2种方式:简化网络结构之yolov7.yaml(由104层简化为30层)

前言:Hello大家好,我是小哥谈。通过下载YOLOv7源码可知,原始的yolov7.yaml文件是拆开写的,比较混乱,也不好理解,并且为后续改进增添了很多困难。基于此种情况,笔者就给大家介绍一种将yolov7.yaml文件简化的方法,将104层简化为30层,并且参数量和计算量和原来是一致的,…

RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:分配和注册字符设备

🚀返回专栏总目录 文章目录 一、分配和注册字符设备二、file_operations沉淀、分享、成长,让自己和他人都能有所收获!😄 一、分配和注册字符设备 字符设备在内核中表示为struct cdev的实例。在编写字符设备驱动程序时,目标是最终创建并注册与struct file_operations关联…

线程池的常用实现及执行流程

线程池 线程池线程池接口线程池参数线程池分类动态数目线程池固定数目线程池单例线程池任务调度线程池 线程池的执行流程 线程池 线程池接口 线程池参数 1、corePoolSize:核心线程数,线程池中最少线程,核心线程不会被回收。 2、maximumPoo…

Edting While Playing 瓦片地图编辑器开发整合导入自定义贴图 DEVC++ VS2022都可复制粘贴运行

接 多种类型图片模块读取-CSDN博客 与 Editing While Playing 使用 Easyx 开发的 RPG 地图编辑器 tilemap eaitor-CSDN博客 整合实现平面贴图纹理自定义 操作同上 导入步骤: 先运行程序,然后关闭,同目录下有四个文件夹, 把…

家政小程序有哪些功能 怎么制作

随着人们生活节奏的加快,家政服务变得越来越受到人们的青睐。为了提升家政服务的便捷性和高效性,家政小程序成为了越来越受欢迎的选择。下面具体介绍家政小程序有哪些功能,如何制作。 1. 展示家政服务 在小程序中,上传所有的家政…

Spring Cloud Alibaba - 利用Nacos实现高效动态线程池管理

文章目录 引言概述什么是动态线程池Nacos简介如何利用Nacos实现动态线程池管理应用场景Code版本说明POM配置文件Nacos Config配置文件加载顺序1. bootstrap.yml的加载2. application.yml的加载注意事项示例 nacos配置Data IdNacos中Data ID的命名格式解释${spring.application.…

力扣● 343. 整数拆分 ● 96.不同的二叉搜索树

● 343. 整数拆分 想不到,要勇于看题解。 关键在于理解递推公式。 1、DP数组及其下标的含义:dp[i]是分解i这个数得到的最大的乘积。 2、DP数组如何初始化:dp[0]和dp[1]都没意义,所以直接不赋值,初始化dp[2]1即可。…

maven 打包命令

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具。 Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过po…

【openGL教程08】基于C++的着色器(02)

LearnOpenGL - Shaders 一、说明 着色器是openGL渲染的重要内容,客户如果想自我实现渲染灵活性,可以用着色器进行编程,这种程序小脚本被传送到GPU的显卡内部,起到动态灵活的着色作用。 二、着色器简述 正如“Hello Triangle”一章…

单片机05__串口USART通信__按键控制向上位机传输字符串

串口USART通信 通用UART介绍 1.通信的概念 计算机与外界进行信息交换的过程称之为通信。 在通信的过程中,通信双方都需要遵守的规则称之为通信协议。 硬件协议:将数据以什么样的方式传输过去 软件协议:将数据以什么样的顺序传输过去 2.常用…

C#与VisionPro联合开发——跳转页面

1、跳转页面并打开相机 From1 所有代码展示 using System; using System.IO; using System.Windows.Forms; //引入VisionPro命名空间 using Cognex.VisionPro;namespace ConnectCamera {public partial class Form1 : Form {public Form1() {InitializeComponent();}CogAcqFif…

云原生之API网关Traefik

1. 前言 说到web服务的开源网关,我首先想到的是Nginx,最早使用的就是它,现在都还在使用它。系统上线了Docker Swarm集群之后,不继续使用Nginx直接做Docker服务的网关,是因为Nginx毕竟比Docker Swarm出现的早&#xff0…

【C#】用于基于 UV DLP 的 3D 打印机的切片软件源码解析(一)DLP原理 GUI

0. 原理 基于 UV DLP 的 3D 打印机的工作原理是这样的: UV DLP 是一种使用数字光处理(Digital Light Processing)技术的 3D 打印方法,它利用紫外光(UV)来固化液态树脂,从而形成实体物体。UV DLP…

yolov8添加注意力机制模块-CBAM

修改 在tasks.py(路径:ultralytics-main/ultralytics-main - attention/ultralytics/nn/tasks.py)文件中,引入CBAM模块。因为yolov8源码中已经包含CBAM模块,在conv.py文件中(路径:ultralytics-…

从专业到大众:Sora如何颠覆传统视频制作模式

随着科技的飞速进步,人工智能(AI)技术正逐渐渗透到我们生活的方方面面。在视频制作领域,OpenAI推出的Sora模型为这一传统行业带来了前所未有的变革。Sora不仅改变了视频制作的技术门槛,更将视频制作从专业人士的手中解放出来,推向…