知识库 / 基础设施
GitHub
← 基础设施

LAYER 01 / INFRASTRUCTURE

存储层次:寄存器、SRAM、HBM与DRAM

所属: 基础设施层。本页边界: 为什么同一模型的不同阶段会分别受计算和显存带宽限制。

#核心公式

Tmemory≳∑ℓ=1LmQℓBℓ T_{\mathrm{memory}} \gtrsim \sum_{\ell=1}^{L_m}\frac{Q_\ell}{B_\ell}

公式把数据在不同存储层之间的搬运分别计入;若多层搬运能够流水重叠,实际关键路径介于最大单层时间与各层时间之和之间。

#符号说明

符号 含义 单位/条件
LmL_m 纳入分析的存储层级数量 正整数
QℓQ_\ell 第 ℓ\ell 条存储路径搬运的数据量 Byte
BℓB_\ell 第 ℓ\ell 条路径的有效带宽 Byte/s
TmemoryT_{\mathrm{memory}} 数据搬运对执行时间的贡献 s
F, Q, B, IF,\ Q,\ B,\ I 后文中的运算量、片外字节量、有效带宽、算术强度 FLOPs、Byte、Byte/s、FLOP/Byte
Mweights, MKV, MactM_{\mathrm{weights}},\ M_{\mathrm{KV}},\ M_{\mathrm{act}} 权重、KV Cache、激活占用 Byte
Tmove, TreloadT_{\mathrm{move}},\ T_{\mathrm{reload}} 一般数据搬运时间、分片重载时间下界 s
S, BinterconnectS,\ B_{\mathrm{interconnect}} 被重载的分片大小、设备间有效带宽 Byte、Byte/s

这里的 BℓB_\ell 是实测有效带宽,不是产品标称峰值带宽。

#技术要点

  • 寄存器/SRAM 容量小但最快,服务于局部复用。
  • HBM 提供 GPU 主显存容量和高带宽,是 LLM 训练与推理的核心存储层。
  • HBM 的高带宽来自三个同时作用的物理机制:TSV 垂直堆叠缩短信号路径、超宽总线并行传输、与 GPU 通过硅中介层物理邻近。
  • DRAM/SSD 容量更大但延迟和带宽更差。
  • decode 常反复读取权重和 KV,常比 prefill 更受带宽限制。
  • 内存墙在大模型时代同时表现为带宽墙和容量墙:带宽墙限制单步解码速度,容量墙限制可运行的模型规模和上下文长度。

#原理与演进

#容量、带宽、延迟分工

层级 放置对象 为什么不能互相替代
寄存器 / 片上 SRAM 当前线程或矩阵块的临时值 快但容量小,装不下整层权重
HBM 活跃权重、激活与 KV 带宽高,但容量与成本受限
主机 DRAM 卸载状态、数据缓存 访问需经过设备互联
SSD / 分布式存储 数据集和持久化状态 容量大,随机访问和延迟不适合逐 token 计算
  • 上式给出搬运时间下界:若必须读取 SS 字节,链路有效带宽为 BB,则 T≳S/BT\gtrsim S/B。
  • 复用是关键:矩阵块只从 HBM 读一次,在 SRAM/寄存器中参与多次乘加。若每次运算都回写 HBM,峰值算力无法发挥。
  • 预填充阶段多个 token 可共享权重加载;解码阶段批量小、每步重复读权重,算术强度往往较低。具体生成流程见推理笔记。

#从容量问题到 I/O 问题

  1. 参数放不下:分片、卸载或压缩。
  2. 参数放得下但读不快:增加复用、合并算子、提高批量。
  3. 注意力中间矩阵写回过多:分块并在线更新 softmax;FlashAttention 是精确注意力的 I/O 优化,而非更换注意力定义。原论文

#1. 两个不同问题:能否容纳、能否及时供数

设运算需要从某一层内存搬运 QQ 字节,该层有效带宽为 BB:

Tmove≥Q/B. T_{\mathrm{move}}\geq Q/B.
  • 容量不足:目标张量不能同时驻留,必须分片、卸载或压缩。
  • 带宽不足:张量能放下,但反复读取的速度跟不上计算单元。
  • 延迟过高:很多小请求逐个等待返回,带宽尚未饱和却已拖慢关键路径。
  • 同一模型可在训练阶段受容量限制、Prefill 受计算限制、Decode 受带宽限制;不能把三个问题都称为“显存不够”。

#2. 内存层级的技术含义

层 典型作用 长处 限制
寄存器 当前线程的累加器与临时值 极低访问开销 容量极小;占用多会减少并发
片上 SRAM/共享内存 一个计算块反复使用的 tile 高速局部复用 容量有限,需显式或编译器调度
HBM/设备主存 活跃权重、激活、KV 容量和带宽兼顾 远慢于片上运算,容量仍有限
主机 DRAM 数据缓存、卸载状态 容量较大 经设备互联访问有额外代价
SSD/远端存储 原始语料与持久化 Checkpoint 容量大 不适合逐 token 随机访问

表中是相对关系,具体容量与带宽随设备变化。技术判断应基于当前系统的有效值,而非固定数字。

#3. HBM:高带宽显存的核心原理

#3.1 HBM 是什么

HBM(High Bandwidth Memory,高带宽内存)是一种通过3D 堆叠将多层 DRAM 芯片垂直整合在一起的高性能内存。它不是一种新的存储介质——底层仍然是 DRAM 电容存储单元——而是通过封装和互联的重新设计,从根本上提升了内存的带宽密度。

HBM 解决的核心问题是:传统 DDR/GDDR 内存通过 PCB 走线与 GPU 通信,信号路径长、引脚数有限,带宽提升空间受限。HBM 将 DRAM 芯片直接堆叠在 GPU 旁边,用数千条垂直通道取代数十条 PCB 走线。

#3.2 为什么 HBM 快:三个同时作用的物理机制

机制一:TSV 垂直堆叠,缩短信号路径。

TSV(Through-Silicon Via,硅通孔)是在硅晶圆上蚀刻出垂直孔洞,填充铜等导电材料,使不同芯片层之间直接垂直电气连接。一个 12 层 HBM 堆叠结构包含数百万个 TSV。

传统 DRAM 封装使用金线键合,信号需要从芯片边缘引出、经过引线、到达基板,路径长且电阻大。TSV 让数据像乘坐“数据电梯”一样在堆叠芯片之间垂直移动,信号路径缩短到几微米级别,功耗更低、速度更高。每层 DRAM die 通过 TSV 直接连接到底层的逻辑 die,而非与其他 die 通信。

机制二:超宽总线,并行传输。

这是 HBM 与传统内存最本质的区别之一。标准 DDR5 接口宽度为 64 位,而 HBM3E 的运行宽度为 1024 位,HBM4 进一步提升至 2048 位。这意味着 HBM 在一个时钟周期内可以并行传输的数据量是 DDR 的 16–32 倍。

更宽的总线不仅仅意味着更多的导线——每个 I/O 引脚都需要独立的信号通路,加上电源和控制信号,单个 HBM3E 堆叠就需要与相邻 GPU 建立超过一千个连接。这种布线密度无法在 PCB 上实现,这是硅中介层和 2.5D 封装(如 CoWoS)不可或缺的根本原因。

HBM 芯片内部被划分为多个独立通道(HBM3 有 16 个通道),每个通道包含 128 位数据总线。多个通道可以同时工作,控制器可以交错访问不同通道,进一步提高并行度。

机制三:与 GPU 物理邻近,通过硅中介层直连。

HBM 堆栈与 GPU 芯片通过硅中介层(Silicon Interposer) 并排放置在同一个封装内。中介层是一层硅基板,上面布有高密度金属布线,将 GPU 与 HBM 之间的通信距离缩短到毫米级甚至更短。

传统方案中,GPU 需要通过 PCB 走线访问 DRAM 模块,距离以厘米计,且需要经过内存控制器、PHY 等中间环节。HBM 与 GPU 通过中介层上的微凸点直接连接,信号完整性更好,延迟更低,功耗也更低。CoWoS(Chip-on-Wafer-on-Substrate)是台积电提供的 2.5D 封装技术,将逻辑芯片与 HBM 堆栈集成在硅中介层上,自 2012 年起量产。

#3.3 HBM 的代际演进

代际 年份 最大数据速率 单堆栈带宽 接口宽度 单堆栈容量 关键变化
HBM 2013 1 Gbps 128 GB/s 1024 位 2 GB 首个 3D 堆叠标准,4-Hi
HBM2 2016 2.4 Gbps 307 GB/s 1024 位 4/8 GB 通道数翻倍至 8,支持 8-Hi
HBM2E 2019 3.6 Gbps 460 GB/s 1024 位 4/16 GB 数据速率提升 50%,支持 12-Hi
HBM3 2022 6.4 Gbps 819 GB/s 1024 位 16/24 GB 通道数翻倍至 16,奠定 AI 训练内存基础
HBM3E 2023 9.6 Gbps 1.2 TB/s 1024 位 24/32 GB 接近 1024 位接口的实际带宽极限
HBM4 2025–2026 ≥10 Gbps ≥2 TB/s 2048 位 36–64 GB 接口宽度翻倍;基底 die 改用逻辑工艺

数据来源:

每一代 HBM 的带宽提升来自两个方向的乘积累加:数据速率提升(每针更快)和接口宽度扩展(更多通道并行)。HBM3 到 HBM3E 主要靠速率从 6.4 Gbps 提升到 9.6 Gbps;HBM3E 到 HBM4 则主要靠接口宽度从 1024 位翻倍到 2048 位,JEDEC 于 2025 年 4 月发布官方 HBM4 规范。

#3.4 HBM4 的架构变化:从通用内存到半定制组件

HBM4 引入了一个根本性的架构变化:基底 die(Base Die)从 DRAM 工艺改为代工厂逻辑工艺。前几代 HBM 的基底 die 与 DRAM 芯片使用相同的工艺制造;HBM4 的基底 die 采用台积电 12nm 或三星 SF 级逻辑工艺。

这不仅是工艺切换,而是功能的重新分配。基底 die 现在可以承载客户定制的逻辑电路,意味着 NVIDIA 的 HBM4 和 AMD 的 HBM4 在物理结构上将不同。内存正在从标准化的通用组件过渡为半定制组件——加速器厂商可以针对自己的内存访问模式优化 HBM 的基底逻辑。

实测进展:SK海力士的 12 层 HBM4 样品运行速度超过 10 Gbps,带宽达 2 TB/s;美光 36GB 12-Hi HBM4 支持 11 Gbps 引脚速度,带宽超过 2.8 TB/s,已于 2026 年 Q1 量产出货;三星计划展示 36GB 容量、3.3 TB/s 带宽的 HBM4。

#3.5 HBM 为什么昂贵

HBM 的成本远高于同等容量的 DDR 内存,原因集中在制造和封装的良率挑战上。

TSV 良率:TSV 直径只有几微米,纵横比(深度与宽度之比)很高,蚀刻和电镀步骤容易产生缺陷。一个 12 层 HBM 堆叠包含数百万个 TSV,一个连接不良就可能导致整个堆叠报废。供应商会在设计中内置 TSV 修复方案以降低损失。

晶圆减薄:为了堆叠芯片,每个晶圆必须被研磨到极薄。12 层 HBM 所需的芯片厚度约为 50 微米;16 层则需要减至 30 微米——不到人类头发丝厚度的一半。在这种厚度下,晶圆容易开裂和弯曲,而弯曲的晶圆无法以 HBM 所需的精度进行键合。

晶圆消耗:按比特计算,HBM 消耗的晶圆面积约为传统 DRAM 的两到三倍。当晶圆厂将产能分配给 HBM 时,DDR5 和 LPDDR 的产能都会受到挤压。

#4. 数据复用为什么比“多一次计算”更重要

若权重块 WW 从 HBM 取一次,对 mm 个输入向量执行乘法,搬运权重的成本由 mm 次摊为一次。

每次复用的平均权重读取量≈∣W∣m. \text{每次复用的平均权重读取量}\approx\frac{|W|}{m}.
  • 训练与 Prefill 通常有较大的 mm,矩阵乘可复用权重。
  • Decode 单步的 mm 往往较小,反复读权重;增加并发可提高 mm,但 KV 和排队成本随之增长。
  • 分块(tiling)把大矩阵拆为适合片上存储的块;块太小会重复加载,块太大放不下或使并发下降。
  • 算子融合让相邻运算在片上消费中间值,避免“写回 HBM、下一算子再读出”。CUDA 最佳实践指南

#5. 张量在不同阶段放在哪里

张量 训练 Prefill Decode
权重 前向与反向读取;有梯度和优化器状态 只读 每步反复读取
激活 需保留或重算以求梯度 当前前向短暂存在 单步激活较小
KV 训练常不以服务式 KV 缓存方式保留 建立提示词的历史 KV 随上下文持续增长
优化器状态 更新参数必需 不需要 不需要

训练状态的精确字节账见分布式训练与显存;KV 随长度增长的公式见推理。

#6. 卸载与缓存:容量收益不是免费速度

把 SS 字节状态从 HBM 卸到主机内存,可释放设备容量;需要再次使用时至少要付出传输时间:

Treload≥S/Binterconnect. T_{\mathrm{reload}}\geq S/B_{\mathrm{interconnect}}.
  • 若重载位于关键路径,模型虽能运行却可能远慢于纯设备内存方案。
  • 若传输能与其他计算重叠,部分开销可隐藏;可隐藏量受依赖关系限制。
  • 缓存只对重复访问有效;一次性流式数据应优化顺序读取,而不是期待缓存命中。

#7. 内存墙与双墙约束

#7.1 内存墙的定义

内存墙(Memory Wall)的概念诞生于 1990 年代初,描述的是处理器速度与 DRAM 速度之间不断扩大的差距。术语至今仍然存在,但在 AI 时代被赋予了新的含义:DRAM 和 HBM 正艰难追赶 LLM 对内存需求的爆炸式增长。

内存墙的本质是算力提升速度远超内存带宽提升速度。从 V100 到 B200,HBM 带宽增长约 9 倍(900 GB/s → 约 8 TB/s),而 FP8 计算能力从无到有,接近 2,000 TFLOPS。计算与带宽的增速差使得硬件的 ridge point(计算与带宽的平衡点)持续右移。

#7.2 带宽墙与容量墙

在大模型推理场景中,内存墙表现为两个相互关联的约束:

带宽墙:Decode 阶段每步仅处理少量 token,算术强度低,性能由权重读取和 KV Cache 传输速度决定。长上下文推理的 KV Cache 带宽消耗随序列长度 O(n)O(n) 增长,这是一个“无论多少算力扩展都无法打破”的瓶颈。

容量墙:模型权重、KV Cache 和激活的总和超出 HBM 容量时,必须分片、卸载或量化。以 Llama 3 405B 为例,仅 FP16 权重就需要约 810 GB,加上优化器状态和梯度,总需求超过 2.5 TB。即使 B200 的 192 GB HBM3e 也无法单独容纳。

两堵墙导致计算单元利用率下降——GPU 和 TPU 的计算核心经常处于闲置状态,等待数据从内存到达。

#7.3 GPU 显存代际演进

GPU HBM 代际 容量 带宽 算力(FP16/FP8) NVLink 带宽
V100 (2017) HBM2 16/32 GB 900 GB/s 125 TFLOPS 300 GB/s
A100 (2020) HBM2e 40/80 GB 2,039 GB/s 312 TFLOPS 600 GB/s
H100 (2023) HBM3 80 GB 3,350 GB/s 990/1,979 TFLOPS 900 GB/s
H200 (2024) HBM3e 141 GB 4,800 GB/s 990/1,979 TFLOPS 900 GB/s
B200 (2025) HBM3e 192 GB ~8,000 GB/s 1,125/~2,250 TFLOPS 1,800 GB/s

数据来源:

每一代 HBM 带宽的提升直接转化为 decode 阶段吞吐的改善。H200 相比 H100 计算单元完全相同,仅通过 HBM3e 将带宽从 3.35 TB/s 提升到 4.8 TB/s、容量从 80 GB 提升到 141 GB,就显著改善了长上下文和高并发的推理表现。

#8. 内存技术的演进链

触发问题 方法 收益 新代价
算子重复搬运中间张量 融合、分块 降低 HBM 访问 片上资源占用增加
注意力分数矩阵过大 I/O 感知的精确注意力 避免显式存储完整分数矩阵 kernel 复杂、受块形状约束
权重/状态超过 HBM 分片、卸载、量化 可运行更大模型 网络传输、精度或重算成本
多请求 KV 分配碎片 分页 KV 管理 提高可用缓存率 块映射与管理开销
Decode 受 HBM 带宽限制 HBM 代际迭代 + 低精度量化 单堆栈带宽持续提升 良率挑战、封装成本高

边界: FlashAttention 优化的是数据移动,不改变全注意力的数学依赖和通常的二次计算量;它的 kernel 原理在算子与 Roofline,长上下文能力问题在长上下文。

#原始资料

本页由仓库中的 Markdown 生成。具体技术结论请结合正文引用与实验条件理解。

输入关键词,探索整个知识库

↑ ↓ 选择 ↵ 打开36 篇笔记,一次搜索