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

窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算

在当今计算领域中,存内计算技术凭借其出色的向量乘矩阵操作效能引起了广泛关注。本文将深入研究基于向量乘矩阵的存内计算原理,并探讨几个引人注目的代表性工作,如DPE、ISAAC、PRIME等,它们在神经网络和图计算应用中表现出色,为我们带来了前所未有的计算体验。

窥探向量乘矩阵的存内计算原理

生动地展示了基于向量乘矩阵的存内计算最基本单元。这一单元通过基尔霍夫定律,在仅一个读操作延迟内完整执行一次向量乘矩阵操作。演示了一个2×1的向量(V1, V2)与一个1×2的向量(G1, G2)T相乘的过程,其中ReRAM阻值以(G1, G2)T表示,电压则以(V1, V2)表示。基于基尔霍夫定律,比特线上的输出电流便是向量乘矩阵操作的结果。将这一操作扩展,将矩阵存储在ReRAM阵列中,通过比特线输出相应的结果向量。

探寻代表性工作的独特之处

 1. DPE (Hewlett Packard Laboratories) 

DPE是专为向量乘矩阵操作设计的存内计算加速器。其独特之处在于提供了一种转化算法,将实际的全精度矩阵巧妙地存储到精度有限的ReRAM存内计算阵列中。实验证明,仅用4位的DAC/ADC就能保证计算结果没有精度损失,而性能提升更是达到了令人瞠目的1000到10000倍。

2. ISAAC (University of Utah) 

ISAAC是专为神经网络推理设计的存内计算架构,其多个存内计算阵列通过C-mesh片上网络连接。每个阵列包含用于不同计算层的多种单元,如最大池化单元、Sigmoid单元、eDRAM缓存等。ISAAC通过ReRAM阵列实现向量乘矩阵操作,采用流水线方式提高推理效率,为神经网络的推理提供了独特而高效的解决方案。

 3. PRIME (University of Santa Barbara) 

PRIME同样专注于神经网络推理,其独特之处在于直接使用ReRAM单元进行计算。ReRAM bank包括Mem subarrays(存储)、FF subarrays(计算)和Buffer subarray(缓存)。相较于其他结构,PRIME实现了显著的性能提升和能耗节约,为神经网络推理领域带来了全新的可能性。

逐鹿存内计算的新时代

随着计算领域不断演进,存内计算技术如一匹矫健的鹿儿,勇敢地迎接着新时代的挑战。DPE、ISAAC、PRIME等工作不仅为存内计算打开了崭新的篇章,也为我们提供了探索计算世界更深层次的机会。

 4. PipeLayer (Duke University) 

在神经网络训练领域,PipeLayer是一匹勇敢的鹿。其存内计算系统架构旨在通过复制多份权重数据实现少气泡的pipeline结构。PipeLayer巧妙地使得反向传播阶段的误差传递和权值计算并行进行,从而提高了存内计算训练神经网络的计算效率。实验结果显示,与传统的GPU系统相比,PipeLayer实现了42倍的性能提升和7倍的能耗节约。

5.TIME (Tsinghua University) 

在神经网络训练领域,TIME则为存内计算技术打开了新的可能性。为了降低训练时权重矩阵更新的延迟和能耗,TIME采取了权重矩阵复用的方法,与其他方法不同,它不是复制多份权重矩阵,而是通过特殊的数据映射操作来消除拷贝操作的写入开销。实验证明,TIME在有监督的神经网络和强化学习网络方面分别实现了5.3倍和126倍的能耗节约。

 踏入未知的LerGAN之境 (Tsinghua University)

LerGAN作为对抗生成网络(GAN)的存内计算系统架构,为存内计算的发展开辟了新的天地。通过去除零相关的操作,重新构建卷积核,LerGAN巧妙地应对了GAN的挑战。它提出了一个三层堆叠的存内计算阵列结构,使得GAN训练的数据传输路径变短,路由减少。实验结果表明,相较于传统的CNN,LerGAN在性能和能耗方面分别取得了7.46倍和7.68倍的提升。

PCM+CMOS:IBM的前瞻之举 

IBM的PCM+CMOS存内计算方法,将存储单元与计算结合,实现了全连接神经网络的前向传播、反向传播和权值计算。其独特的结构中使用PCM单元存储权值的高位,而电容器单元存储权值的低位,巧妙地平衡了计算的稳定性和存储的寿命。该方法为存内计算提供了一种前瞻性的解决方案。

结语:携手向前迈进

这一系列存内计算的代表性工作,如同一群勇敢的鹿群,勇敢地探索着计算领域的未知领域。DPE、ISAAC、PRIME、PipeLayer、TIME、LerGAN、PCM+CMOS等工作,各自带有独特的特点,共同构筑起存内计算技术的辉煌画卷。

未来,存内计算技术将继续与创新者携手前行,挑战更大的计算难题。这不仅是对技术的不懈探索,更是对计算领域的一次颠覆性的变革。在这个充满激情和创造力的时代,我们期待存内计算技术与计算领域共同书写新的传奇。携手向前,踏上计算的无限征程。

基于向量乘矩阵的存内计算技术正积极推动着神经网络和图计算领域的发展。DPE、ISAAC、PRIME等代表性工作展示了这一领域的多样性和创新。我们可以期待,存内计算技术将在提高计算效率、减少能耗等方面发挥更为关键的作用,为计算领域带来更多的创新与突破。在这个充满活力的领域中,我们正迈向一个更加智能和高效的未来。

参考文献;

《中国科学》杂志社:内存计算研究进展

相关文章:

窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算

在当今计算领域中,存内计算技术凭借其出色的向量乘矩阵操作效能引起了广泛关注。本文将深入研究基于向量乘矩阵的存内计算原理,并探讨几个引人注目的代表性工作,如DPE、ISAAC、PRIME等,它们在神经网络和图计算应用中表现出色&…...

Python flask 表单详解

文章目录 1 概述1.1 request 对象 2 示例2.1 目录结构2.2 student.html2.3 result.html2.4 app.py 1 概述 1.1 request 对象 作用:来自客户端网页的数据作为全局请求对象发送到服务器request 对象的重要属性如下: 属性解释form字典对象,包…...

【Tomcat与网络3】Tomcat的整体架构

目录 1.演进1:将连接和处理服务分开 2演进2:Container的演进 3 再论Tomcat的容器结构 4 Tomcat处理请求的过程 5 请求的处理过程与Pipeline-Valve管道 在前面我们介绍了Servlet的基本原理,本文我们结合Tomcat来分析一下如何设计一个大型…...

k8s中cert-manager管理https证书

前言 目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。 安装采用Helm方式 Chart地址: ht…...

如何搭建私有云盘SeaFile并实现远程访问本地文件资料

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-hsDnDEybLME85dTx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

Centos7安装Nginx-1.21

一、编译前提,需要安装必要的包 yum install gcc pcre-devel openssl-devel zlib-devel wget -y 二、下载对应的NGINX包 wget http://nginx.org/download/nginx-1.21.0.tar.gz 三、解压nginx tar xf nginx-1.21.0.tar.gz 四、编译并安装nginx到/usr/local/ng…...

React 面试题

1、组件通信的方式 父组件传子组件:通过props 的方式 子组件传父组件:父组件将自身函数传入,子组件调用该函数,父组件在函数中拿到子组件传递的数据 兄弟组件通信:找到共同的父节点,用父节点转发进行通信 …...

Postgresql使用update

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 解决问题一、关联表更新1.关联一张表2.关联多张表 二、根据状态更新为不同的值 解决问题 通过多张关联表更新主表的字段,根据状态更新为不同的值。 一、…...

Django视图函数技巧,从入门到实战

文章目录 Django视图函数1.request对象的方法2.视图函数的常用的返回对象(1)response对象(2)JsonResponse对象(3)redirect() :给浏览器了一个30x的状态码 3.设置响应头和状态码(1&am…...

部署实战--修改jar中的文件并重新打包成jar文件

一.jar文件 JAR 文件就是 Java Archive ( Java 档案文件),它是 Java 的一种文档格式JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,多出了一个META-INF/MANIFEST.MF 文件META-INF/MANIFEST.MF 文件在生成 JAR 文件的时候…...

RT-Thread线程管理(使用篇)

layout: post title: “RT-Thread线程管理” date: 2024-1-26 15:39:08 0800 tags: RT-Thread 线程管理(使用篇) 之后会做源码分析 线程是任务的载体,是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文,具体来说就是各个变量和数据&#xff0c…...

【HarmonyOS】鸿蒙开发之ArkTs初步认识——第2.1章

ArkTs简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 以下图可以展示Js,TS,ArkTs的关系 ArkTs基础语…...

随手记:uni-app中使用iconfont彩色图标

1、打开阿里巴巴矢量库 2、将下载的压缩文件解压,cmd打开控制台 3、安装npm install -g iconfont-tools(首次使用安装) 4、输入iconfont-tools会生成一个文件夹 5、打开这个文件夹,用里面的相应的css就行...

02-OpenFeign-微服务接入

1、依赖 由于是spring cloud项目&#xff0c;注意spring-boot、cloud、alibaba的版本兼容性 1.1、父级依赖 <properties><java.version>1.8</java.version><spring-boot.version>2.7.18</spring-boot.version><spring.cloud.version>20…...

【前端工程化】环境搭建 nodejs npm

文章目录 前端工程化是什么&#xff1f;前端工程化实现技术栈前端工程化环境搭建 &#xff1a;什么是Nodejs如何安装nodejsnpm 配置和使用npm 介绍npm 安装和配置npm 常用命令 总结 前端工程化是什么&#xff1f; 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块…...

在VM虚拟机搭建NFS服务器

NFS共享要求如下&#xff1a; &#xff08;1&#xff09;共享“/mnt/自已姓名的完整汉语拼音”目录&#xff0c;允许XXX网段的计算机访问该共享目录&#xff0c;可进行读写操作。&#xff08;说明&#xff1a;XXX网段&#xff0c;请根据你的规划&#xff0c;再具体指定&#xf…...

springboot并mybatis入门启动

pom.xml,需要留意jdk的版本&#xff08;11&#xff09;和springboot版本要匹配&#xff08;2.7.4&#xff09;&#xff0c;然后还要注意mybatis启动l类的版本&#xff08;2.2.2&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xm…...

什么是单例模式与饿汉式单例模式的区别是什么?

什么是单例模式与饿汉式单例模式的区别是什么&#xff1f; 单例模式和饿汉式单例模式都是软件设计模式&#xff0c;它们的区别在于实例的创建时间和线程安全性。 单例模式是一种设计模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。单例模式可以保…...

【数据结构】认识数据结构 (通俗解释)

目录 1.认识数据结构 1.1 什么是数据结构 1.1.1 什么是数据&#xff1f; 1.1.2 什么是结构&#xff1f; 1.1.3 通俗比喻&#xff1a; 1.1.4 标准概念概念定义&#xff1a; 1.2为什么需要数据结构&#xff1f; 1.认识数据结构 1.1 什么是数据结构 数据结构是由"数…...

C语言——深入理解指针(1)

目录 1.内存和地址 a 内存的理解 b 如何理解编址 2.指针变量和地址 a 取地址操作符 b 指针变量 c 解引用操作符 d 指针变量的大小 1.内存和地址 a 内存的理解 假想这样一个场景&#xff0c;你的朋友找你玩&#xff0c;到了你家小区&#xff0c;如何让她迅速的找到…...

Java中Git基础操作详解(clone、commit、push、branch)

Git是Java开发者必备的版本控制工具&#xff0c;以下是核心操作的详细说明及示例&#xff1a; ​​一、Git基础概念​​ ​​仓库&#xff08;Repository&#xff09;​​&#xff1a;存储代码的目录&#xff0c;包含所有版本历史。​​提交&#xff08;Commit&#xff09;​​…...

JVM内存区域与溢出异常详解

当然可以。以下是结合了程序计数器和Java内存区域以及内存溢出异常的详细解释&#xff1a; JVM内存区域与内存溢出异常 Java虚拟机&#xff08;JVM&#xff09;管理着不同类型的内存区域&#xff0c;每个区域都有其特定的功能和可能导致的内存溢出异常。 程序计数器&#xff…...

FastAPI实战起步:从Python环境到你的第一个“Hello World”API接口

上一篇文章中介绍了有关FastAPI的优势&#xff0c;本篇文章我将手把手带你从零开始&#xff0c;搭建FastAPI的开发环境&#xff0c;并成功运行你的第一个“Hello World”API。在开始之前&#xff0c;请确保你的电脑已经安装了Python 3.7或更高版本&#xff0c;以及VS Code&…...

国产高云FPGA实现视频采集转UDP以太网输出,FPGA网络摄像头方案,提供2套Gowin工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目国产高云FPGA基础教程国产高云FPGA相关方案推荐我这里已有的以太网方案 3、设计思路框架工程设计原理框图输入Sensor之-->OV7725摄像头输入Sensor之-->OV5640摄…...

PublishSubject、ReplaySubject、BehaviorSubject、AsyncSubject的区别

python容易编辑&#xff0c;因此用pyrx代替rxjava3做演示会比较快捷。 pyrx安装命令&#xff1a; pip install rx 一、Subject&#xff08;相当于 RxJava 的 PublishSubject&#xff09; PublishSubject PublishSubject 将对观察者发送订阅后产生的元素&#xff0c;而在订阅前…...

Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志

第 1 步&#xff1a;使用 Docker Compose 部署 Elasticsearch 和 Kibana 首先&#xff0c;我们需要创建一个 docker-compose.yml 文件来定义和运行 Elasticsearch 和 Kibana 服务。这种方式可以轻松管理两个容器的配置和网络。 创建 docker-compose.yml 文件 在一个新的文件夹…...

vue3前端实现导出Excel功能

前端实现导出功能可以使用一些插件 我使用的是xlsx库 1.首先我们需要在vue3的项目中安装xlsx库。可以使用npm 或者 pnpm来进行安装 npm install xlsx或者 pnpm install xlsx2.在vue组件中引入xlsx库 import * as XLSX from xlsx;3.定义导出实例方法 const exportExcel () …...

react 常见的闭包陷阱深入解析

一、引子 先来看一段代码,你能说出这段代码的问题在哪吗? const [count, setCount] = useState(0); useEffect(() => {const timer = setTimeout(() => {setCount(count + 1);}, 1000);return () => clearTimeout(timer); }, []);正确答案: 这段代码存在闭包陷阱…...

Hive终极性能优化指南:从原理到实战

摘要​&#xff1a;本文系统总结Hive在生产环境的核心调优手段&#xff0c;涵盖执行引擎选择、存储优化、SQL技巧、资源调配及数据倾斜解决方案&#xff0c;附可复用的参数配置与实战案例。 一、执行引擎优化&#xff1a;突破MapReduce瓶颈 ​启用Tez/Spark引擎​ ​优势​&am…...

智能标志桩图像监测装置如何守护地下电缆安全

在现代城市基础设施建设中&#xff0c;大量电缆、管道被埋设于地下&#xff0c;这虽然美化了城市景观&#xff0c;却也带来了新的安全隐患。施工挖掘时的意外破坏、自然灾害的影响&#xff0c;都可能威胁这些"城市血管"的安全运行。 传统的地下设施标识方式往往只依…...