嵌入式存储器为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 定义:是一个Mybatis的增强工具,只在Mybatis基础上增强不做改变,简化开发,提升效率 2.MP实战 2.1 创建springboot工程,勾选web,引入依赖 <dependency> <groupId>mysql<…...
22.Netty源码之解码器
highlight: arduino-light 抽象解码类 https://mp.weixin.qq.com/s/526p5f9fgtZu7yYq5j7LiQ 解码器 Netty 常用解码器类型: ByteToMessageDecoder/ReplayingDecoder 将字节流解码为消息对象;MessageToMessageDecoder 将一种消息类型解码为另外一种消息类…...
R语言【Tidyverse、Tidymodel】的机器学习方法
机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,总结和分析实验结果的利器。机器学习涉及的理论和方法繁多,编程相当复杂,一直是阻碍机器学习大范围应用的主要困难之一,由此诞生了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打开运行命令窗口,在运行框中…...
8.2一日总结
1.记录更新: untracked: 未追踪(新增的文件) unmodefied: 未修改 modefied: 已修改 staged: 已暂存 2、添加指定文件到暂存区: 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官方测试数据导入
一、数据准备 百度网盘链接 链接:https://pan.baidu.com/s/1rPZBvH-J0367yQDg9qHiwQ?pwd7n5n 提取码:7n5n文档格式 {"index":{"_id":"1"}} {"account_number":1,"balance":39225,"firstnam…...
uniapp项目的pdf文件下载与打开查看
最近写的uniapp项目需要新增一个pdf下载和打开查看功能,摸索了半天终于写了出来,现分享出来供有需要的同行参考,欢迎指正 async function DownloadSignature() {//请求后端接口,返回值为一个url地址let resawait req.flow.flowDo…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
