14、内存内/近内存计算技术综述

内存内/近内存计算技术综述

1. 冯·诺依曼架构与内存墙问题

通用处理器和加速器(包括图形处理单元)遵循冯·诺依曼架构,该架构由处理器、内存以及二者的互连三部分组成。自第一台计算机诞生以来,这个简单而强大的模型一直是计算机架构的基础。然而,近年来计算工作负载呈现出数据密集型的趋势,这使得计算机的这一基本范式出现了瓶颈。研究表明,与处理器中的算术运算相比,数据通信所需的时间是其 1000 倍,功耗是其 40 倍,这就是所谓的“内存墙”问题。

2. 内存内处理(PIM)的潜力

几十年来,内存内处理(PIM)一直是一个颇具吸引力的概念,它有望打破内存墙。PIM 将计算逻辑移至内存附近,从而减少数据移动。像美光的混合内存立方体(HMC)等商业上可行的 3D 堆叠技术的出现,重新唤起了人们对 PIM 的兴趣。此外,某些内存通过利用存储单元和阵列的物理特性,可以将自身转变为计算单元。在内存阵列内实现就地计算,无需频繁将数据传输到内存阵列之外,由于密集的内存阵列,这不仅能释放出巨大的并行性和计算能力,还能显著降低数据通信成本。

3. 各部分内容概述

3.1 内存内/近内存计算分类

对各种内存内/近内存计算进行分类,并比较以内存为中心的计算方法中各类别的显著特征。具体分类如下:
- 内存内与近内存计算对比
- 内存内计算与近内存计算 :介绍两者的基本概念。
- 内存内计算 :深入探讨其原理和特点。
- 内存内与近内存计算比较 :分析两者的差异。
- 离散加速器与集成内存层次结构对比 :研究不同架构的特点。

3.2 DRAM 计算

  • 历史、旧架构和技术演变 :回顾早期的 PIM 工作和 DRAM 计算的发展历程。
  • 3D 堆叠 DRAM 和 3D NMP 架构
    • 3D 堆叠 DRAM :介绍其结构和优势。
    • 3D DRAM 上的近内存处理 :说明在 3D DRAM 上进行近内存处理的方式。
  • 商用近 DRAM 计算芯片 :列举市场上的相关产品。
  • DRAM 内计算和电荷共享技术
    • DRAM 读取序列和三行激活 :讲解 DRAM 读取的具体流程。
    • 解决电荷共享技术的挑战 :分析面临的问题及解决方法。
    • 讨论 :对 DRAM 计算的相关问题进行总结和探讨。

3.3 SRAM 计算

  • SRAM 基础和缓存几何结构 :介绍 SRAM 的基本原理和结构。
  • 数字计算方法 :阐述基于数字信号的计算方式。
  • 模拟和数字混合信号方法
    • 讨论 :对混合信号方法进行分析和总结。
  • 近 SRAM 计算 :说明在 SRAM 附近进行计算的特点。

3.4 非易失性存储器计算

  • 忆阻器计算
    • 使用忆阻器的挑战 :分析忆阻器在计算应用中面临的困难。
    • 基于 ReRAM 的内存内计算 :介绍 ReRAM 在内存内计算中的应用。
  • 闪存和其他存储技术
    • 闪存 :介绍闪存的特点和应用。
    • STT - MRAM :说明该技术的原理和优势。
    • PCM :分析 PCM 的特性和应用场景。

3.5 特定领域加速器

  • 机器学习
    • 使用非易失性存储器加速机器学习 :探讨非易失性存储器在机器学习中的加速作用。
    • 使用 SRAM 内计算加速机器学习 :说明 SRAM 内计算对机器学习的推动。
    • 使用 DRAM 进行内存内/近内存机器学习 :分析 DRAM 在机器学习中的应用。
  • 自动机处理
    • 有限状态机(FSM)入门 :介绍 FSM 的基本概念。
    • 以计算为中心的 FSM 处理 :讲解相关处理方式。
    • 以内存为中心的 FSM 处理 :说明内存对 FSM 处理的影响。
    • 自动机处理总结 :对自动机处理进行总结。
  • 图计算 :介绍图计算相关内容。
  • 数据库 :说明在数据库领域的应用。
  • 基因组学
    • 基因组学中的数据密集型内核 :分析基因组学中的关键数据处理部分。
    • 基因组学的近数据处理架构 :介绍相关的处理架构。

3.6 编程模型

  • 历史执行模型 :回顾过去的执行模型。
  • 近期特定领域模型
    • 关键设计决策 :分析设计特定领域模型时的关键要点。
  • 数据并行编程模型
    • SIMD 编程 :介绍单指令多数据编程方式。
    • SRAM 上的 SIMT 编程 :说明在 SRAM 上的单指令多线程编程。

3.7 各部分内容关系流程图

graph LR
    A[内存内/近内存计算分类] --> B[DRAM 计算]
    A --> C[SRAM 计算]
    A --> D[非易失性存储器计算]
    A --> E[特定领域加速器]
    A --> F[编程模型]
    B --> B1[历史、旧架构和技术演变]
    B --> B2[3D 堆叠 DRAM 和 3D NMP 架构]
    B --> B3[商用近 DRAM 计算芯片]
    B --> B4[DRAM 内计算和电荷共享技术]
    C --> C1[SRAM 基础和缓存几何结构]
    C --> C2[数字计算方法]
    C --> C3[模拟和数字混合信号方法]
    C --> C4[近 SRAM 计算]
    D --> D1[忆阻器计算]
    D --> D2[闪存和其他存储技术]
    E --> E1[机器学习]
    E --> E2[自动机处理]
    E --> E3[图计算]
    E --> E4[数据库]
    E --> E5[基因组学]
    F --> F1[历史执行模型]
    F --> F2[近期特定领域模型]
    F --> F3[数据并行编程模型]

各部分内容通过不同的技术和架构,围绕内存内/近内存计算展开,从基础概念到具体应用,逐步深入探讨如何解决内存墙问题,提高计算效率。每个部分都有其独特的作用和意义,共同构成了内存内/近内存计算的技术体系。

4. 内存内/近内存计算技术对比

4.1 不同内存类型计算技术对比

内存类型 计算特点 优势 挑战
DRAM 可进行电荷共享计算,3D 堆叠架构可实现近内存处理 存储容量大,读写速度较快,商业应用较成熟 功耗较高,电荷共享技术存在挑战
SRAM 支持数字和混合信号计算,有位线计算技术 速度快,可实现并行计算 集成度相对较低,成本较高
非易失性存储器(忆阻器、闪存等) 忆阻器可在模拟域进行计算,闪存可用于近存储计算 非易失性,部分 NVM 有适合计算的单元特性 忆阻器存在可靠性问题,闪存读写寿命有限

4.2 特定领域加速器应用对比

应用领域 内存内/近内存计算优势 面临挑战
机器学习 非易失性存储器可加速矩阵运算,SRAM 和 DRAM 可提高数据处理速度 数据量大,对内存带宽和计算能力要求高
自动机处理 以内存为中心的处理可减少数据传输 状态转换复杂,需要高效的内存管理
图计算 可减少图数据的频繁访问,提高计算效率 图结构复杂,数据布局和访问模式多样
数据库 近内存计算可加速查询和数据处理 数据一致性和并发控制问题
基因组学 近数据处理架构可处理大量数据 数据准确性和隐私保护要求高

5. 编程模型分析

5.1 历史执行模型与近期特定领域模型对比

历史执行模型侧重于通用计算,缺乏对内存内/近内存计算的针对性优化。而近期特定领域模型则根据不同应用的特点进行设计,关键设计决策包括:
- 数据局部性 :尽量减少数据在内存和处理器之间的移动,提高计算效率。
- 并行性利用 :充分发挥内存阵列的并行计算能力。
- 内存管理 :合理分配和使用内存资源,避免内存瓶颈。

5.2 数据并行编程模型

5.2.1 SIMD 编程

SIMD(单指令多数据)编程通过一条指令同时处理多个数据元素,提高计算的并行性。其操作步骤如下:
1. 数据准备:将需要处理的数据组织成适合 SIMD 指令处理的格式。
2. 指令选择:选择合适的 SIMD 指令集,如 SSE、AVX 等。
3. 数据加载:将数据加载到 SIMD 寄存器中。
4. 指令执行:执行 SIMD 指令进行数据处理。
5. 结果存储:将处理结果存储回内存。

5.2.2 SRAM 上的 SIMT 编程

SIMT(单指令多线程)编程在 SRAM 上实现了多个线程同时执行同一条指令。其操作步骤如下:
1. 线程创建:创建多个线程,每个线程处理不同的数据子集。
2. 指令广播:将相同的指令广播到所有线程。
3. 数据分配:为每个线程分配相应的数据。
4. 线程执行:各线程并行执行指令。
5. 结果合并:将各线程的处理结果合并。

6. 内存内/近内存计算技术的未来展望

6.1 技术发展趋势

  • 集成度提高 :未来的内存芯片将集成更多的计算逻辑,进一步减少数据移动。
  • 新材料应用 :探索新型材料用于内存和计算单元,提高性能和降低功耗。
  • 异构集成 :将不同类型的内存和计算单元进行异构集成,发挥各自的优势。

6.2 应用拓展

  • 边缘计算 :在边缘设备上实现内存内/近内存计算,减少数据传输到云端的需求。
  • 量子计算 :与量子计算相结合,为量子算法提供高效的内存支持。
  • 人工智能 :进一步推动人工智能在图像识别、自然语言处理等领域的发展。

6.3 面临的挑战与解决方案

  • 可靠性问题 :通过冗余设计和错误纠正码等技术提高内存和计算单元的可靠性。
  • 编程复杂性 :开发更高级的编程模型和工具,降低编程难度。
  • 标准统一 :推动行业标准的制定,促进不同厂商产品的兼容性。

6.4 未来发展流程展望

graph LR
    A[技术创新] --> B[产品研发]
    B --> C[应用拓展]
    C --> D[市场反馈]
    D --> A

内存内/近内存计算技术通过不断的技术创新推动产品研发,拓展应用领域,根据市场反馈进一步改进技术,形成一个良性的发展循环。随着技术的不断进步,它有望在未来的计算领域发挥重要作用,解决传统计算架构面临的内存墙问题,为各行业的发展提供更强大的计算支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值