【硬核科普】存算一体化系统(Processing-in-Memory, PIM)深入解析

文章目录

      • 0. 前言
      • 1. 提出背景
        • 1.1 存储墙
        • 1.2 功耗墙
      • 2. 架构方案
        • 2.1 核心特征
        • 2.2 技术实现
          • 2.2.1 电流模式
          • 2.2.2 电压模式
          • 2.2.3 模式选择
        • 2.3 PIM方案优势
      • 3. 应用场景
      • 4. 典型产品
        • 4.1 鸿图H30
        • 4.2 三星HBM-PIM
      • 5. 存算一体化缺点
      • 6. 总结

0. 前言

按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。

存算一体化(Processing-in-Memory, PIM)系统是一种旨在克服传统冯·诺依曼架构局限性的新架构,这种架构通过将数据存储和数据处理紧密耦合减少了数据在存储和处理器之间的传输,从而显著提高了性能和能效比。

达摩院也把存算一体选作2023年10大科技趋势之一。

达摩院2023年10大科技趋势

1. 提出背景

Computational Storage(计算存储)的概念最早是在1969年由斯坦福研究所(Stanford Research Institute,SRI)的几位科学家提出的。他们预见到存算一体化可能是实现高算力和高能效计算的关键技术,类似于人脑的处理方式,其中计算和存储紧密集成在一起。

然而,由于当时的技术限制:包括芯片制造技术和算力性能的不足,存算一体化的概念在很长一段时间内停留在理论研究阶段,并没有得到实际的应用。随着技术的进步,尤其是对更高计算效率和更低能耗的需求增加,存算一体化技术开始受到更多的关注,并逐渐发展成为可能改变未来计算架构的重要方向。
在这里插入图片描述
传统的冯·诺依曼架构中,数据存储和计算是分离的,这意味着处理器必须从存储器中读取数据进行处理,然后再将结果写回到存储器中。随着数据集的增大和计算复杂度的增加,这种架构下的数据传输成为了瓶颈,形成了所谓的 “存储墙”“功耗墙”。存储墙指的是存储速度无法跟上计算速度,而功耗墙则是指数据频繁在存储和计算单元间传输导致的功耗大幅上升。

1.1 存储墙

根据摩尔定律,处理器的晶体管数量每18个月~24个月翻一番,理论上处理器性能也会随之提升。然而,存储器的速度提升远远落后于处理器,大约每三年提升一倍。这种不对称的进展导致了处理器等待数据的时间占总时间的比例越来越大,降低了总体计算效率。

下表可以清楚地看出数据传输增长速度与处理器算力的增长速度的巨大差距:

计算速度vs存取速度90年代初20年代初增长倍数
处理器算力约10~100MFLOPS约1~10TFLOPS约100000倍(约为 2 17 2^{17} 217倍)
内存带宽约10~100MB/s约10-100GB/s约1000倍(约为 2 10 2^{10} 210倍)

可见,经过30年左右的发展处理器的算力提升远大于内存带宽的提升。更进一步,根据黄氏定律(预测GPU将推动AI性能实现逐年翻倍)处理器的速度和内存的速度将会拉开更大的差距!

1.2 功耗墙

随着计算系统对内存带宽需求的不断增加,以及对更高容量和更快访问速度的追求,传统动态随机存取存储器(DRAM)和其他类型内存的功耗急剧上升,最终会达到一个无法通过简单增加功率预算来解决的临界点。

这一方面是因为数据从DRAM搬运到CPU需要跨过多个层级的存储层次,包括L1、L2、L3缓存,有研究表明:在特定情况下,将1比特数据从DRAM搬运到CPU所消耗的能量比在CPU上处理这个比特所需的能量还要高几倍到几十倍。根据不同的估计,数据从内存搬运到处理器的能耗可以占到总计算能耗的50%以上。而在深度学习训练中,数据搬运的能耗甚至可以高达总能耗的80%

另一方面也是因为随着功耗的增加,系统的整体能效比(性能/功耗)开始下降,这意味着为了获得更高的性能,必须付出更更高的功耗及冷却代价。

2. 架构方案

2.1 核心特征

存算一体化的核心在于将数据处理能力与数据存储紧密结合,使得数据能够在存储位置被直接处理,避免了频繁的数据搬运,从而降低了延迟,减少了能耗,并提高了数据处理速度。
在这里插入图片描述

2.2 技术实现

存算一体的技术实现有多种方式,本文将以ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)为基础的PIM(Processing-In-Memory)架构进行说明。该架构特别关注于矩阵乘法-累加操作(MAC,Multiply-Accumulate Operation),这是许多机器学习算法,尤其是神经网络中的核心运算之一。

ReRAM PIM架构根据输出感测模式可以分为电流模式(current-mode)和电压模式(voltage-mode)两种。这两种模式都利用了ReRAM设备的导电特性来存储权重,并利用输入信号来进行计算。
在这里插入图片描述
神经网络层中的权重被存储为ReRAM设备的导电值(Gij),其中i和j分别代表行和列。二进制输入(0或1)通过字线(Word Line, WL)施加。

参考文献: T. F. Wu et al., “Brain-inspired computing exploiting carbon nanotube FETs and resistive RAM: Hyperdimensional computing case study,” in IEEE ISSCC Dig. Tech. Papers, Feb. 2018, pp. 492–493.

2.2.1 电流模式
  • 电流计算:在电流模式下,每一行的源线(Source Line, SL)被驱动至读电压Vread,而每一列的位线(Bit Line, BL)则被钳位到参考电压Vref。输入特征与权重的乘积可以通过流经单个ReRAM单元的电流来表示。
  • 点积运算:输入向量与权重矩阵的点积运算在模拟域中通过积累来自同一列的ReRAM单元电流完成。
  • 转换与输出:每列的总电流最终通过电流模数转换器(Analog-to-Digital Converter, ADC)转换为数字值。
2.2.2 电压模式
  • 初始化:在电压模式下,所有源线接地,所有位线预充电至Vpre并保持浮动状态。
  • 放电率:位线电容的放电速率与输入向量和权重矩阵的点积成正比。
  • 转换与输出:产生的位线电压通过ADC转换为数字值。
2.2.3 模式选择
  • 电流模式:具有更大的感测余量和更快的感测速度,但静态电流在整个感测期间存在,导致能量效率较低。
  • 电压模式:只消耗动态功率,因此在能量效率方面优于电流模式,但在感测速度和余量方面可能不如电流模式。
2.3 PIM方案优势
  1. 带宽提升:某些存算一体芯片能够提供TB/s级别的内存带宽,远远超过传统DRAM的几十GB/s。

  2. 功耗降低:通过减少数据搬运,存算一体架构能够显著降低整个系统的总功耗,有助于解决散热和能效问题。
    请添加图片描述

  3. 响应速度提升:减少数据搬运的延迟,使得实时数据分析和响应成为可能,这对于自动驾驶、实时视频分析等场景至关重要。
    在这里插入图片描述

  4. 计算密集型任务的加速:在深度学习等领域,存算一体架构可以通过在存储器附近执行矩阵乘法、卷积等运算,显著加速训练和推理过程。

3. 应用场景

存算一体化系统适用于数据密集型实时计算任务,包括但不限于:

  • 人工智能与深度学习:在神经网络和深度学习模型的训练和推理中,存算一体化可以极大地提高计算效率和能效,减少训练时间和能源消耗。
  • 边缘计算:在资源受限的边缘设备上,存算一体化能够实现低功耗、高处理能力的计算任务,适合物联网(IoT)、自动驾驶汽车、无人机等场景。
  • 高性能计算(HPC):在科学计算、工程模拟等领域,存算一体化有助于加速数据密集型任务的处理。
  • 数据库与数据分析:存算一体化可以显著提高数据库查询速度和数据分析效率,特别是在处理海量数据时。
  • 生物信息学:在基因组学和蛋白质组学研究中,处理大量生物数据时,存算一体化可以提供更快的分析速度和更低的运行成本。
  • 类脑计算:在模仿大脑结构和功能的计算系统中,存算一体化架构可以更有效地实现神经元的模拟和突触的动态调整。

4. 典型产品

4.1 鸿图H30

鸿图H30是一款由后摩智能设计的存算一体智驾芯片,这款芯片旨在推动自动驾驶技术的发展,特别是在智能驾驶和工业领域应用。
在这里插入图片描述

鸿图H30基于SRAM存储介质,采用了数字存算一体架构,具有256 TOPS(每秒万亿次操作)的物理算力,使其能够处理复杂的深度学习和机器视觉任务,这对于自动驾驶车辆的感知和决策至关重要。
在这里插入图片描述

典型功耗仅为35瓦,相比传统方案,鸿图H30的能效比提升了7倍,这在能源敏感的应用场景中非常重要。

值得注意的是,尽管鸿图H30在性能和能效方面表现突出,但其算力仍然低于英伟达(NVIDIA)的DRIVE SoC Thor芯片(非存算一体架构),后者在2023年的算力达到了2000 TOPS。不过,鸿图H30的发布标志着中国在存算一体芯片领域取得了重要进展,显示了国产芯片在自动驾驶技术方面的竞争力。

4.2 三星HBM-PIM

HBM-PIM(High Bandwidth Memory with Processing In Memory)是三星电子开发的一种存算一体技术,它结合了高带宽内存(HBM)和内存内计算(PIM)的概念。HBM-PIM的目标是通过在内存模块内部直接执行计算,显著提高数据密集型应用的性能,同时减少功耗。
在这里插入图片描述

HBM-PIM在每个内存库(Memory Bank)中放置了一个DRAM优化的AI引擎,允许数据处理在存储数据的同一位置进行,从而极大化减少了数据移动的操作。这种设计减少了CPU和内存之间的数据传输,提高了系统的整体性能,并且将能耗降低了70%以上。

HBM-PIM有着优秀的兼容性,客户不必完全重新设计他们的架构。三星在HBM-PIM技术的研发过程中,与AMD进行了合作,将HBM-PIM内存应用于AMD的商用GPU加速卡MI-100,用于生成式人工智能和混合专家系统(MOE)模型。

5. 存算一体化缺点

存算一体化架构与传统的冯·诺依曼架构相比,确实提供了显著的优势:比如降低数据搬运的功耗、减少延迟和提高并行处理能力。然而,存算一体化架构也存在一些缺点和挑战,主要包括:

  1. 兼容性问题:现有的软件和算法通常基于冯·诺依曼架构设计,要充分利用存算一体化架构的优势,可能需要对软件进行重大的修改和优化,这涉及到编程模型、编译器支持和算法重构,增加了迁移成本和复杂性。

  2. 存储单元的计算能力有限:存储单元中嵌入的计算能力通常比专用的计算单元(如CPU或GPU中的ALU)简单,这意味着复杂的计算操作可能需要更多的步骤或无法在存储器内部完成,从而限制了某些类型计算的效率。

  3. 灵活性受限:冯·诺依曼架构允许数据和指令的自由流动,而存算一体化架构可能需要预先确定数据和计算的布局,这可能限制了架构的灵活性,特别是在处理非结构化或动态变化的工作负载时。

  4. 数据一致性问题:当多个计算单元同时访问同一存储位置时,数据一致性和同步机制变得更为复杂,尤其是在分布式存算一体系统中。

  5. 成本和制造复杂性:存算一体芯片可能需要更复杂的制造工艺,以将计算电路与存储电路集成在同一芯片上,这可能导致生产成本增加和良率问题。

  6. 故障容忍性:如果存储和计算紧密耦合,一旦存储单元出现故障,可能会影响到计算能力,影响系统的整体健壮性。

6. 总结

存算一体化系统代表了计算架构发展的一个重要方向,特别是在大数据处理、机器学习、边缘计算等领域,它有望带来革命性的性能提升和能效改进。然而,要实现这一愿景,还需要克服一系列技术挑战,包括硬件设计、软件生态构建和系统集成等。

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

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

相关文章

c++类模板及应用

文章目录 为什么要有函数模板一般实现举例类模板举例 继承中类模板的使用特殊情况 友元函数模板类和静态成员类模板实践 为什么要有函数模板 项目需求: 实现多个函数用来返回两个数的最大值,要求能支持char类型、int类型、double 一般实现举例 类模板举例 继承中类…

如视“VR+AI”实力闪耀2024世界人工智能大会

7月4日,2024世界人工智能大会暨人工智能全球治理高级别会议(以下简称为“WAIC 2024”)在上海盛大开幕,本届大会由外交部、国家发展和改革委员会、教育部等部门共同主办,围绕“以共商促共享 以善治促善智”主题&#xf…

【SSL 1823】消灭怪物(非传统BFS)

题目大意 小b现在玩一个极其无聊的游戏,它控制角色从基地出发,一路狂奔夺走了对方的水晶,可是正准备回城时,发现地图上已经生成了 n n n 个怪。 现在假设地图是二维平面,所有的怪和角色都认为是在这个二维平面的点上…

【算法训练记录——Day41】

Day41——动态规划Ⅲ 1.理论基础——代码随想录2.纯01背包_[kamacoder46](https://kamacoder.com/problempage.php?pid1046)3.leetcode_416分割等和子集 背包!! 1.理论基础——代码随想录 主要掌握01背包和完全背包 物品数量: 只有一个 ——…

农作物生长环境的远程监控与智能调控

农作物生长环境的远程监控与智能调控 农作物生长环境的远程监控与智能调控技术,作为现代农业科技的核心组成部分,正逐步革新传统农业的生产模式,推动农业向精准化、智能化转型。这一技术体系综合应用了物联网、大数据、云计算以及人工智能等…

chrome 谷歌浏览器插件打包

1、找到id对应的字符串去搜索 C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default\Extensions2、选择根目录 直接加载下面的路径扩展可用&#xff1a;

Python酷库之旅-第三方库Pandas(001)

目录 一、Pandas库的由来 1、背景与起源 1-1、开发背景 1-2、起源时间 2、名称由来 3、发展历程 4、功能与特点 4-1、数据结构 4-2、数据处理能力 5、影响与地位 5-1、数据分析“三剑客”之一 5-2、社区支持 二、Pandas库的应用场景 1、数据分析 2、数据清洗 3…

7月2日PythonDay1

阶段一阶段导学 测试人员为什么要学习编程&#xff1f; Python是一门快速增长的计算机编程语言 白盒测试、自动化测试、测试开发 为什么学习Python&#xff1f; 相对于其他编程语言更简单 语言开源并且免费 使用人群广泛 应用领域广泛 学习目标 掌握python基础语法&…

python库(2):Passlib库

1 Passlib简介 Passlib库就是一个强大的工具&#xff0c;专门用于密码的安全存储和验证。本文将介绍Passlib库的基本概念、功能和使用方法&#xff0c;帮助更好地理解和应用密码安全技术。 Passlib是一个用于密码加密、哈希和验证的Python库&#xff0c;它提供了多种密码哈希…

云桌面运维工程师

一 深信服驻场工程师 1 深信服AC、AF、AD、NGAF、WOC Atrust、WAF项目实施经验者优先考虑。 负责云桌面POC测试 部署和配置&#xff1a;设置云桌面基础设施&#xff0c;包括虚拟化平台、云桌面管理软件和相关组件。确保正确配置网络、存储和安全设置。 用户体验&#xff1…

论文解读——掌纹生成网络 RPG-Palm

论文&#xff1a;RPG-Palm: Realistic Pseudo-data Generation for Palmprint Recognition&#xff08;2023.7&#xff09; 作者&#xff1a;Lei Shen, Jianlong Jin, Ruixin Zhang, Huaen Li, Kai Zhao, Yingyi Zhang, Jingyun Zhang, Shouhong Ding, Yang Zhao, Wei Jia 链接…

阿里Qwen2-72B大模型已是开源榜的王者,为什么还要推出其他参数模型,被其他模型打榜?

6 月 27 日&#xff0c;全球知名的开源平台 Hugging Face 的联合创始人兼首席执行官 Clem 在社交平台激动宣布&#xff0c;阿里 Qwen2-72B 成为了开源模型排行榜的王者。 这是一件大好事&#xff0c;说明了我们在大模型领域从先前的追赶&#xff0c;逐渐走向了领导&#xff0c;…

不看后悔!国内AI大比拼的精彩看点全汇总

至2022年AI爆发后&#xff0c;在中国已催生了上千个AI产品。 这些产品涵盖了从头部大厂到高等院校&#xff0c;再到初创企业的广泛阵容。 如&#xff1a; 大厂&#xff1a;百度文心、阿里通义、腾讯元宝、字节豆包、讯飞星火等高校&#xff1a;清华大学、北京大学等初创&…

【问题解决】plt.show()画出来的图像只在pycharm右侧栏显示

问题情况如下&#xff1a; 画出的图只在右侧栏显示&#xff0c;而我们想弹出一个独立的窗口&#xff0c;拖动鼠标可以360度查看图像&#xff0c;还可以保存图片。 【 问题解决 】&#xff1a; File -> Settings ->Tools-> Python Scientific -> 将“Show plots i…

2024 AI工程师世界博览会

6月24日至6月27日在旧金山举行的 AI 工程师世界博览会是AI 从业者和爱好者的首要活动之一。本次年度会议展示了人工智能技术的最新进展&#xff0c;并提供了对行业趋势的宝贵见解。 模型不是壁垒 大型语言模型&#xff08;LLMs&#xff09;的快速发展是会议的中心主题。OpenAI…

字节码编程ASM之生成变量并sout

写在前面 本文看下如何通过asm生成变量并sout。 1&#xff1a;代码 直接看代码吧&#xff0c;注释很详细&#xff0c;有不懂的&#xff0c;留言告诉我&#xff1a; package com.dahuyuo.asmtest;import org.objectweb.asm.*; import org.objectweb.asm.commons.AdviceAdapt…

Oracle EBS PO采购订单预审批状态处理

系统版本 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题症状: 采购订单状态:预审批 采购订单流程报错如下: po.plsql.PO_DOCUMENT_ACTION_AUTH.approve:90:archive_po not successful - po.plsql.PO_DOCUMENT_ACTION_PVT.do_action:110:unexpected error in acti…

C++ 教程 - 08 文件操作与异常处理

文章目录 文件操作文件对象其他方法异常处理 文件操作 需要头文件 <iostream><fstream> 读取文件 ifstream obj; obj.open(const char* filename, std::in)写入文件ofstream obj; obj.open(const char* filename, std::out)读、写文件 fstream&#xff0c;包含了i…

Python 面试【★★★】

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Matplotlib 简介

import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.ylabel(some numbers) plt.show() 当使用plot只传入单个数组时&#xff0c;matplotlib会认为这是y的值&#xff0c;并自动生成长度相同&#xff0c;但是从0开始的x值&#xff0c;所以这里的x会自动生成为 [0,1,2,…