内存计算研究进展-技术架构

news2024/11/23 22:01:44

      内存计算技术是一个宏观的概念,是将计算能力集成到内存中的技术统称。集成了内存计算技术的计算机系统不仅能直接在内存中执行部分计算,还能支持传统以CPU为核心的应用程序的执行。区别于内存计算,存算一体芯片将存储与计算相结合,是 一 种 ASIC (application-specific
integrated circuit) 芯片
,常用于嵌入式设备中,针对一类特定的应用设计,不能处理其他应用程序。内存计算包括两大类:近数据计算和存内计算。

     两者的关系如图4 所示,它们在形式上不同,但是在特定场景下可以融合设计。近数据计算和存内计算的最大区别就是:近数据计算的计算单元和存储单元依然分离,而存内计算直接利用存储单元做计算,计算和存储紧耦合.下面将从硬件结构和所支持的计算操作两个方面具体介绍近数据计算和存内计算相关技术。

近数据计算

    为缓解传统冯.诺依曼架构中总线上的数据传输问题,近数据计算在存储周边放置计算单元,这就需要高速通道进行连接。因此,近数据计算通常依赖于3D堆叠的内存结构,如 图2所示,近数据计算系统中通常有一个或多个NDC cube,它们与CPU或者GPU相连接(如 图 5 所示),多个NDC cube之间可能也会存在连接.目前基于3D 堆叠的近数据计算的研究主要集中在:(1) NDC cube模块与现有系统的集成方式;(2) NDC cube和 CPU / GPU 之间,NDC cube之间的连接方式,通信方式以及一致性协议;(3) NDC cube中逻辑层的设计;(4) NDC数据映射方式;(5) NDC的软硬件接口及上层系统软件支持。除了基于3D 堆叠内存结构的NDC,还有基于2D NVM的NDC结构,主要思想是对 NVM中现有外围电路进行改造,以支持特定类型的计算。

    (1)通用的近数据计算架构;

    (2)针对机器学习的近数据计算架构;

    (3)针对图计算的近数据计算架构;

    (4)针对垃圾回收的近数据计算架构;

     近数据计算中逻辑层的设计较为灵活,可以针对不同系统的需求设计通用的处理器或者专用的加速器。在设计针对通用应用的近数据计算系统时,由于放到内存端的通用处理器一般性能较弱,需要考虑自动化地分割应用程序的计算部分,把能从近数据计算中获益的部分放到内存中处理.在设计针对特定类型应用的近数据计算系统时,需要仔细分析应用特点,抽取算子,设计对应的数据流. 除了逻辑层的设计,近数据计算系统结构设计还需要考虑:各个内存块之间的连接方式,包括通信方式和数据一致性协议、数据映射策略、与现有系统集成方式、软硬件接口设计。

存内计算

     和近数据计算不同,存内计算直接使用内存单元做计算,主要利用电阻和电流电压的物理关系表达运算过程.存内计算依赖于新型的非易失性存储器,如 ReRAM和 PCM 等。在所有存内计算操作中,最普遍的是利用基尔霍夫定律(Kirchoff’sLaw) 进行向量乘矩阵操作辦]。原因在于:(1)它能够高效地将计算和存储紧密结合;(2)它的计算效率高(即,在一个读操作延迟内能完成一次向量乘矩阵);(3 ) 目前流行的数据密集型应用中,如机器学习应用和图计算应用,向量乘矩阵的计算占了总计算量的9 0 % 以上。除了向量乘矩阵操作,存内计算还能利用电阻、电流及电压的物理关系实现查询,按比特与/或/非等操作.本小节首先综述基于向量乘矩阵的存内计算研究,然后综述其他存内计算技术。

(1)基于向量乘矩阵的存内计算;

(2)基于逻辑操作的存内计算;

(3)基于搜索操作的存内计算;

    存内计算支持的算子较少,设计灵活度不如近数据计算的逻辑层,但是存内计算用于支持特定算
子 (目前主要是向量乘矩阵算子)的性能很高且能耗低.存内计算的核心思路是利用新型存储的物理结构和特性来支持应用程序中频繁出现的算子.同时,存内计算相关研究还关注:存内计算模块互联和数据流的设计;数据映射策略:外围电路的优化和复用;与现有存储系统的融合。

内存计算架构与技术小结

    内存计算面向的应用有如下特点:

    (1)数据密集,在普通冯.诺依曼结构中有大量的内存访问;

    (2)数据局部性差,片上缓存命中率低;

    (3)计算密集且计算形式简单,易于并行.

     内存计算包含两大类:近数据计算和存内计算。近数据计算通常使用3D 堆叠的内存结构,在内存中集成计算逻辑芯片,并用高速通道将计算单元和内存单元相连接,存算依然分离。存内计算直接使用内存单元做计算,利用电流 、电压、电阻等物理量之间的关系表示某类计算.近数据计算相比于存内计算灵活度更高,能支持较多算子;存内计算虽然能支持的算子较为单一,目前能支持向量乘矩阵算子,按位逻辑操作,或者搜索操作,但是其计算速度快且能耗低.设计内存计算架构时,设计者需要根据应用场景的需求(应用中算子的类型、延迟和能耗的限制等)进行选择,必要时也可结合使用近数据计算和存内计算两种技术,充分利用两者优点。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1457711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL--SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构—>查询执行流程—>语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览&a…

算法模板 6.并查集

并查集 用于解决连通块问题。 判断集合个数也就是判断p[x] x 的个数 836. 合并集合 - AcWing题库 #include <bits/stdc.h> using namespace std; const int N 1e5 10; int p[N]; // 记录每个元素的father int n, m;int find(int x){ // 查询元素x的fatherif(p[x] …

GPIO控制和命名规则

Linux提供了GPIO子系统驱动框架&#xff0c;使用该驱动框架即可灵活地控制板子上的GPIO。 GPIO命名 泰山派开发板板载了一个40PIN 2.54间距的贴片排针&#xff0c;排针的引脚定义兼容经典40PIN接口。 在后续对GPIO进行操作前&#xff0c;我们需要先了解k3566的GPIO命名规则&a…

Windows 重启 explorer 的正确做法

目录 一、关于 Restart Manager 二、重启管理器实例 三、完整实现代码和测试 本文属于原创文章&#xff0c;转载请注明出处&#xff1a; https://blog.csdn.net/qq_59075481/article/details/136179191。 我们往往使用 TerminateProcess 并传入 PID 和特殊结束代码 1 或者…

rocketMQ-Dashboard安装与部署

1、下载最新版本rocketMQ-Dashboard 下载地址&#xff1a;https://github.com/apache/rocketmq-dashboard 2、下载后解压&#xff0c;并用idea打开 3、修改配置 ①、修改端口及rocketmq服务的ip&#xff1a;port ②、修改访问账号、密码 3、然后启动访问&#xff1a; 4、mav…

单片机01天_stm32f407zg_创建新工程

创建“寄存器版工程” 1、创建工程文件夹 创建工程文件夹“Project”&#xff0c;内部包含文件夹“CMSIS”&&“USER”。 CMSIS&#xff1a;Cortex系列内核接口驱动文件。 USER&#xff1a;存放用户编写的程序文件。 “USER”文件夹内包含“Inc”&&“Src”…

yolov5的Mosaic原理解析

众所周知&#xff0c;yolov5中使用了mosaic增强进行数据增强&#xff0c;效果就是将4张图片拼凑为1张图片。为了更好优化自定义任务&#xff0c;特对mosaic原理进行解析。 1、mosaic原理解析 mosaic增强的原理一张图就可以解释&#xff1a; 1.1 图的注释 首先高亮区域&am…

YOLOv8-Openvino和ONNXRuntime推理【CPU】

1 环境&#xff1a; CPU&#xff1a;i5-12500 2 安装Openvino和ONNXRuntime 2.1 Openvino简介 Openvino是由Intel开发的专门用于优化和部署人工智能推理的半开源的工具包&#xff0c;主要用于对深度推理做优化。 Openvino内部集成了Opencv、TensorFlow模块&#xff0c;除此…

ClickHouse 基础(一)

官网 以毫秒为单位查询数十亿行 ClickHouse是用于实时应用和分析的最快、资源效率最高的开源数据库。 安装ClickHouse 使用ClickHouse&#xff0c;你有三个选择: ClickHouse云:官方ClickHouse作为一项服务&#xff0c;-由ClickHouse的创建者构建&#xff0c;维护和支持快速安…

C语言中关于#include的一些小知识

写代码的过程中&#xff0c;因为手误&#xff0c;重复包含了头文件 可以看到没有报错 如果是你自己编写的头文件&#xff0c;那么如果没加唯一包含标识的话&#xff0c;那么编译器会编译报错的。如果是系统自带的头文件&#xff0c;由于其每个头文件都加了特殊标识&#xff0c…

【软考】系统集成项目管理工程师(十六)变更管理【1分】

一、 变更的概念 1、定义、原因、分类 2、变更流程 二、 变更的原则 1、变更管理原则、配置管理工具 2、变更管理流程 三、 变更的流程及角色职责 1、提出变更申请、变更影响分析 2、变更测试 1、有些变更很小&#xff0c;客户着急要&#xff0c;可以不用走变更程序直接修改…

Android widget基础指南

widget的概念最早是由一名叫Rose的苹果工程师提出&#xff0c;后来经过多方面机缘巧合的发展下&#xff0c;便有了今天Android平台上的小组件widget&#xff0c;一般APP开发可能应用场景较少&#xff0c;最常见的莫过于天气APP的widget。但对于从事IOT或车载方向的同学&#xf…

FL Studio2024年最新21.2破解中文版本下载地址

FL Studio 21的中文版本是一款非常受欢迎的音乐制作软件&#xff0c;它为用户提供了丰富的功能和工具&#xff0c;使他们能够轻松创作和编辑音乐。以下是一些关于FL Studio 21中文版本的主要特点和功能&#xff1a; FL Studio 21 Win-安装包下载如下: https://wm.makeding.co…

- 工程实践 - 《QPS百万级的有状态服务实践》03 - 消息队列

本文属于专栏《构建工业级QPS百万级服务》 继续上篇《QPS百万级的有状态服务实践》02 - 冷启动和热更新。我们的架构如图1。上一章在热更新部分&#xff0c;我们引入了消息队列。本章我们介绍下各个消息队列的优缺点&#xff0c;并选择其中一个说下核心概念和原理。 图1 目前市…

【Go语言】Go语言的数据类型

GO 语言的数据类型 Go 语言内置对以下这些基本数据类型的支持&#xff1a; 布尔类型&#xff1a;bool 整型&#xff1a;int8、byte、int16、int、uint、uintptr 等 浮点类型&#xff1a;float32、float64 复数类型&#xff1a;complex64、complex128 字符串&#xff1a;st…

嵌入式学习 Day21

一. 文件IO: 1. lseek off_t lseek(int fd, off_t offset, int whence); 功能: 重新设定文件描述符的偏移量 参数: fd:文件描述符 offset:偏移量 whence: SEEK_SET 文件开头 …

基于STM32F407的coreJSON使用教程

目录 概述 工程建立 代码集成 函数介绍 使用示例 概述 coreJSON是FreeRTOS中的一个组件库&#xff0c;支持key查找的解析器&#xff0c;他只是一个解析器&#xff0c;不能生成json数据。同时严格执行 ECMA-404 JSON 标准。该库用 C 语言编写&#xff0c;设计符合 ISO C90…

杨氏矩阵和杨辉三角

杨氏矩阵 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 要求&#xff1a;时间复杂度小于O(N); 分析 若要满足要求时间复杂度小于O(N)&#xff0c;就不能每一行一个个…

机器学习基础(一)理解机器学习的本质

导读&#xff1a;在本文中&#xff0c;将深入探索机器学习的根本原理&#xff0c;包括基本概念、分类及如何通过构建预测模型来应用这些理论。 目录 机器学习 机器学习概念 相关概念 机器学习根本&#xff1a;模型 数据的语言&#xff1a;特征与标签 训练与测试&#xf…

elementui 中 el-date-picker 控制选择当前年之前或者之后的年份

文章目录 需求分析 需求 对 el-date-picker控件做出判断控制 分析 给 el-date-picker 组件添加 picker-options 属性&#xff0c;并绑定对应数据 pickerOptions html <el-form-item label"雨量年份&#xff1a;" prop"date"><el-date-picker …