当前位置: 首页 > 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;如何让她迅速的找到…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...