当前位置: 首页 > news >正文

体系结构论文导读(三十四):Design of Reliable DNN Accelerator with Un-reliable ReRAM

文章核心

这篇文章主要讨论了一种在不可靠的ReRAM(阻变存储器)设备上设计可靠的深度神经网络(DNN)加速器的方法。文章提出了两种关键技术来解决ReRAM固有的不可靠性问题:动态定点(DFP)数据表示和设备变异感知(DVA)训练方法。

一、引言

  • 背景介绍

    • DNN在图像分类、语音识别、语言处理和计算机游戏等多个应用中表现出色。
    • DNN的主要计算是向量-矩阵和矩阵-矩阵乘法操作,这些操作对数据的需求量大,使得传统冯·诺依曼架构在存储访问延迟和能量消耗方面成为瓶颈。
    • 处理内存(PIM)通过将计算和存储直接集成,提供了解决存储瓶颈的解决方案。
    • ReRAM是一种新兴的非易失性存储器,具有快速读写速度、高密度和高开关比,因而被广泛研究用于设计高效的机器学习加速器。
  • 挑战

    • ReRAM设备的固有不可靠性,即设备电阻的随机变化,带来了设计可靠的ReRAM DNN加速器的主要挑战。
    • ReRAM的计算是在模拟方式下进行的,电阻的偏差会直接导致乘积和结果的错误,从而显著降低计算精度。
  • 提出的方法

    • 动态定点(DFP)数据表示:根据数据范围自适应地改变小数点位置,减少未使用的最重要位(MSB)带来的误差。
    • 设备变异感知(DVA)训练:在训练过程中向参数添加随机噪声,以增强网络对参数变化的鲁棒性。

二、相关知识

  • 深度神经网络(DNN)

    • 卷积神经网络(CNN):包含卷积层、池化层和全连接层。主要计算在卷积层,通过应用滤波器提取输入特征。
    • 递归神经网络(RNN):利用序列信息,通过记忆之前的计算,适用于许多时间依赖的应用。长短期记忆网络(LSTM)通过引入门机制解决RNN的梯度消失问题。
  • 基于ReRAM的DNN加速器

    • ReRAM设备的电阻受set和reset电压调制,具有低电阻状态(LRS)和高电阻状态(HRS)。
    • 通过控制电阻状态,实现数据存储和计算功能。
  • ReRAM设备的变异性

    • ReRAM电阻的随机变化对DNN加速器的设计提出了挑战。设备的电阻分布通常符合正态或对数正态分布。
    • 设备变异性对计算精度的影响由统计分布的偏差、设备on/off比以及存储的位数决定。

图2(a):ReRAM结构及其电阻转换机制
  • ReRAM结构:ReRAM设备由上下电极和夹在中间的电阻切换层(HfOx, TiO2, Al2O3 或其组合)组成。
  • 电阻转换机制
    • Set过程:氧离子从晶格中逸出,形成氧空位导电丝,使设备处于低电阻状态(LRS)。
    • Reset过程:导电丝断裂,形成一个间隙,设备处于高电阻状态(HRS)。
    • 多级电阻:通过控制间隙长度,设备可以被重置为不同的电阻值,实现多级存储。
图2(b):用于向量矩阵乘法的ReRAM交叉阵列
  • 核心组件:ReRAM加速器的核心是向量矩阵乘法器(VMM)引擎,执行乘法-累加(MAC)操作。
    • 输入缓冲区:接收输入电压。
    • 交叉阵列:通过字线(WL)和位线(BL)进行操作。
    • DAC/ADC转换器:在交叉阵列内外进行数字-模拟和模拟-数字转换。
    • 移位和累加单元:将部分结果累加在一起,得到最终结果。

 

图3展示了影响基于ReRAM的DNN加速器计算精度的因素。

图3(a):
  • 1 bit,σ = σ0:当设备电阻的偏差较小时,读出误差较小。
图3(b):
  • 1 bit,σ = 3σ0:当设备电阻的偏差较大时,读出误差增大,导致计算错误。
图3(c):
  • 1 bit,低on/off比:较低的on/off比减小了不同电阻状态之间的间距,增加了错误的可能性。
图3(d):
  • 2 bit,σ = σ0:使用多级电阻时,相邻状态有较大的重叠,增加了计算错误的可能性。

 

 三、核心技术

A. 动态定点数据表示(DFP)
问题背景:

在深度神经网络(DNN)中,不同层的参数范围可以有很大差异。对于AlexNet训练的CIFAR-10数据集,第一层卷积层的参数范围比后面的全连接层大10倍。传统的固定点数据格式在处理这种范围差异时,未使用的最重要位(MSBs)会导致较大的误差,特别是在设备的on/off比不够大的情况下。

解决方案:

DFP允许根据数据范围自适应地改变小数点位置,从而最小化未使用的MSBs。这种方法可以显著减少读出误差。

其他优势:
  • 先前的研究表明,动态定点表示可以加速机器学习应用的训练和推理。在本研究中,动态定点表示被用于减少设备变异的影响,而不是加速计算。
B. 设备变异感知训练(DVA)
问题背景:

DNN的训练过程是寻找参数空间内损失函数(或成本函数)的最优点。然而,如果从最优点发生小偏移,损失函数会急剧增加,表明DNN对参数变异非常敏感。

解决方案:

如果在一个损失函数相对较小的区域内(可能不会达到全局最小值),使用该区域内的参数可以建立一个对噪声更具鲁棒性的网络。这启发我们在训练过程中故意向DNN参数添加噪声,以提高鲁棒性。

训练过程:
  • 对于每个训练批次,随机生成与卷积核大小相同的噪声矩阵,指定其均值和偏差。
  • 通过按元素相乘的方式将噪声添加到参数中,并使用加入噪声的卷积核进行后续操作。

相关文章:

体系结构论文导读(三十四):Design of Reliable DNN Accelerator with Un-reliable ReRAM

文章核心 这篇文章主要讨论了一种在不可靠的ReRAM(阻变存储器)设备上设计可靠的深度神经网络(DNN)加速器的方法。文章提出了两种关键技术来解决ReRAM固有的不可靠性问题:动态定点(DFP)数据表示…...

WebStock会话

其实使用消息队列也可以实现会话&#xff0c;直接前端监听指定的队列&#xff0c;使用rabbitmq的分组还可以实现不同群聊的效果。 1、依赖搭建&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org…...

5_现有网络模型的使用

教程&#xff1a;现有网络模型的使用及修改_哔哩哔哩_bilibili 官方网址&#xff1a;https://pytorch.org/vision/stable/models.html#classification 初识网络模型 pytorch为我们提供了许多已经构造好的网络模型&#xff0c;我们只要将它们加载进来&#xff0c;就可以直接使…...

软件安全测试报告内容和作用简析,软件测试服务供应商推荐

在数字化时代&#xff0c;软件安全问题愈发凸显&#xff0c;安全测试显得尤为重要。软件安全测试报告是对软件系统在安全性方面进行评估和分析后的书面文件。该报告通常包含测试过程、测试发现、漏洞描述、风险评估及改进建议等重要信息。报告的目的是为了帮助开发团队及时发现…...

算法板子:树形DP、树的DFS——树的重心

思想&#xff1a; 代码&#xff1a; #include <iostream> #include <cstring> using namespace std;const int N 1e5 10;// vis标记当前节点是否被访问过; vis[1]true代表编号为1的节点被访问过 bool vis[N]; // h数组为邻接表; h数组上的每个坑位都串了一个单链…...

在C语言中,联合体或共用体(union )是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。

在C语言中&#xff0c;union 是一种特殊的数据类型&#xff0c;允许在相同的内存位置存储不同的数据类型。这意味着 union 中的所有成员共享同一块内存空间&#xff0c;因此它们之间会相互覆盖。在你给出的 Acceleration_type union 定义中&#xff0c;包含了三种不同类型的成员…...

MS2201以太网收发电路

MS2201 是吉比特以太网收发器电路&#xff0c;可以实现超高速度的 全双工数据传输。它的通信遵从 IEEE 802.3 Gigabit Ethernet 协议 中的 10 比特接口的时序要求协议。 MS2201 支持数据传输速率从 1Gbps 到 1.85Gbps 。 主要特点 ◼ 电源电压&#xff1a; 2.5V 、 3.3V …...

乐乐音乐Kotlin版

简介 乐乐音乐Kotlin版&#xff0c;主要是基于ExoPlayer框架开发的Android音乐播放器&#xff0c;它支持lrc歌词和动感歌词(ksc歌词、krc歌词、trc歌词、zrce歌词和hrc歌词等)、多种格式歌词转换器及制作动感歌词、翻译歌词和音译歌词。 编译环境 Android Studio Jellyfish | …...

C语言——预处理和指针

C语言——预处理和指针 预处理宏宏定义宏的作用域带参的宏 文件包含条件编译 指针指针的概念指针的定义指针变量初始化指针一维整型数组 预处理 编程的流程分为&#xff1a;编辑、编译、运行、调试四个阶段&#xff1b; 预处理属于编译阶段&#xff0c;编译过程又可以分为&…...

iptables防火墙(一)

目录 1、Linux防火墙基础 2、iptables的四表五链结构 2.1 iptables的四表五链结构介绍 2.2 四表五链 2.2.1 四表 2.2.2 五链 2.3 包过滤的匹配流程 2.3.1 规则链之间匹配顺序 2.3.2 规则链内部的处理规则 2.3.3 数据包过滤的匹配流程 3、 编写防火墙规则 3.1 iptabe…...

(leetcode学习)50. Pow(x, n)

实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000示例 2&#xff1a; 输入&#xff1a;x 2.10000, n 3 输出&#xff1a;9.26100示例 …...

QT 5.12.0 for Windows 安装包 QT静态库 采用源码静态编译生成

qt-5.12.0-static.zip 下载地址(资源整理不易&#xff0c;下载使用需付费&#xff0c;且文件较大&#xff0c;不能接受请勿浪费时间下载): 链接&#xff1a;https://pan.baidu.com/s/1ftfHFG_jGFwVaOAvBVrNFg?pwdtvtp 提取码&#xff1a;tvtp...

【生成式人工智能-三-promote 神奇咒语RL增强式学习RAG】

如何激发模型的能力 提示词 promotCoTRL 增强式学习Reforcement learning提供更多的资料提供一些范例Incontext- learning 任务拆解让模型自己检查错误让模型多次生成答案Tree of Thoughts让模型使用其他工具RAG写程序POT其他工具 让多个模型合作参考 在模型不变的情况下&#…...

C++连接oracle数据库连接字符串

//远程连接&#xff0c;需要安装oracle客户端sprintf(szConnect4, ("Provider OraOLEDB.Oracle.1; Password %s; Persist Security Info True; User ID %s; Data Source \"(DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST %s)(PORT 1521)) )(CONN…...

判断字符串是否接近:深入解析及优化【字符串、哈希表、优化过程】

本文将详细解析解决这个问题的思路&#xff0c;并逐步优化实现方案。 问题描述 给定两个字符串 word1 和 word2&#xff0c;如果通过以下操作可以将 word1 转换为 word2&#xff0c;则认为它们是接近的&#xff1a; 交换任意两个现有字符。将一个现有字符的每次出现转换为另…...

C 和 C++ 中信号处理简单介绍

信号处理是编程中一个重要的主题&#xff0c;特别是在需要处理异步事件和错误情况的系统中。在 C 和 C 语言中&#xff0c;信号处理机制提供了一种优雅的方式来响应特定的系统事件&#xff0c;例如用户中断、异常情况或其他信号。在这里&#xff0c;我将详细介绍 C 和 C 中信号…...

什么是云边协同?

当今信息技术高速发展的时代&#xff0c;"云边协同"&#xff08;Edge Cloud Collaboration&#xff09;已经成为一个备受关注的话题。它涉及到云计算和边缘计算的结合&#xff0c;为数据处理、存储和应用提供了全新的可能性。本文将介绍云边协同的概念、优势以及在不…...

YOLOv5改进 | 主干网络 | 将backbone替换为MobileNetV2【小白必备教程+附完整代码】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…...

ARMxy边缘计算网关用于过程控制子系统

在现代工业生产中&#xff0c;过程控制系统的优化对于提高生产效率、保证产品质量、降低能源消耗等方面都具有重要意义。而 ARMxy 工控机作为一种高性能、高可靠性的工业控制设备&#xff0c;正逐渐成为过程控制系统优化的新选择。 ARMxy 工控机采用了先进的 ARM 架构处理器&am…...

Python | TypeError: unsupported operand type(s) for +=: ‘int’ and ‘str’

Python | TypeError: unsupported operand type(s) for : ‘int’ and ‘str’&#xff1a;深度解析 在Python编程中&#xff0c;遇到“TypeError: unsupported operand type(s) for : ‘int’ and ‘str’”这类错误通常意味着你尝试将一个整数&#xff08;int&#xff09;和…...

StructBERT中文情感分析模型高可用部署方案

StructBERT中文情感分析模型高可用部署方案 1. 引言 在实际业务场景中&#xff0c;一个情感分析模型不仅要准确&#xff0c;更要稳定可靠。想象一下&#xff0c;电商平台的用户评论实时分析、客服系统的情绪识别、社交媒体的舆情监控——这些场景都需要724小时不间断的服务。…...

大模型智能体 (agent)简易流程介绍准

引言 在现代软件开发中&#xff0c;性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序&#xff0c;性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言&#xff0c;性能优化涉及多个层面&#x…...

My-TODOs:免费开源的跨平台桌面待办清单应用终极指南

My-TODOs&#xff1a;免费开源的跨平台桌面待办清单应用终极指南 【免费下载链接】My-TODOs A cross-platform desktop To-Do list. 跨平台桌面待办小工具 项目地址: https://gitcode.com/gh_mirrors/my/My-TODOs 在信息爆炸的时代&#xff0c;高效管理日常任务已成为提…...

用SU-03T离线语音模块给STM32项目加个‘嘴’和‘耳朵’:从智能公元配置到串口通信全流程

用SU-03T离线语音模块为STM32项目打造智能交互系统 在嵌入式开发领域&#xff0c;语音交互正逐渐成为提升用户体验的关键功能。SU-03T作为一款高性价比的离线语音识别模块&#xff0c;能够为STM32项目快速添加"听"和"说"的能力&#xff0c;而无需依赖云端服…...

芝麻粒-TK:蚂蚁森林自动化能量收取终极指南

芝麻粒-TK&#xff1a;蚂蚁森林自动化能量收取终极指南 【免费下载链接】Sesame-TK 芝你麻咸鱼的粒-TK 项目地址: https://gitcode.com/gh_mirrors/ses/Sesame-TK 芝麻粒-TK&#xff08;Sesame-TK&#xff09;是一款专为蚂蚁森林用户打造的自动化能量收取工具&#xff0…...

3个核心技术深度破解Cursor免费限制:AI代码编辑器的无限使用方案

3个核心技术深度破解Cursor免费限制&#xff1a;AI代码编辑器的无限使用方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reache…...

为什么 Rust 开发的 glTF 查看器是 3D 开发者的新宠?

为什么 Rust 开发的 glTF 查看器是 3D 开发者的新宠&#xff1f; 【免费下载链接】gltf-viewer glTF 2.0 Viewer written in Rust 项目地址: https://gitcode.com/gh_mirrors/gl/gltf-viewer 在 3D 图形开发领域&#xff0c;glTF 已经成为事实上的标准格式&#xff0c;而…...

避坑指南:Ascend 310芯片+CANN工具包在麒麟系统下的5个常见安装错误

Ascend 310芯片CANN工具包在麒麟系统下的5个典型安装陷阱与解决方案 当Ascend 310芯片遇上麒麟操作系统&#xff0c;这种国产硬件的黄金组合本应带来无缝的开发体验&#xff0c;但实际部署中总有几个"暗礁"让开发者措手不及。不同于常规安装教程&#xff0c;本文将直…...

从原理到代码:深入理解STM32的SDIO时钟分频与FatFS性能优化

从原理到代码&#xff1a;深入理解STM32的SDIO时钟分频与FatFS性能优化 在嵌入式开发中&#xff0c;SD卡存储方案因其高容量和便携性成为数据记录的首选。但许多开发者在使用STM32的SDIO接口时&#xff0c;常遇到读写速度不稳定、初始化失败等问题。这背后往往隐藏着对SDIO时钟…...

matlab 点云体素中心最近邻点下采样(详细过程版)

目录 一、算法原理 1、实现过程 二、代码实现 三、结果展示 博客长期更新,本文最近一次更新时间为:2026年4月10日。 一、算法原理 1、实现过程 点云体素最近邻点滤波核心思想是通过空间网格化,在每个网格(体素)内仅保留一个最具代表性的点,以达到简化点云、减少数据量的…...