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

嵌入式存储器为AI的实现提供了实现架构

近年来,大脑启发式计算机领域的研究活动获得了巨大的发展。主要原因是试图超越传统的冯·诺依曼架构的局限性,后者越来越受存储器-逻辑通信的带宽和等待时间的局限性的影响。在神经形态架构中,内存是分布式的,可以与逻辑共定位。鉴于新的电阻式存储器技术可以集成在CMOS工艺的互连层中,因此可以轻松地提供这种可能性。

尽管嵌入式AI部署中当前的大部分注意力都集中在大型常规计算系统中实现深度学习算法,但对设备和电路技术的影响却是混杂的。尽管先进的标准CMOS技术已用于开发GPU和特定的电路加速器,但并没有真正推动使用任何“受生物启发”的硬件。新兴的电阻式存储设备(RRAM)可以打开途径,由于可以(感知到)不够成熟,可以通过在相对较低的偏置电压下调节电导来模拟纳米级的生物学上合理的突触行为,因此这种方法已被限制在研究组中技术。

但是,这些新设备可以为将嵌入式AI大量部署到消费和工业产品中所面临的主要问题之一提供解决方案:能源效率。如果将AI的使用范围扩大,将所有数据传输到云/服务器系统进行分析的能源开销将很快达到AI的经济可行性的极限。此外,对于自动驾驶汽车和工业控制等实时系统而言,如果连接到5G基础设施以处理数据的服务器集中在定义明确的区域中而不在整个基础设施中分布,则延迟仍然是一个问题。由于这些原因,并且在欧洲也出于隐私考虑,拥有具有边缘/使用点的,具有AI功能的系统具有高度的能源效率,并且可能具有逐步改善的本地学习能力,将变得越来越重要。

嵌入式AI系统非常适合处理需要实时响应的数据,并且在能源是主要问题的情况下。正如tinyML计划的成功所证明的那样,对此类系统的兴趣正在增长。当处理稀疏,时域,传感器产生的数据流(如麦克风,激光雷达,超声波等)时,以生物为灵感(即,存储元件还充当互连和计算元件)的方法在该领域具有额外的优势。这些系统将然后便能够在模拟域中进行大多数操作,从而避免了耗电,不必要的多次模数转换以及使用非时钟数据驱动架构来简化数据流。仅在信号脉冲期间没有时钟和存储元件中的耗散,在没有输入的情况下会导致极低的功耗(因此适用于稀疏信号),并且可能不需要特定的睡眠模式即可获得电池供电的工作状态。此外,非易失性仅在首次加电或系统最终更新时才需要设置参数,而不需要在每次加电时从外部源进行传输。

但是,使用新型电阻式存储器不仅限于此类“边缘”或“生物启发”应用,还可以使执行慢速非易失性高速缓存/快速大容量存储中间存储器功能的传统全数字时钟系统受益神经加速器中的水平。在这种情况下,好处将是减少快速DRAM和SRAM缓存区域,同时仍减少访问大容量存储的延迟。

生物启发计算的硬件平台

从技术角度来看,RRAM由于具有CMOS兼容性,高可伸缩性,强大的耐用性和良好的保留特性,因此是神经形态应用的良好候选者。然而,定义大规模混合集成神经形态系统(具有电阻记忆突触的CMOS神经元)的实际实施策略和有用应用仍然是一个艰巨的挑战。

已经提出了诸如相变存储器(PCM),导电桥RAM(CBRAM)和氧化物RAM(OxRAM)之类的电阻RAM(RRAM)设备来模拟生物学上受突触功能启发的功能,这些功能对于实现神经形态硬件至关重要。在不同类型的模拟突触特征中,依赖于尖峰时序的可塑性(STDP)是最常用的一种,但肯定不是唯一的可能性,并且某些可能显示出对实际应用的实现更为有用。

实施这些思想并验证该方法的电路示例是SPIRIT,由IEDM 2019提出[2]。已实现的SNN拓扑是单层的,完全连接的拓扑,其目标是在MNIST数据库上执行推理任务,有10个输出神经元,每类一个。为了减少突触的数量,将图像缩小到12×12像素(每个神经元144个突触)。使用单级单元(SLC)RRAM实现突触,即仅考虑低和高电阻级别。该结构为1T-1R类型,每个单元带有一个访问晶体管。多个单元并联连接以实现各种重量。在学习框架上进行的突触量化实验表明,介于-4到+4之间的整数值是分类精度和RRAM数量之间的良好折衷。由于我们旨在获得加权电流,因此必须将4个RRAM用于正加权。对于负权重,也可以使用RRAM对符号位进行编码:但是,由于将需要容错三重冗余,因此,最好使用4个附加RRAM来实现负权重。

“整合与解雇(IF)”模拟神经元设计的指导原则是,需要在数学上与具有监督的离线学习中使用的tanh激活函数对等。规格如下:(1)突触重量等于±4的刺激必须产生尖峰;(2)神经元必须产生正负尖峰;(3)它们必须有一个不应期,在此期间它们不能散发尖峰,但必须继续积分。神经元是围绕MOM 200fF电容器设计的。两个比较器用于将其电压电平与正阈值和负阈值进行比较。由于必须在RRAM的端子之间使用限制为100mV的电压降读取RRAM,因此为了防止将设备设置为LRS,所获得的电流不能被神经元直接积分,因此它们会被电流注入器复制。评估了编程条件的影响,并使用足够的编程条件来确保有足够大的内存窗口。放松机制的确出现在很短的时间范围内(不到一小时)。因此,分类精度不会随时间降低。读取稳定性也得到了验证,将高达800M的峰值发送到电路。

MNIST数据库的10K测试图像上的分类精度测得为84%。该值必须与从88%的理想模拟获得的精度进行比较,该精度受简单的网络拓扑限制(1层具有10个输出神经元)。每个突触事件的能量耗散等于3.6 pJ。当考虑电路逻辑和SPI接口时,它总计为180 pJ(可以通过优化通信协议来降低)。测量表明,图像分类平均需要136个输入峰值(对于ΔS= 10):每个输入小于一个峰值累积,与130nm节点中的等效形式编码MAC操作相比,能量增益提高了5倍。能量增益来自(1)基本操作的亮度(累积,而不是像经典编码中那样进行乘法累加)和(2)由于尖峰编码而导致的活动稀疏性。稀疏性好处将随着层数的增加而增加。

这个小演示者展示了如何能够与传统嵌入式方法相提并论,但功耗却大大降低。实际上,在SNN演示中使用的速率代码使该实现等效于经典编码的实现:从经典域到尖峰域的代码转换不会引起准确性上的任何损失。但是,从概念验证中使用的简单拓扑(即单层感知器)可以解释,与使用更大网络和更多层的最新深度学习模型相比,分类精度略低。为了克服这种差异,目前正在实施一种更为复杂的拓扑结构(MobileNet类),并且分类精度将相应提高,同时具有相同的能源效益。

相同的方法将扩展到嵌入有麦克风或激光雷达的电路,以本地和实时分析数据流,从而无需通过网络传输。速率编码和时间编码策略都可以用于优化网络,具体取决于信号的信息内容。最初,学习将集中进行,并且仅将推理集成到系统中,但是在以后的世代中将引入一定程度的增量学习。

利用对嵌入式AI产品有益的属性RRAM的另一种方法是使用基于RRAM交叉开关阵列的模拟架构。与传统的数字实现相比,它们可以提供更密集的乘法累加器(MAC)功能实现,在推理和学习电路中都至关重要。如果采取进入时域并消除时钟的进一步步骤,则可获得超出当前技术水平的紧凑型低功率系统。尽管这种方法非常有前途并且受到学术界的广泛研究,但该方法仍未被业界广泛接受,这指出了设计,验证,表征和认证模拟异步设计的难度,以及扩展模拟解决方案的难度。在我们看来,

这些记忆的部分感知困难来自观察到的变异性,但这是实验条件的反映。当在300mm内工作并且集成过程更加成熟时,我们观察到更好的分布,因此我们假设可变性问题可以在工业化过程中解决。设计工具也即将问世,更精确的模型也逐渐可用。温度的变化当然会产生影响,但是这种计算类型的统计性质及其在推理阶段某种程度上参数变化的内在鲁棒性使其最终影响远不如社区使用的常规模拟设计那么重要。模拟交叉开关方法的优点之一是,当施加“零”数据时,自动没有电流。

有些问题更为根本。第一个是功率效率和高度并行性来自权衡时间复用(工作频率)与面积的关系:权衡有利的网大小(问题或类别数量)的极限是多少?它如何取决于实现节点?另一个是这些存储器的可循环性。虽然对于推理阶段就足够了,并且可以在初始化阶段以可接受的开销来完成交叉开关的编程,但是由于过多的写入负载,使用经典反向传播方案和迭代次数的片上学习是毫无疑问的。但是,正在探索使用其他学习方法的非常有前景的途径,并有望在未来几年内提供有效的解决方案。

在引入这种类型的电路之前,可以在常规实现中使用RRAM和3D集成等技术来以较小的功率预算和较小的尺寸系数提供解决方案。当今,用于高度定制化应用的FPGA实现,运行在MCU或CPU上的纯软件实现,或专用于诸如通用GPU的高度并行多核/加速器(类似于GPU)的通用软件已成为当今的主流。所有这些还可以从本地非易失性存储器中受益,这可以使FPGA变得更紧凑,更适合MCU / CPU和多核/加速器芯片的存储器层次结构。特别是,使用单片3D集成的专用版本,将RRAM平面插入模拟神经元平面之间,

在欧洲H2020计划NeuRAM3的框架下,我们研究了这种方法,并领导了一支由欧盟研发机构组成的跨学科研究小组,致力于研究先进的设备技术,电路架构和神经形态芯片的制造算法之间的最佳匹配。在该项目的许多结果中,如下图所示,可以看到以CoolCube 3D整体工艺制造的OxRAM的示例,该示例连接到顶部和底部CMOS层。展望未来,这种技术可以用于在专用于AI的复杂CMOS电路结构中集成非常密集的阵列。

数字。OxRam的CoolCube 3D单片集成在顶部和底部CMOS层之间的互连内,为密集的多层神经网络开辟了道路。

通过铜-铜键合的3DTSV和3D也是有望成为紧凑型神经形态系统的候选者,该系统包括高度集成的体系结构中的各种元素,其中根据应用程序对分区进行了优化,或者嵌入式AI元素与成像器或其他传感或致动元素紧密耦合。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!(点击找小助理领取)

相关文章:

嵌入式存储器为AI的实现提供了实现架构

近年来,大脑启发式计算机领域的研究活动获得了巨大的发展。主要原因是试图超越传统的冯诺依曼架构的局限性,后者越来越受存储器-逻辑通信的带宽和等待时间的局限性的影响。在神经形态架构中,内存是分布式的,可以与逻辑共定位。鉴于…...

iOS开发-格式化时间显示刚刚几分钟前几小时前等

iOS开发-格式化时间显示刚刚几分钟前几小时前等 在开发中经常遇到从服务端获取的时间戳,需要转换显示刚刚、几分钟前、几小时前、几天前、年月日等格式。 主要用到了NSCalendar、NSDateComponents这两个类 NSString *result nil;NSCalendarUnit components (NSC…...

ffmpeg视频音频命令

视频音频合并 视频音频合并,以视频时间为主,音频短了循环 方法1:混音,视频权重0,volume调节音量,aloop无限循环,duration:first为第一个素材的长度 ffmpeg -i video.mp4 -i audio.mp3 -filter_…...

Jenkins工具系列 —— Jenkins 安装并启动

文章目录 安装涉及相关链接选择安装Jenkins版本安装JenkinsJenkins web页面启动卸载Jenkins 安装涉及相关链接 Jenkins官网: https://www.jenkins.io/zh/ Jenkins下载安装步骤: https://www.jenkins.io/zh/download/ 安装各种版本OpenJDK: h…...

使用中间人攻击的arp欺骗教程

文章目录 前言一、查看网络接口配置第 1 步:从受害者处获取 IP 配置第 2 步:在 Linux 中打开数据包转发第 3 步:使用 arpspoof 将包重定向到您的计算机步骤4:拦截来自路由器的包裹步骤5:从目标的浏览器历史记录中嗅探图…...

设计模式、Java8新特性实战 - List<T> 抽象统计组件

一、背景 在日常写代码的过程中,针对List集和,统计里面的某个属性,是经常的事情,针对List的某个属性的统计,我们目前大部分时候的代码都是这样写,每统计一个变量,就要定义一个值,且…...

【JavaEE初阶】博客系统后端

文章目录 一. 创建项目 引入依赖二. 设计数据库三. 编写数据库代码四. 创建实体类五. 封装数据库的增删查改六. 具体功能书写1. 博客列表页2. 博客详情页3. 博客登录页4. 检测登录状态5. 实现显示用户信息的功能6. 退出登录状态7. 发布博客 一. 创建项目 引入依赖 创建blog_sy…...

day51-Mybatis-Plus/代码生成器

1.Mybatis-Plus 定义&#xff1a;是一个Mybatis的增强工具&#xff0c;只在Mybatis基础上增强不做改变&#xff0c;简化开发&#xff0c;提升效率 2.MP实战 2.1 创建springboot工程&#xff0c;勾选web&#xff0c;引入依赖 <dependency> <groupId>mysql<…...

22.Netty源码之解码器

highlight: arduino-light 抽象解码类 https://mp.weixin.qq.com/s/526p5f9fgtZu7yYq5j7LiQ 解码器 Netty 常用解码器类型&#xff1a; ByteToMessageDecoder/ReplayingDecoder 将字节流解码为消息对象&#xff1b;MessageToMessageDecoder 将一种消息类型解码为另外一种消息类…...

R语言【Tidyverse、Tidymodel】的机器学习方法

机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”&#xff0c;是发现新规律&#xff0c;总结和分析实验结果的利器。机器学习涉及的理论和方法繁多&#xff0c;编程相当复杂&#xff0c;一直是阻碍机器学习大范围应用的主要困难之一&#xff0c;由此诞生了Python…...

vscode 第一个文件夹在上一层文件夹同行,怎么处理

我的是这样的 打开终端特别麻烦 解决方法就是 打开vscode里边的首选项 进入设置 把Compact Folders下边对勾给勾掉...

[JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 第四章 绘制Q版地图、键盘上下左右地图场景切换 文章目录 系列文章目录前言一、本章节…...

【NLP概念源和流】 01-稀疏文档表示(第 1/20 部分)

一、介绍 自然语言处理(NLP)是计算方法的应用,不仅可以从文本中提取信息,还可以在其上对不同的应用程序进行建模。所有基于语言的文本都有系统的结构或规则,通常被称为形态学,例如“跳跃”的过去时总是“跳跃”。对于人类来说,这种形态学的理解是显而易见的。 在这篇介…...

服务器运行python程序的使用说明

服务器的使用与说明 文章目录 服务器的使用与说明1.登录2.Python的使用2.1 服务器已安装python32.2 往自己的用户目录安装python31.首先下载安装包2.解压缩3.编译与安装 2.3 新建环境变量2.4 测试 3 创建PBS作业并提交 1.登录 windowsr打开运行命令窗口&#xff0c;在运行框中…...

8.2一日总结

1.记录更新&#xff1a; untracked&#xff1a; 未追踪&#xff08;新增的文件&#xff09; unmodefied&#xff1a; 未修改 modefied&#xff1a; 已修改 staged&#xff1a; 已暂存 2、添加指定文件到暂存区&#xff1a; git add 文件名 gi…...

JavaScript(四)DOM及CSS操作

1、DOM简介 DocumentType: Html的声明标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Docume…...

window中,关闭java占用端口的进程

查看端口被占用的情况 netstat -ano|findstr "端口号"使用Tasklist查看对于 PID 的进程名 tasklist|findstr "PID号"通过 taskkill 命令方式结束进程 taskkill /f /t /im Pid...

【Python】PySpark 数据计算 ⑤ ( RDD#sortBy方法 - 排序 RDD 中的元素 )

文章目录 一、RDD#sortBy 方法1、RDD#sortBy 语法简介2、RDD#sortBy 传入的函数参数分析 二、代码示例 - RDD#sortBy 示例1、需求分析2、代码示例3、执行结果 一、RDD#sortBy 方法 1、RDD#sortBy 语法简介 RDD#sortBy 方法 用于 按照 指定的 键 对 RDD 中的元素进行排序 , 该方…...

Elasticsearch官方测试数据导入

一、数据准备 百度网盘链接 链接&#xff1a;https://pan.baidu.com/s/1rPZBvH-J0367yQDg9qHiwQ?pwd7n5n 提取码&#xff1a;7n5n文档格式 {"index":{"_id":"1"}} {"account_number":1,"balance":39225,"firstnam…...

uniapp项目的pdf文件下载与打开查看

最近写的uniapp项目需要新增一个pdf下载和打开查看功能&#xff0c;摸索了半天终于写了出来&#xff0c;现分享出来供有需要的同行参考&#xff0c;欢迎指正 async function DownloadSignature() {//请求后端接口&#xff0c;返回值为一个url地址let resawait req.flow.flowDo…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...