ISSCC 34.8 用于AI边缘设备的22nm,31.2TFLOPS/W,16Mb ReRAM存内浮点计算架构

news2024/11/17 15:41:36

本文将分享存内浮点计算前沿论文——ISSCC 2024《34.8 A 22nm 16Mb Floating-Point ReRAM Compute-in-Memory Macro with 31.2TFLOPS/W for AI Edge Devices》。下面将从文章基本信息、创新点解析、芯片测试与对比及未来展望四个部分展开介绍。

  • 基本信息介绍

1、研究背景及面临的挑战

AI边缘设备是专为在本地处理数据而设计的智能设备,能够在靠近数据源的地方执行计算任务,从而降低延迟并提高响应速度。这些设备利用深度学习和机器学习算法,将数据处理能力从云端转移到设备本地,工作原理包括传感器数据采集、模型推理和反馈控制。AI边缘设备的常见应用场景包括智能家居(如语音助手和安全监控)、工业自动化(实时监控和预测维护)、智能交通(自动驾驶车辆的实时决策)等,这表明AI边缘设备在减少数据传输需求和提升隐私保护方面的潜力。AI边缘设备通常采用专用的硬件加速器作为核心处理器,如FPGA、GPU或定制的加速器架构,以达到高性能和低功耗的实际需求。通过研究更高效的AI边缘处理器,社会能够获得更为智能的解决方案,加速推动各行业的数字化转型。

当前AI边缘处理器仍然存在许多问题。AI 边缘设备需要高精度计算才能在实际应用中进行准确推理,同时又保持高能效和低待机功率,以最大限度地延长电池寿命。因此AI边缘处理器往往采用片上非易失性存储器,以便在断电期间存储权重数据。其次,存储器的带宽和延迟影响了数据传输速率,限制了处理器在大规模数据处理时的效率。此外,面对不断增加的AI模型复杂性,如何有效管理和更新模型以适应新的应用场景也是一个关键挑战。

2、本文工作介绍

面向上述问题,本文提出了以下创新点:

  1. 提出了KWPA混合计算架构方案,针对ReRAM计算中权重处理做出相应优化,以提高计算精度和速度。
  2. 考虑到输入数据的位宽问题,文章通过多位输入压缩(RS-MIC)方案对输入数据进行无损压缩,提升数据传输的带宽并降低延迟。
  3. 开发了一种双符号位(HF-DSB)权重编码方案,使得处理器能够根据应用需求自动调整模型参数,从而提升适应性和灵活性。

3、研究团队

本篇论文的作者来自存储器设计实验室,该实验室属于国立清华大学并由张孟凡教授指导研究。实验室的研究方向包括先进存储器设计、涵盖非易失性、低电压、忆阻器等多个方向。国立清华大学成立于1911年,起初是清华学校的一部分,之后在台湾发展成为一所综合性的研究型大学。该校在工程、自然科学和计算机科学领域有良好声望,与多个国际高校和研究机构保持紧密的合作关系。

  • 创新点解析
  1. 核级权重预对齐方案(KWPA)

KWPA方案旨在解决在非易失性AI边缘处理器中,权重预对准期间因数据截断而造成的精度损失。KWPA通过引入动态调整机制和高精度计算,确保在数据处理的每个阶段尽量保证权重有效精度,从而保持整体推理效率。

图1 KWPA的浮点数处理流程

KWPA的预处理流程可以分为几个关键步骤,如图1所示:

1)权重提取动态调整:从训练好的AI模型中提取出权重后的量化过程中,KWPA使用动态调整算法实时监测权重的分布情况,调整量化参数,确保在量化时尽量减少重要信息的丢失。

2)量化权重存储:KWPA采用分段量化的方法,将权重分为多个区间,并根据每个区间实现相应的量化,以减少截断误差。量化后的权重被存储在非易失性存储器中。

3)输入数据预对准:前两步已经将整个神经网络存储在片上,所以权重可以离线预加载。KWPA通过将每个核的最大指数指定为核共享指数(EK),在离线时预对齐所有的浮点数权重。然后,KWPA基于指数差对每个权重的符号和尾数进行对齐从而生成权重PA-MK,由此避免了浮点数的数据截断问题。

4)MAC过程:在推理阶段,KWPA将量化后的权重加载到计算单元中。通过读取ReRAM阵列的一行来检索EK,并将其存储在指数处理电路的寄存器中。在MAC操作过程中,输入预对齐电路以16位浮点数格式提取输入,并将输入组的最大指数指定为输入共享指数(EIN),以生成P位的PA-MIN。PA-MIN被发送到ReRAM阵列,与PA-MK进行MAC操作。得到的MAC值经过指数处理,重新转换为32位浮点数的输出格式。

在电路实现上,KWPA的核心部分是分段量化单元,负责将权重分为多个区间并进行相应的量化处理。通过硬件实现的分段量化,可以减少量化过程中的计算复杂度和时间消耗。论文中针对量化部分设计了存储接口,使得量化后的权重能够快速写入和读取非易失性存储器。这一接口支持多种存储格式,以适应不同的应用需求。KWPA方案通过精确的动态调整和高效的计算流程,成功地减少了因权重预对准导致的精度损失,提升了非易失性AI边缘处理器的推理性能。这一方案在设计上不仅考虑了计算效率,还注重了能效,适用于边缘计算场景。

  1. 重新安排的多位输入压缩方案(RS-MIC)

RS-MIC专为优化基于ReRAM的乘加(MAC)操作而设计,如图2所示。该方案的主要目的是减少ReRAM中执行MAC操作所需的计算周期数,从而实现更快的处理速度和更高的能效。

图2 RS-MIC的示意图

RS-MIC的核心思想在于通过输入数据的重调度和压缩,减少ReRAM阵列中的活动周期。具体来说,通过将多比特的输入数据分为多组的2b数据并根据其二进制值(如'11', '10', '01', '00')进行分类,同时将非零值重新编码为更少的比特,这一过程显著降低了操作的复杂度。例如,二进制值'11','10' 和 '01' 被压缩为单比特'1',而'00'则被完全忽略,不参与后续的MAC操作。这样的处理方式使得原本需要多周期完成的操作能够在单一周期内完成,显著提升了效率。

在具体实施方面,RS-MIC技术首先将权重分割并存储在ReRAM的相邻行中,允许系统在每个MAC操作周期中并行访问多个权重,实现高效的数据处理。输入数据的重调度和压缩进一步减少了传输和处理的复杂性,使得压缩后的输入可以同时对多个权重行进行操作。这种并行计算能力大幅提升了处理速度。最终,通过特定的累加器将所有并行处理的结果按照其原始位置和重要性进行合并和累加,以得到最终的MAC结果。

RS-MIC方案的优势显而易见。它不仅大幅提高了计算速度,通过将多周期操作压缩到单个周期内完成,还显著减少了计算延迟,这对于要求实时性的应用尤为重要。同时,通过并行处理和减少计算周期数,不仅提高了处理速度,也优化了能源消耗,增强了系统的能效比。此外,这种方法的灵活性使其可以适配多种不同位宽的权重和输入数据,以满足更多的应用场景和需求。

  1. HRS 支持的双符号位权重编码方案(HF-DSB)

HRS支持的双符号位权重编码方案(HF-DSB)是一项创新的技术,专为优化阻变随机存取存储器(ReRAM)中的乘加运算(MAC)而设计,如图3所示。该方案通过减少在ReRAM阵列中访问低阻态(LRS)单元的数量来降低电流消耗,从而不仅提高了能效和系统性能,还保持了权重值的不变性,确保了计算操作的准确性。

图3 HF-DSB的概念与操作

HF-DSB方案的核心在于对传统二进制补码格式中的权重值进行特定的转换,目的是减少活跃的LRS单元数量。这种转换通过计算X[N]×2N+1,其中 N是发生转换的列位置。此过程涉及将特定的权重位从幅度位转化为符号位,并赋予其负的位置值。例如,在处理   X0= -1的情况时,其二进制补码 "11111111" 通过选定第2位以添加转换项 1×22+1(00001000),被转换为 "00000111" = "11111111" +"00001000",从而将多个LRS状态的位转换为HRS状态。而在 X1 = -103的例子中,由于转换位(第2位)的值为0,权重保持不变,显示为原补码 "10011001"。

在ReRAM实施中,HF-DSB格式的权重及其相应的FLAG_DSB被编程到阵列中。FLAG_DSB是一个关键的标志位,用于在MAC操作期间指示是否应用了HF-DSB转换。在MAC操作开始前,FLAG_DSB从ReRAM阵列中检索并存储在寄存器中,确保在MAC操作期间能够根据权重的位置值和符号正确处理输入数据和权重,从而生成准确的乘加运算值(pMACVMIC)。

  • 芯片测试与对比

图4 Shmoo图以及对比分析

本文所提出的用于浮点运算的基于ReRAM的存算一体芯片在22nm CMOS工艺下制备而成,其总面积为8.2mm2,存储容量为16Mb且支持0.7-0.8V的供电电压。该芯片的输入精度为FP16或BF16,权重精度为FP16或BF16,输出精度为FP32。在供电电压为0.8V、输入精度为BF16时,芯片的吞吐量为0.86 TFLOPS,能效为31.2 TFLOPS/W;在供电电压为0.8V、输入精度为FP16时,芯片的吞吐量为0.78 TFLOPS,能效为28.7 TFLOPS/W。图4显示了芯片的Shmoo测试,结果显示芯片具有较好的稳定性且在0.8V供电电压下具有5ns的低延时,由此也验证了作者提出的RS-MIC解决方案是可行的。

此外,作者在BF16精度下使用CIFAR - 100数据集训练的ResNet20模型模拟了芯片的性能。如图5所示,与逐层权重预对齐相比,K - WPA将权重预对齐过程中的截断数据量减少了1.96 ~ 2.47倍;RS - MIC相比于传统的数字比特串行多比特输入和传统的零跳比特串行多比特输入,MAC操作循环次数分别减少了4.73和1.78倍;采用HF - DSB权重表示,ReRAM阵列的平均能耗降低了1.31×。当综合考虑这三个方案时,它们共同将CIM核的能效提高了1.82×。如图4所示,与以往采用INT8输入、INT8权重和INT24输出的工作相比,本文实现了FoM的1.86×改进。

图5 所提出方案的模拟结果

从本文的芯片测试结果可以看出,K-WPA方案保持了一定的精度同时减少了数据量的存储,RS-MIC方案减少了MAC操作的延时与能量消耗,HF-DSB方案减少了ReRAM单元的低组态状态以此降低了ReRAM阵列的电流消耗,以上三个方案的共同协作为非易失性的AI边缘处理器提供了新的解决方案。

四、未来展望

未来,存储技术的发展前景广阔,将迎来一系列突破性进展。首先,在存储器架构优化方面,通过进一步优化ReRAM阵列结构,可以显著提升并行计算能力。研究新型存储单元设计将大幅提高存储密度和计算效率,满足日益增长的计算需求。其次,精度与效率的平衡也是未来研究的重点领域之一。开发更先进的量化技术,将在保持高精度的同时显著减少数据传输,;研究动态精度调整机制,使计算精度能够根据具体任务需求灵活调整;探索新的权重编码方案进一步优化存储空间的利用和计算效率。最后,异构集成是存储技术发展的另一重要方向。通过研究ReRAM与其他存内计算技术(如SRAM、MRAM等)的异构集成,可以充分发挥不同存储技术的优势,形成更强大的计算系统。例如,SRAM的高速读写特性可以与ReRAM的高存储密度特性相结合,形成一种兼具速度和容量的混合存储架构。

总之,通过在存储器架构优化、精度与效率平衡以及异构集成等方面的深入研究和探索,未来的计算系统将变得更加高效、灵活和强大。这些进展不仅将推动人工智能和大数据处理的发展,还将为广泛的应用场景提供坚实的技术基础。未来的存储技术将继续突破现有瓶颈,开创计算与存储一体化的新纪元,为信息技术的持续创新提供强有力的支持。

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

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

相关文章

QualiMap:一款强大的二代测序比对文件质控工具

在生物信息学中,数据质量的评估和可视化是很重要的一环。今天我们来聊聊一个常用的工具——Qualimap,它是一个用于评估高通量测序数据质量的开源软件,尤其是对RNA-seq和DNA测序数据的分析非常友好。无论你是本科生还是刚接触生物信息学的新人…

阿博图书馆管理:SpringBoot实战指南

第二章 开发技术介绍此次B/S结构、Java技术以及mysql数据库是该阿博图书馆管理系统的主要开发技术,然后对系统的整体设计、数据库设计、功能模块设计、系统页面设计以及系统程序设计进行了详细的研究与规划。 2.1 系统开发平台 在该阿博图书馆管理系统中&#xff0c…

大学学校用电安全远程监测预警系统

1.概述: 该系统是基于移动互联网、云计算技术,通过物联网传感终端,将办公建筑、学校、医院、工厂、体育场馆、宾馆、福利院等人员密集场所的电气安全数据,实时传输至安全用申管理服务器,为用户提供不间断的数据跟踪&a…

【Axure高保真原型】标签切换动态面板页面

今天和大家分享通过标签切换动态面板页面的原型模板,点击标签可以选择并且打开下方对应的人物详细页面。标签组是用中继器制作的,所以使用也很简单,只需要在中继器表格里填写标签名,就可以生成对应的标签;标签对应的内…

网通产品硬件设计工程师:汽车蓝牙收发器用网络隔离变压器有哪些选择呢?

Hqst盈盛(华强盛)电子导读:今天分享的是网通设备有关工程师产品设计时可供选择的两款汽车蓝牙收发器用网络隔离变压器... 下面我们就一起来看看网通设备有关工程师产品设计时可供选择的两款汽车蓝牙收发器用网络隔离变压器,让您的…

实习前学一学git

工作区 暂存区 本地仓库 远程仓库 git commit -m "提交信息" 提交的是暂存区里的内容,没有git add 的不会被提交到本地仓库

浅谈电气火灾监控系统在变电所的应用

摘要:阐述电气火灾监控系统在变电所的应用,电气火灾监控系统的管理措施,包括运行标准、运行模式、运行原则、警报阈值、监控显示。安科瑞叶西平1870*6160015 关键词:监控系统;警报阀值;运行模式;医院&…

findCirclesGrid检测不到圆点棋盘格技术原因分析与解决方案

为什么你检测不到圆点标定板 简介 某日,同事反映某厂的标定板无法识别,经过多次尝试,依旧失败。最后被总结为非标尺寸标定板导致。隐隐觉的这不是真正的原因,标定板本身可以自行设计成为各种不同的参数。这让我想起几年前也遇到…

在Windows上安装Git

一、下载Git安装包 访问Git官网:首先,你需要访问Git的官方网站下载安装包:在官网页面上,找到并点击“Downloads”按钮,然后选择“Windows”系统对应的安装包进行下载。安装包通常以.exe格式提供 二、安装Git 双击运…

错误解决 ---- Unexpected lexical declaration in case block no-case-declarations

1. 报错提示 154:15 error Unexpected lexical declaration in case block no-case-declarations154:21 error resId is assigned a value but never used no-unused-vars158:15 error Unexpected lexical declaration in case block no-case-declarations158:21 e…

Excel中如何批量删除括号里的内容

一、问题的缘起 微信群里有人问,如何在Excel中删除1列单元格中的括号和其中的人名,如下图所示。传统一个个删除,不仅太麻烦,还有可能出错。有没有什么便捷的办法呢,今天我们一起来分享五种不错的解决方法。 图示 二、…

突发!OpenAI CTO Murati 官宣离职

2024 年 9 月 26 日,OpenAI 首席技术官 Mira Murati 宣布将离开 OpenAI ,这一令人意外的举动标志着这家公司近期迎来另一名重要高管的离职。 Murati 在 X 上的一篇帖子中写道:“我离开公司是由于我想腾出时间和空间来进行自己的探索”&#x…

算法: 滑动窗口题目练习

文章目录 滑动窗口长度最小的子数组无重复字符的最长子串最大连续1个个数 III将x减到0的最小操作数水果成篮找到字符串中所有字母异位词串联所有单词的子串最小覆盖子串 总结 滑动窗口 长度最小的子数组 做这道题时,脑子里大概有个印象,知道要用滑动窗口,但是对于滑动窗口为什…

基于 LangChain 的自动化测试用例的生成与执行

在前面的章节中,分别介绍了 Web、App、接口自动化测试用例的生成。但是在前文中实现的效果均为在控制台打印自动化测试的用例。用例需要手动粘贴,调整之后再执行。 那么其实这个手动粘贴、执行的过程,也是可以直接通过人工智能完成的。 应用…

基于springboot+vue学生宿舍管理系统设计与实现

博主介绍:专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

【PyTorch】环境配置

Window11RTX4060配置CUDA11.8pytorch2.0.0 下载CUDA11.8 进入官网下载Link,然后点击Archive of Previous CUDA Releases,找到对应版本11.8。 选择对应操作系统版本,点Download下载到本地。 下载cuDNN 点击链接Link,找到CU…

【Java】多线程基础操作

多线程基础操作 Thread类回顾Thread类观察线程运行线程的休眠常用方法构造方法属性获取方法 中断线程线程状态线程等待 初识synchronized问题引入初步使用初步了解可重入锁死锁 volatile问题引入初步使用volatile 与 synchronized 线程顺序控制初步了解wait()notify()防止线程饿…

有效解决配置管理混乱,麒麟桌面操作系统V10 sp1 2403最新版本推出统一配置系统

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 当前桌面操作系统中可通过配置定义的应用有限&a…

分享一个基于python的智慧居家养老服务平台 django社区养老管理系统与可视化统计(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

JavaScript的条件语句

if条件语句 if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是JavaScript 的两个特殊值,true表示真,false表示伪。 if语句语法规范 if(布尔值){语句;}var m3if(m3){console.l…