存内计算技术—解决冯·诺依曼瓶颈的AI算力引擎
文章目录
- 存内计算技术背景
- CSDN首个存内计算开发者社区
- 硅基光电子技术
- 存内计算提升AI算力
- 知存科技存算一体芯片技术
- 基于存内计算的语音芯片的实现挑战
- 参考文献
存内计算技术背景
存内计算技术是一种革新性的计算架构,旨在克服传统冯·诺依曼架构的瓶颈,并实现更高效的数据处理。随着大数据时代的到来,传统的冯·诺依曼架构已经难以满足不断增长的计算需求,因为它将处理单元和存储器分开,导致数据传输成本高昂且计算效率低下。存内计算技术的提出就是为了解决这个问题。
存内计算产业分析如下图:
CSDN首个存内计算开发者社区
CSDN首个存内计算开发者社区来了,基于知存科技领先的存内技术,涵盖最丰富的存内计算内容,以存内技术为核心,史无前例的技术开源内容,囊括云/边/端侧商业化应用解析以及新技术趋势洞察等, 邀请业内大咖定期举办线下存内workshop,实战演练体验前沿架构;从理论到实践,做为最佳窗口,存内计算让你触手可及。
传送门:https://bbs.csdn.net/forums/computinginmemory
首个存内计算开发者社区,0门槛新人加入,发文享积分兑超值礼品;
成为存内计算大使,享受资源支持与激励,打造亮眼个人品牌,共同引流存内计算潮流。
硅基光电子技术
近年来,硅基光电子技术在高密度、高性能光电集成电路方面崭露头角,尤其是其与CMOS技术的兼容性,为其成为大规模、廉价光电子集成电路平台打开了无限可能。然而,硅材料的禁带宽度却使其在通信波段的光电探测器应用受到限制,引发对光电转换的迫切需求。
光电转换作为光互连系统中不可或缺的关键部分,要求高速和高灵敏度的探测器,而传统的冯·诺依曼体系结构却面临着内存与计算单元之间频繁数据传输的问题,导致大量能源的消耗,尤其在资源受限的设备中更为显著。这就是我们迎来的存储墙问题。
为了解决这一问题,学者们提出了内存计算(computing in-memory, CIM)技术,一种能够直接在内存中进行计算的新型体系结构。而在内存计算技术中,基于静态随机存取存储器(SRAM)的存内计算成为研究热点,其单元的健壮性和存取速度使其成为突破冯·诺依曼瓶颈的一项关键技术。
第一个层面电路主要包括两方面:
1)基本存储单元,包括读写分离结构、可转置结构和紧凑耦合结构;
2)外围辅助电路,包括模数转换电路(analog-to-digitalconversion, ADC)、数模转换电路(digital-to-analogconversion, DAC)、冗余参考列,数字辅助电路和模拟辅助电路(图1(a))。
第二个层面所能实现的运算操作:
1)纯数字存内计算,包括布尔逻辑和内容可寻址(content-addressablememory, CAM);
2)混合信号存内计算,包括乘累加(multiplication andaccumulation, MAC)、汉明距离和绝对值差和(sum of absolute difference, SAD)(图1(b))。
第三个层次主要从加速卷积神经网络算法(Convolutional Neural Network, CNN)、分类器算法、模式识别算法(k-nearest neighbor, k-NN)和高级加密标准算法(Advanced Encryption Standard, AES)等应用方面进行总结与回顾(图1©)。
存内计算提升AI算力
存内计算:AI芯片领域的璀璨明星
在人工智能(AI)的时代浪潮中,存内计算技术被广泛认为是最适合AI的芯片架构,备受学术界和产业界的瞩目。2018年,国际固态电路会议(ISSCC)专门设立了存内计算议程,为该领域的深入讨论奠定了基础。而在2019年和2020年,ISSCC会议上关于存内运算的论文更是如火如荼,仅ISSCC2020就涌现了7篇与存内计算相关的论文。
学术界在电子器件领域的研究会议中也持续掀起存内计算的热潮。在2019年的IEDM会议上,有三个专门的议程,共呈现了二十余篇与存内计算相关的论文。这一现象反映了学术界对于存内计算技术前景的高度关注和积极探索。
除了学术界的深入研究外,产业界也纷纷加入存内计算的布局。IBM以其独特的相变存内计算技术为基础,积累了数年的技术经验。台积电正在全力推进基于ReRAM的存内计算方案。而在产业投资方面,诸如英特尔、博世、美光、Lam Research、应用材料、微软、亚马逊、软银等巨头已纷纷投资于基于NOR Flash的存内计算芯片。
事实上,利用存储器进行计算的研究可追溯至上世纪90年代。然而,长期以来,存内计算一直未能真正实现产业落地。这一现象的原因在于设计挑战较大,更为关键的是缺乏杀手级应用。然而,随着深度学习的大规模爆发,存内计算技术才开始逐渐走向产业化,成为AI芯片领域的璀璨明星。
存内计算技术的兴起得益于深度学习技术的蓬勃发展,为其提供了杀手级应用。深度学习的大规模应用使得对计算速度和效率的需求急剧增加,而传统的冯·诺依曼架构面临着瓶颈。存内计算技术通过将计算与存储结合,避免了数据在内存和处理器之间频繁传输的问题,极大地提高了计算效率。这为AI应用提供了更加高效、快速的计算解决方案,成为当前AI芯片领域的重要技术趋势。
知存科技存算一体芯片技术
知存科技引领存内计算技术:NOR FLASH芯片的崭新时代
存内计算技术正成为人工智能芯片领域的一颗璀璨明星,而知存科技凭借其先进的NOR FLASH存内计算技术正引领这一技术的新时代。
王绍迪在谈及NOR FLASH存内计算时指出,相较于使用数字电路计算,NOR FLASH在进行存内计算时能够显著减少数据搬运消耗的能量。更为引人瞩目的是,NOR FLASH在乘加法运算方面的功耗也相当低,这为芯片带来了百倍甚至千倍的功耗降低。考虑到外围电路的功耗,NOR FLASH存内计算最终能够实现的功耗降低在几十倍到上百倍之间,不同的算法和应用也将实现不同程度的提升。
目前,NOR FLASH存内计算技术已经在单芯片中支持了约300M左右的深度学习权重参数,无需额外的内存即可进行计算。这使得该技术能够满足大部分AI场景的需求。智能语音模型和端侧图像推理模型的大小通常在几百K到几十兆之间,而NOR FLASH存内计算芯片却能轻松胜任这些任务。
存内计算技术不仅能够支持主流的8比特模型精度,而且还在研发高达16比特的解决方案以满足更高要求的极限场景。王绍迪表示,知存科技的目标是未来存内计算技术能够覆盖60%-70%的AI应用,为各种场景提供高效、低功耗的计算解决方案。
知存科技在存内计算技术上的技术水平领先业界3-4年。早在2012、2013年,郭昕婕博士就开始研究基于NOR FLASH的存内计算技术。与其他公司相比,知存科技投入研发的时间更早,经历了一系列流片迭代,积累了大量的技术经验。存内计算涉及到的设计挑战包括控制电路、模拟电路、编程技术、可靠性设计和架构设计等方面。特别是模拟设计方面,由于FLASH进行的是模拟计算,需要满足数字电路算法的要求,这对模拟运算提出了严格的要求。
存内处理
“存”与“算”距离更近,但电路设计仍然是分离的,
计算由存储器内部的独立计算单元完成。
基于存内计算的语音芯片的实现挑战
深度学习已广泛应用于各类人工智能任务,但传统的深度学习加速器在面向数据流的计算架构优化上仍受制于传统冯·诺依曼体系结构所带来的「存储墙」问题。频繁的计算单元与存储单元间数据搬移导致了巨大的能耗,迫切需要创新性的解决方案。
存内计算技术(computing-in-memory,CIM)崭露头角,成为解决「存储墙」问题的有效途径。然而,传统存内计算仅支持有限的运算,例如向量内积。为了支持完整的AI应用,一支团队在可重构计算架构的基础上,融合了存内计算技术,成功设计了一款数模混合计算芯片,代号为Thinker-IM。这一创新性的芯片在语音识别应用中展现出了卓越的能耗表现。
挑战一:需要设计融合多个 SRAM-CIM 单元的计算架构和数据流调度方案。一般情况下,单个 SRAM-CIM 无法存下 DNN 中的全部权重。因此需要多个 SRAM-CIM 单元协同计算,需要考虑如何组织它们的计算方式。
挑战二:需要针对复杂 AI 任务设计多比特输出 SRAM-CIM 单元。对于简单 AI 任务(如手写体识别),SRAM-CIM 单元 1 比特输出精度可以满足识别需求。但对于复杂的识别任务(如语音识别),SRAM-CIM 单元 1 比特输出就会导致 Partial Sum(部分和)的精度损失,影响最终识别精度。
挑战三:RNN 推理过程是一种时域上的迭代计算,其计算过程相当耗时。我们发现在二值 RNN 中的累加过程中存在一些冗余计算。见图 2©,在累加过程中,如果中间数据足够大而超过剩余累加的最大值,将保证最终结果大于 0。此时剩余累加周期的计算就是冗余的,如能去除这些计算,将能够有效加速 RNN 计算。
Thinker-IM 架构如图所示,主要包括语音信号处理部分和基于 CIM 的 RNN 计算引擎。芯片设计中三项关键技术分别针对性解决了上述三个问题。
参考文献
1.中国科学院-基于静态随机存取存储器的存内计算研究综述:电路,功能以及应用
2.知存科技
3.Thinker 人工智能芯片团队 清华大学微电子所
4.存内计算白皮书
相关文章:

存内计算技术—解决冯·诺依曼瓶颈的AI算力引擎
文章目录 存内计算技术背景CSDN首个存内计算开发者社区硅基光电子技术存内计算提升AI算力知存科技存算一体芯片技术基于存内计算的语音芯片的实现挑战 参考文献 存内计算技术背景 存内计算技术是一种革新性的计算架构,旨在克服传统冯诺依曼架构的瓶颈,并…...
数据结构--树
一、树的基本术语 结点:树中的一个独立单元 结点的度:结点下分支的个数 树的度:树中所有结点中度的最大值 非终端结点:度不为0的结点 双亲和孩子:结点下的子树称为该结点的孩子.相应地,该结点称为孩子的双亲 兄弟:同一个双亲的孩子之间 祖先:从根到该结点所经分支上的所…...

计算机网络_1.3电路交换、分组交换和报文交换
1.3电路交换、分组交换和报文交换 一、电路交换1、“电路交换”例子引入2、电路交换的三个阶段3、计算机之间的数据传送不适合采用电路交换 二、分组交换1、发送方(1)报文(2)分组(3)首部 2、交换节点3、接收…...

【AI视野·今日NLP 自然语言处理论文速览 第七十七期】Mon, 15 Jan 2024
AI视野今日CS.NLP 自然语言处理论文速览 Mon, 15 Jan 2024 Totally 57 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Machine Translation Models are Zero-Shot Detectors of Translation Direction Authors Michelle Wastl, Ja…...

神经网络的一些常规概念
epoch:是指所有样本数据在神经网络训练一次(单次epoch(全部训练样本/batchsize)/iteration1)或者(1个epochiteration数 batchsize数) batch-size:顾名思义就是批次大小,也就是一次训练选取的样…...

【从零开始的rust web开发之路 三】orm框架sea-orm入门使用教程
【从零开始的rust web开发之路 三】orm框架sea-orm入门使用教程 文章目录 前言一、引入依赖二、创建数据库连接简单链接连接选项开启日志调试 三、生成实体安装sea-orm-cli创建数据库表使用sea-orm-cli命令生成实体文件代码 四、增删改查实现新增数据主键查找条件查找查找用户名…...
SQL中limit的用法
在SQL中,LIMIT是一个用于限制返回结果行数的关键词。它可用于在查询结果中指定返回的行数,从而可以用于分页查询或限制结果集大小。 LIMIT关键词有两种常用的语法格式: LIMIT offset, count:该语法用于指定返回结果的起始位置和…...

vue3 [Vue warn]: Unhandled error during execution of scheduler flush
文章目录 前言一、报错截图二、排除问题思路相关问题 Vue3 优雅解决方法异步组件异同之处:好处:在使用异步组件时,有几个注意点: vue3 定义与使用异步组件 总结 前言 Bug 记录。开发环境运行正常,构建后时不时触发下面…...
【vue2源码】阶段一:Vue 初始化
文章目录 一、项目目录1、主目录2、打包入口 二、构造函数Vue的初始化1、创建 Vue 构造函数2、初始化内容分析2.1 initMixin2.2 stateMixin2.3 eventsMixin2.4 lifecycleMixin2.5 renderMixin 一、项目目录 源码版本:2.7.16 1、主目录 src |-- compiler # 包…...

14.java集合
文章目录 概念Collection 接口概念示例 Iterator 迭代器基本操作:并发修改异常增强循环遍历数组:遍历集合:遍历字符串:限制 list接口ListIteratorArrayList创建 ArrayList:添加元素:获取元素:修…...

二叉树顺序结构堆实现
目录 Test.c测试代码 test1 test2 test3 🎇Test.c总代码 Heap.h头文件&函数声明 头文件 函数声明 🎇Heap.h总代码 Heap.c函数实现 ☁HeapInit初始化 ☁HeapDestroy销毁 ☁HeapPush插入数据 【1】插入数据 【2】向上调整Adjustup❗ …...

正则表达式 与文本三剑客(sed grep awk)
一,正则表达式 (一)正则表达式相关定义 1,正则表达式含义 REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意…...

【XR806开发板试用】全志 XR806 OpenHarmony 鸿蒙系统固件烧录
大家好,我是极智视界,本教程详细记录了全志 XR806 OpenHarmony 鸿蒙系统固件烧录的方法。 在上一篇文章《【嵌入式AI】全志 XR806 OpenHarmony 鸿蒙系统固件编译》中咱们已经编译生成了系统镜像,这里把这个编译出来的镜像烧录到 XR806 板子里…...

linux环境安装git、maven、jenkins等
重启 jenkins的命令: systemctl start jenkins 如果没有vim 命令 可以使用 yum install vim 安装 vim git 下载包地址 https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz 1.安装依赖环境: yum install -y curl-devel expat-devel ge…...

RabbitMQ快速上手
首先他的需求实在什么地方。我美哟明显的感受到。 它给我的最大感受就是脱裤子放屁——多此一举,的感觉。 他将信息发送给服务端中间件。在由MQ服务器发送消息。 服务器会监听消息。 但是它不仅仅局限于削峰填谷和稳定发送信息的功能,它还有其他重要…...

SpringBoot activemq收发消息、配置及原理
SpringBoot集成消息处理框架 Spring framework提供了对JMS和AMQP消息框架的无缝集成,为Spring项目使用消息处理框架提供了极大的便利。 与Spring framework相比,Spring Boot更近了一步,通过auto-configuration机制实现了对jms及amqp主流框架…...
视频智能识别安全帽佩戴系统-工地安全帽佩戴识别算法---豌豆云
视频智能识别安全帽佩戴系统能够从繁杂的工地、煤矿、车间等场景下同时对多个目标是否戴安全帽穿反光衣进行实时识别。 当视频智能识别安全帽佩戴系统发现作业人员没有戴安全帽、穿反光衣或者戴安全带,系统会及时报警提醒,并抓拍存档。 视频智能识别安…...

指针的深入理解(三)
这一节主要使用复习回调函数, 利用冒泡模拟实现qsort函数。 qsort 排序使用冒泡排序,主要难点在于运用元素个数和字节数以及基地址控制元素的比较: if里面使用了一个判断函数,qsort可以排序任意的数据,原因就是因为可…...

【Linux C | 网络编程】详细介绍 “三次握手(建立连接)、四次挥手(终止连接)、TCP状态”
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

主从数据库MySQL服务重启步骤与注意事项
主从数据库MySQL服务重启步骤与注意事项 实验环境: 172.20.26.34 (主应用服务器) 172.20.26.26 (备应用服务器) 172.20.26.37 (主库服务器) 172.20.26.38 (从库服务器&…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...