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

news2024/11/15 10:56:10

Soft errors in DNN accelerators: A comprehensive review

DNN 加速器中的软错误:全面回顾

一、文章核心

深度学习任务覆盖了广泛应用。DNN算法被实现于不同系统上,从小型嵌入式设备到数据中心。DNN加速器(例如GPU、FPGA、ASIC)因为其效率比CPU高而成为DNN算法的主要执行硬件。然而,这些加速器容易受到多种故障的影响,其中软错误特别具有威胁性,因为高水平的并行性可能会将单个故障传播成多个错误,最终影响模型预测的输出。本文对DNN加速器的可靠性进行了全面的综述,探讨了DNN加速器在瞬态故障下的可靠性,并对未来的研究方向进行了预测。

二、INTRO

近年来深度神经网络(DNN)发展迅速,获得了前所未有的流行。根据国际数据公司(IDC)的最新报告,仅在2019年,人工智能(AI)系统的支出就达到了240亿美元,预计到2023年将达到979亿美元,其中大部分支出在AI硬件上。DNN被广泛应用于计算机视觉、语音识别和自然语言处理等领域,并在诸如自动驾驶汽车和医疗保健等复杂任务关键系统中得到了广泛应用。

DNN的容错能力

DNN的容错能力:人工神经网络(ANN)被认为对瞬态故障(软错误)具有容错能力,基于以下几点观察:

  • 神经网络包含大量神经元,即使部分神经元失效,仍能完成整体任务。
  • 神经网络模拟人脑,能够容忍一定程度的神经元故障,甚至可以利用噪声作为计算来源。
  • 研究工作主要关注性能最大化,而忽略了可靠性。
  • 学习能力使得神经网络能够在训练过程中和训练后处理不完整数据和噪声。

然而,这些特性不易扩展到现代DNN系统,原因包括现代DNN模型结构更复杂、安全关键系统需要更高的安全标准、DNN加速器成为DNN模型的主要执行硬件,以及物联网设备带来的存储和功耗限制。

 

图1展示了软错误如何从DNN加速器传播到神经网络模型的输出。具体来说:

  • 硬件中的瞬态故障会导致计算或存储数据的错误。
  • 这些错误会在神经网络模型中传播,导致最终输出的错误,如卡车被错误分类为鸟。

三、MOTI AND BACKGROUND

图2展示了一个DNN(深度神经网络)中单个神经元的工作原理及其主要组成部分。具体如下:

  1. 输入(Inputs)
  2. 权重(Weights)
  3. 加权和(Sum-of-product)
  4. 偏置(Bias)
  5. 激活函数(Activation Function, F(g))

 

图3展示了DNN加速器的架构及其主要组件。具体如下:

  1. 全局内存(Global Memory, GBM)
    • 存储需要处理的数据和中间结果。
  2. 处理单元(Processing Elements, PE)
    • 多个PE组成阵列,每个PE包含一个算术逻辑单元(ALU),用于执行乘-加(MAC)操作。
    • PE负责进行大量并行计算,提高DNN模型的计算效率。
  3. DRAM
    • 外部存储器,用于提供更大的存储空间,与GBM进行数据交换。

 

3.1 深度神经网络(DNN)

DNN是具有多个隐藏层的ANN,即“深度”意味着更多的层次。DNN通过对输入值进行加权和计算输出。常见的DNN架构包括多层感知器(MLP)和卷积神经网络(CNN)。

  • 基本操作

    • DNN的基本操作是矩阵乘法,神经元接收输入并进行点积或卷积操作,然后通过激活函数计算输出。这些操作可以总结为乘-加(MAC)操作,是DNN计算的核心。
  • MLP和CNN的区别

    • MLP(多层感知器):由全连接层组成,每个神经元与前一层的所有神经元相连。
    • CNN(卷积神经网络):由卷积层组成,卷积层通过局部连接的滤波器在输入空间滑动,应用于输入的每个区域。卷积层比全连接层更适合处理图像数据,因为它们能够捕捉空间关系。
  • 学习过程

    • DNN模型通过监督学习进行训练。训练过程中,模型通过大量的计算和存储需求,调整权重和偏置以最小化损失函数。训练好的模型在推理阶段用于对新数据进行预测。
3.2 DNN加速器
  • 加速器定义

    • 加速器是一种与CPU协同工作的硅芯片,设计用于计算密集型应用(如深度学习算法),提供比多核CPU更高的性能。
  • 加速器组成

    • DNN加速器由全局内存(GBM)和处理单元(PE)组成。每个PE包含一个算术逻辑单元(ALU),用于执行乘-加(MAC)操作。ALU负责进行大部分计算。
  • CPU与加速器

    • 尽管CPU在灵活性和易用性方面具有优势,但在并行计算(如DNN)方面,CPU效率低于专用加速器。加速器通过并行处理提高了DNN模型的计算效率。
3.3 软错误
  • 系统/设备的可靠性

    • 系统/设备在存在故障时仍能持续工作的能力,即设备抵御电子元件故障的能力。
  • 软错误的来源

    • 辐射引起的错误:由电离辐射引起的错误,可能永久损坏设备或导致系统故障。
    • 老化:电路特性(如延迟)随时间的退化。
    • 工艺变异:芯片制造过程中的晶体管属性变异。
    • 温度:热问题通过增加软错误率以及电路老化率影响可靠性。
  • 软错误的影响

    • 软错误不会永久损坏设备,但可以修改存储在存储元件中的值或更改信号状态,导致DNN加速器产生错误的计算结果或错误的预测。特别是在任务关键系统和空间应用中,软错误已经成为主要问题。
    • 与传统电子设备不同,DNN 加速器是采用尖端技术和大量并行结构构建的协处理器。它们极易因软错误而损坏 。此外,加速器是当今所有复杂计算机系统的生命力,例如 DNN 模型。瞬态故障可以通过多种方式扰乱加速器的运行。然而,在 DNN 加速器中造成瞬态故障的两个原因值得更多关注:(1) 这些加速器内用于改善延迟的复杂内存层次结构 ; (2)DNN加速器的大规模并行结构,倾向于将单一故障扩展到多个故障。
3.4 相关前期工作
  • 现有研究的局限性

    • 一些研究回顾了DNN系统(包括加速器和算法)中的瞬态故障影响,但研究范围有限,未涵盖所有类型的DNN加速器(如GPU和FPGA)。

四.DNN加速器分类

3.1 GPU(图形处理单元)

GPU目前是最突出和最主要的DNN加速器。这是由于GPU的计算能力和大规模并行架构,能够轻松满足DNN的需求。GPU已被用于加速AI算法超过十年,包括训练和推理阶段。主要GPU制造商包括NVIDIA、Intel和AMD。

  • 离线训练系统:当前的基本训练系统采用离线训练方法在GPU上进行。例如,NVIDIA的Tesla V100专为深度学习训练设计,支持世界上最强大的计算机。
  • 嵌入式产品:NVIDIA的Xavier GPU专为嵌入式产品设计,用于如自动驾驶汽车等需要实时物体检测的系统,通常用于推理。
  • 内部结构:GPU的内部结构非常复杂,流处理器(Streaming Multiprocessors, SMs)是并行性的基本单元,每个SM可能有数百到数千个核心,这些核心是基本的处理单元。此外,GPU的内存层次结构高度并行,并在各种资源之间共享。

尽管GPU有其优势,但也有一些局限性,如高功耗,这促使了其他加速器的创新。由于物联网(IoT)设备提供的移动特性,功耗和响应时间是使GPU在某些场景中不合适的两个主要原因。

3.2 ASIC(专用集成电路)

ASIC是一种专门为单一任务定制的处理器,这个任务在设计后无法更改。使用ASIC加速AI算法的目的是解决GPU的功耗限制。由于DNN计算的关键瓶颈是内存访问,ASIC加速器利用数据重用模式来减少片外内存访问,使其速度极快。这些加速器提供了接近GPU的性能,但能效更高。

  • 示例:Google的TPU(张量处理单元)目前用于Google云平台和数据中心的训练和推理。其他示例包括DianNao系列、Cambricon-X、Eyeriss和MAERI。
  • 架构:这些加速器通常使用256×256的MAC单元阵列作为其核心,并配有大量片上内存。然而,随着芯片密度的增加,软错误率也会随之上升。
3.3 FPGA

FPGA的可重配置性、多功能性和低功耗使其成为在特定场景中加速DNN算法的明智选择。FPGA加速器在物联网和移动设备中因其能效而受到欢迎,是深度学习推理的理想选择。此外,FPGA最近在数据中心(如Microsoft Brainwave)中也变得流行,因其出色的推理能力,尽管在一定程度上也用于训练。

  • 实现方法:在FPGA中实现MAC操作有两种方法:使用FPGA的可配置逻辑块(CLB)资源(如查找表、触发器和进位逻辑)或使用数字信号处理(DSP)切片。然而,这两种单元都容易受到软错误的影响,最终可能导致DNN模型输出失败。
3.4 其他

DNN加速器也可以以数字信号处理器(DSP)的形式开发。然而,DSP经常与CPU、FPGA和GPU在异构系统中协同工作,因此将DSP作为独立的DNN加速器分类并不明确。相反,本部分涵盖了不依赖于特定加速器类别的研究,特别是那些针对加速器的内存元素提出的可靠性解决方案。这些解决方案可以应用于不同类别的DNN加速器。

五、方法综述

图4展示了软错误(如辐射)如何影响DNN加速器和DNN模型的可靠性,并通过不同的组件进行可靠性分析。

  1. 故障来源(Source of Faults)

    • 例如辐射,可以引起软错误。
  2. 软错误(Soft Errors)

    • 软错误会影响DNN加速器的内存元素、控制元素和处理元素,进而引发可靠性问题,导致模型不可靠。
  3. DNN加速器(DNN Accelerator)

    • 包括GPU、ASIC、FPGA和其他类型的加速器。这些加速器的不同组件(如内存、控制和处理单元)会受到软错误的影响。
  4. DNN架构(DNN Architecture)

    • 包括CNN和MLP等DNN模型架构。模型的激活、参数、层、激活函数/层等组件会受到软错误的影响。
  5. 可靠性问题(Reliability Issues)

    • 软错误引发的可靠性问题会导致模型不可靠。为了提高可靠性,需要采用各种缓解技术(Mitigation Techniques)。

 

4.1 DNN组件

为了评估每个类别的可靠性,至少应考虑以下DNN组件/指标之一:

  1. 激活和参数(Activations and Parameters)

    • 数据用于DNN模型完成任务。激活指输入、中间输出(特征图)和输出信号。参数指模型的权重和偏置。
  2. 激活函数(Activation Functions)

    • 引入非线性到DNN网络的计算中。激活函数跟随每个神经元/层,输出激活信号。常见的激活函数包括ReLU、Sigmoid和Tanh。
  3. 层(Layers)

    • DNN的计算取决于层的类型。层在神经网络的特定深度同时对一组神经元执行MAC操作。一些层可以掩盖大部分错误,阻止它们到达输出层。
  4. DNN阶段(DNN Phases)

    • DNN的部署分为两个阶段:(1)训练阶段,创建调优的DNN模型。(2)推理阶段,使用训练好的模型对新数据进行预测。
  5. 数据格式(Data Formats)

    • DNN的数据(如激活和参数)以固定点(FxP)或浮点(FP)格式存储在内存元素中。浮点格式包括半精度(FP16)、单精度(FP32)和双精度(FP64)。
  6. 数据集(Considered Dataset)

    • 为了构建高精度模型,需要在更多的数据样本上进行训练。数据集的大小、噪声特征、标签错误、省略值和适用性都是影响模型性能的重要因素。
  7. DNN的目的(Purpose of the DNN)

    • DNN模型的最终目标。常见的有图像分类(识别图像所属类别)和物体检测(定位图像/场景中的物体并识别每个物体)。DNN模型通常通过精度、精准度和召回率等指标进行优化。
  8. DNN架构(DNN Architecture)

    • 指DNN网络中组件的排列方式,如神经元的层和层间连接模式。不同的架构(如MLP和CNN)以不同的方式执行DNN操作,并由不同类型的层组成。
4.2 加速器元素

为了评估每个类别的可靠性,至少应考虑以下加速器的元素/因素之一:

  1. 内存元素(Memory Element)

    • 指DNN数据临时存储的位置,包括DRAM(主内存)、SRAM(片上内存)和寄存器。分析这些元素的值/地址中的故障影响。
  2. 处理/控制元素(Processing/Control Element)

    • 执行DNN的MAC操作和其他逻辑计算,协调加速器的操作/指令。DNN加速器有多个并行的处理/控制元素,包括算术逻辑单元(ALU)、浮点单元(FPU)、加载存储单元(LSU)、触发器、逻辑门、取指和解码单元、调度器以及SRAM基FPGA的配置位。
  3. 评估方法(Evaluation Approaches)

    • 有两种主要策略评估DNN加速器的易损性:硬件故障注入(如束实验)和软件故障注入(如仿真工具)。评估的影响因素包括特定研究使用的故障注入工具、注入故障的层次和注入率(高vs.低)。
  4. 故障/错误模型(Fault/Error Model)

    • 是可靠性评估中最有影响力的因素之一。确定了特定研究中评估的方向和范围,回答了哪些加速器组件会被考虑及其行为、考虑的错误类型(如SEU或SET)以及特定研究中如何定义错误严重性的问题。
  5. 错误传播行为(Error Propagation Behaviors)

    • 一旦在早期层发生错误,它可能会传播到随后的各层,直到到达模型的输出。错误传播过程根据每个类别的底层硬件结构不同而表现不同。
  6. 缓解技术(Mitigation Techniques)

    • 用于保护DNN系统免受瞬态故障的影响。每种DNN加速器类别需要不同的缓解方法,以保护其组件免受软错误的影响。

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

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

相关文章

JetBrains:Wrong tag。注释告警

报错信息如下: Wrong tag ‘copyright:’ ,这个是alt enter 选择 Add copyright:to custom tags,虽然能解决问题,如果创建一个新项目又回出现这个告警提示。 其实这个问题的就是这个在Java Doc里面不存在,才会出现这…

Bugku-CTF-聪明的php

pass a parameter and maybe the flag files filename is random :> 传递一个参数,可能标记文件的文件名是随机的: 于是传一下参,在原网页后面加上/?a1,发现网页出现了变化 3.传入参数,一般情况下是文件包含,或者命令执行&…

linux安装weblogic

文章目录 weblogic是干什么用的weblogic安装前置条件1. 安装jdk2.安装weblogic2.1.创建用户组及用户2.2.切换用户上传安装jar包到目录下,配置文件进行安装准备配置文件2.3保证安装配置文件和安装jar包在同一目录,执行安装命令 3. 创建域来启动页面3.1 构…

Science Robotics 封面论文:美国宇航局喷气推进实验室开发了自主蛇形机器人,用于冰雪世界探索

人们对探索冰冷的卫星(如土卫二)的兴趣越来越大,这可能具有天体生物学意义。然而,由于地表或冰口内的环境极端,获取样本具有挑战性。美国宇航局的喷气推进实验室正在开发一种名为Exobiology Extant Life Surveyor&…

【分巧克力】

题目 代码 #include<bits/stdc.h> using namespace std;const int N 1e510; int n, k; int h[N], w[N]; bool check(int mid) {int cnt 0;for(int i 1; i < n; i){cnt (h[i] / mid) * (w[i] / mid); //切块一定是切出长方形洞才最省料&#xff0c;这样的话能切几…

等保测评练习卷27

等级保护初级测评师试题27 姓名&#xff1a; 成绩&#xff1a; 一、判断题&#xff08;10110分&#xff09; 1.对于大型物联网来说&#xff0c;处理应用层一般由云计算平台和业务应用终端设备构成。&#xff08; T &#xff09; …

企业数据接口:股权穿透

支持查询公司名称&#xff0c;股权路径&#xff0c;股东出资比例&#xff0c;层级等信息&#xff0c;呈现出公司多层次股权结构&#xff0c;高效理清企业投资股权关系

部署服务器项目及发布

当技术总监直接丢给我一个服务器账号密码时&#xff0c;我该怎么完成映射本机&#xff1b;配置网关&#xff1b;配置代理和发布项目呢&#xff1f; 我使用的是putty远程登录到服务器 输入ip后&#xff0c;点open 输入账号密码 登录的账号如果不是root&#xff1b;使用sudo su…

表中记录的操作

一、查询表中的记录 二、在表中插入记录&#xff0c;删除记录&#xff0c;修改记录 三、常用的运算符 四、数据类型

string.format()拼接参数

string.format()拼接参数 private static void testString() {String queryParams String.format("?pwdErrNum%s&userSts%s&lockSts%s", 123, 1, 1);System.out.println(queryParams);}打印结果

事务的原理(学习笔记)

redo log 如果没有redo log 我们在执行完增删改查语句后会将脏页直接刷新到磁盘中&#xff0c;此时用户事务已经提交&#xff0c;一旦刷新失败则无法修复数据。如果不适用redo log 还会存在性能问题&#xff0c;事务中的一组操作都是随机操作数据页&#xff0c;涉及到大量随机…

DeepSeek Coder V2开源发布,首超GPT4-Turbo的代码能力

击败GPT4-Turbo&#xff0c;最强开源代码模型DeepSeek-Coder-V2问世&#xff5c;SiliconCloud上新 6月17日&#xff0c;深度求索正式开源了DeepSeek-Coder-V2模型。 根据相关评测榜单&#xff0c;这是全球首个在代码、数学能力上超越GPT-4-Turbo、Claude3-Opus、Gemini-1.5Pro…

DolphinDB 编程进阶:掌握这十个细节,让你的代码更出色

众所周知&#xff0c;编程细节不仅关乎代码的美观与整洁&#xff0c;更是确保软件质量、提升开发效率、减少维护成本以及保障系统稳定性的基石。 今天和大家分享的内容是&#xff1a;使用 DolphinDB 编程时&#xff0c;十个常被忽略但至关重要的细节。本文涵盖了元编程技巧、数…

攻防演练号角吹响,聚铭铭察高级威胁检测系统助您零失分打赢重保攻坚战

在数字化浪潮中&#xff0c;攻防演练成为了衡量网络安全防御力的核心标尺&#xff0c;其重要性与日俱增。这项由政府、行业监管或企业内部主导的安全活动&#xff0c;随着互联网普及而兴起&#xff0c;现已发展成为全球公认的检验网络安全体系效能的标准。它不仅关乎技术实力的…

JaCoCo - Java Code Coverage Library

概述 JaCoCo&#xff08;Java Code Coverage&#xff09;是一个开源的Java代码覆盖率库。它可以帮助开发人员测量单元测试和集成测试中代码的覆盖情况。通过使用JaCoCo&#xff0c;开发人员可以识别哪些代码没有被测试覆盖&#xff0c;从而提高代码的质量和可靠性。 功能 1.…

C语言宠物系统

功能有增加宠物信息&#xff0c;显示宠物信息&#xff0c;删除宠物信息&#xff0c;修改功能和排序功能&#xff0c;可以选择姓名排序&#xff0c;年龄排序&#xff0c;价格排序。进阶的功能有文件操作&#xff0c;动态内存开辟。。 test.c源文件 #include "Pet.h"v…

角色管理功能助你打造精准智慧校园系统

在智慧校园的信息化架构中&#xff0c;角色管理功能犹如一把精细的钥匙&#xff0c;开启着系统安全与高效运作的大门。它不仅关乎信息的访问权限&#xff0c;更深层次地影响着校园内各类活动的顺畅进行。 智慧校园的角色管理&#xff0c;首先体现在对用户群体的细致划分上。系统…

【Linux】进程间通信:详解 VSCode使用 | 匿名管道

目录 0. 引入&#xff1a;vscode 的使用 下载 推荐插件 连接云服务器 1. 进程间通信 1.1 是什么 1.2 为什么 1.3 怎么办 介绍 &#xff1a; 2. 匿名管道 2.1 引入 2.2 原理 3. 建立管道的系统调用pipe 3.1 介绍 形参 返回值 3.2 代码 3.3 站在内核的角度 编…

通俗易懂的告诉你大模型如何微调!

如今&#xff0c;大模型&#xff08;Large Language Models&#xff09;在人工智能领域可是炙手可热的话题。它们拥有庞大的参数和广泛的知识&#xff0c;能够处理各种复杂的任务。然而&#xff0c;就像一把锋利的刀需要经过磨砺才能更贴合手型一样&#xff0c;大模型也需要经过…

鸿道Intewell操作系统X86生态之:Intel J1900

在当今数字化转型的浪潮中&#xff0c;工业自动化和智能制造的需求日益增长&#xff0c;对实时操作系统的性能和可靠性提出了更高的要求。鸿道Intewell操作系统正是聚焦于如何将高性能的处理器与先进的操作系统相结合&#xff0c;以构建一个强大且稳定的工业控制系统。 鸿道I…