【架构】面向人工智能 (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
相关文章:

【架构】面向人工智能 (AI) 的硬件的可靠性(2021)
由于激进的技术扩展,现代系统越来越容易受到可靠性威胁的影响,例如软错误、老化和工艺变化。这些威胁在硬件级别表现为位翻转,并且根据位置,可能会损坏输出,从而导致不准确或潜在的灾难性结果。 传统的缓解技术基于冗…...
Unity3D MVC开发模式与开发流程详解
前言 MVC(Model-View-Controller)是一种常用的软件架构模式。将MVC应用于Unity3D开发可以提高项目的可维护性和可扩展性,使代码更加清晰和易于理解。本文将详细介绍Unity3D中MVC开发模式的应用以及开发流程,并给出技术详解和代码…...
简单介绍一下Android里面的IntentFirewall
源码链接 https://android.googlesource.com/platform/frameworks/base//633dc9b/services/java/com/android/server/firewall/IntentFirewall.java 源码如下: package com.android.server.firewall; import android.content.Intent; import android.content.Inte…...

Stable Diffusion 3 发布及其重大改进
1. 引言 就在 OpenAI 发布可以生成令人瞠目的视频的 Sora 和谷歌披露支持多达 150 万个Token上下文的 Gemini 1.5 的几天后,Stability AI 最近展示了 Stable Diffusion 3 的预览版。 闲话少说,我们快来看看吧! 2. 什么是Stable Diffusion…...
【后端】springboot项目
文章目录 1. 2.3.7.RELEASE版本搭建1.1 pom文件1.1.1 方式一1.1.2 方式二 1.2 启动类1.3 测试类 2. 引入Value乱码问题解决 【后端目录贴】 1. 2.3.7.RELEASE版本搭建 1.1 pom文件 1.1.1 方式一 <parent><groupId>org.springframework.boot</groupId><…...
React Native调用摄像头画面及拍照和保存图片到相册全流程
今天主要做了一个demo,功能很简单,就是调用手机摄像头画面,并且可以通过按钮控制拍照以及将图片保存到手机相册的功能,接下来我将从创建项目开始一步一步完成这个demo,各位只需要复制粘贴即可 创建React Native项目 npx react-native init yx_rnDemo --version 0.70.6 // 这里…...
Kubernetes基本部署概念
文章目录 命名空间(Namespaecs)查看命名空间查看带有命名空间对象下资源 文件存储持久卷(pv,Persistent Volumes)卷容量卷模式(volumeMode)访问模式(accessModes)回收策略…...
QT c++ 海康红外热像仪
//本文描述2通道海康通道红外热像仪预览和抓图 #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); userID-1; …...

OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(一)
前面的OpenAI DevDay活动上,GPTs技术的亮相引起了广泛关注。随着GPTs的创建权限开放给Plus用户,社区里迅速涌现了各种有趣的GPT应用,这些都是利用了Prompt提示词的灵活性。这不仅展示了技术的创新潜力,也让人们开始思考如何获取他…...

中科大计网学习记录笔记(十五):可靠数据传输的原理
前前言:看过本节的朋友应该都知道本节长度长的吓人,但其实内容含量和之前的差不多,老师在本节课举的例子和解释比较多,所以大家坚持看完是一定可以理解透彻的。本节课大部分是在提出问题和解决问题,先明确出现的问题是…...

五种多目标优化算法(MOGWO、MOJS、NSWOA、MOPSO、MOAHA)性能对比(提供MATLAB代码)
一、5种多目标优化算法简介 1.1MOGWO 1.2MOJS 1.3NSWOA 1.4MOPSO 1.5MOAHA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)࿰…...
力扣:93. 复原 IP 地址
回溯: 1.先定义一个接收的集合,之后再定义一个记录小数点的变量。之后编写回溯函数,终止条件为小数点的个数为3时,同时要判断最后一段的组合的值是否属于ip地址的范围。之后再用for循环来遍历ip地址的组合,先判断组合…...
利用序列化和反序列化实现深拷贝
利用序列化和反序列化可以实现对象的深拷贝,具体步骤如下: 将要深拷贝的对象序列化为字节流。从字节流中反序列化出一个新的对象,即完成了深拷贝。下面是一个示例代码: import java.io.*;class MyClass implements Serializable {private static final long serialVersion…...
【AHK】68键键盘键位布局优化/esc改退格键/回车键
本人习惯使用~作为退格键,但是由于keychron 68键的布局只能用esc平替~来修改,然后也将回车键通过alt和大小写锁定键一起触发 esc::bs ;次步骤与下面步骤相对应,如果是用send bs方式则下面的不生效^esc:: ;通过建立 保留esc功能 send {esc} re…...

计算机体系架构初步入门
🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 目录 1 计算机五大…...
常见的序列化数据结构方法及其优缺点汇总
文章目录 1. JSON (JavaScript Object Notation)2. XML (eXtensible Markup Language)3. YAML (YAML Aint Markup Language)4. Protobuf (Protocol Buffers)5. MessagePack6. BSON (Binary JSON)7. Avro8. Thrift9. CBOR (Concise Binary Object Representation) 将常见的序列化…...

华清远见嵌入式学习——驱动开发——作业1
作业要求: 通过字符设备驱动分步注册过程实现LED驱动的编写,编写应用程序测试,发布到CSDN 作业答案: 运行效果: 驱动代码: #include <linux/init.h> #include <linux/module.h> #include &l…...

小苯的IDE括号问题(CD) -----牛客小白月赛87(双链表)
C题:C-小苯的IDE括号问题(easy)_牛客小白月赛87 (nowcoder.com) D题: D-小苯的IDE括号问题(hard)_牛客小白月赛87 (nowcoder.com) C题代码: #include<bits/stdc.h>using namespace std…...

Redis如何修改key名称
点击上方蓝字关注我 近期出现过多次修改Redis中key名字的场景,本次简介一下如何修改Redis中key名称的方法。 1. 命令行方式修改在Redis中,可以使用rename命令来修改Key的名称。这个命令的基本语法如下: RENAME old_key new_key 在这里&#…...
浅谈redis之SDS
SDS 什么是SDSSDS结构len的作用free的作用buf的作用简单示例 SDS机制重新分配内存分配内存机制小于1MB情况大于1MB情况为什么这样分配 惰性释放内存 什么是SDS SDS:全名 simple dynamic string,意为简单动态字符串,作为redis里的一种数据结构…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...