非共识洞察

KV缓存

芯片器件7 分钟阅读

别名:KV Cache、Key-Value Cache、键值缓存、KV-Cache

**K**ey-**V**alue **C**ache,Transformer 自回归解码中的**键值缓存**。把已生成 token 在每一层 Attention 中算出的 K、V 矩阵保留下来,避免下一轮重新计算——LLM 推理性能优化的第一性原理。

KV缓存(KV Cache)

Key-Value Cache,Transformer 自回归解码中的键值缓存。把已生成 token 在每一层 Attention 中算出的 K、V 矩阵保留下来,避免下一轮重新计算——LLM 推理性能优化的第一性原理。

为什么需要 KV 缓存

无 KV 缓存的解码(每生成一个 token):
  Prompt + 1个token → 整段重算 Attention(O(n²) FLOPs)

有 KV 缓存的解码:
  Prefill:一次性算出 prompt 的 K/V 并缓存
  Decode:每步只算新 token 的 Q,K/V 拼接历史缓存
    └── 复杂度从 O(n²) 降到 O(n)

核心收益

  • 算力节省:FLOPs/token 从 O(n) 降到 O(1)
  • 延迟降低:每 token 解码时间从百 ms 级降到十 ms 级
  • 吞吐提升:单 GPU 可并发多个序列

显存占用公式

KV Cache 单序列大小(字节)=
  2 × n_layers × n_kv_heads × head_dim × seq_len × bytes_per_elem
  │   │       │           │           │         │
  │   │       │           │           │         └─ FP16=2 / INT8=1 / INT4=0.5
  │   │       │           │           └─ 序列长度(context window)
  │   │       │           └─ head 维度(hidden_dim / n_heads),常 64-128
  │   │       └─ KV 头数(MHA=n_heads, MQA=1, GQA=中间值)
  │   └─ 层数(70B 模型约 80 层)
  └─ 2 = K 和 V 各一份

总占用 = 单序列大小 × batch_size

实战占用(FP16)

模型 层数 KV 头 头维 1K token 32K token 128K token 1M token
Llama-3 8B 32 8 (GQA) 128 128 MB 4 GB 16 GB 128 GB
Llama-3 70B 80 8 (GQA) 128 320 MB 10 GB 40 GB 320 GB
Llama-3.1 405B 126 8 (GQA) 128 504 MB 16 GB 64 GB 504 GB
典型 MHA 70B 80 64 (MHA) 128 2.5 GB 80 GB 320 GB 2.5 TB

关键事实:长上下文场景下 KV Cache 单卡可超过 100 GB,是 HBM 容量升级的核心驱动力。

优化技术谱系

KV 缓存优化
  ├── 减少 K/V 数量
  │     ├── MQA(Multi-Query Attention)—— 所有头共享 1 组 K/V,KV 头数=1
  │     ├── GQA(Grouped Query Attention)—— 多个 Q 头共享 1 组 K/V,主流折中
  │     │     └── Llama-2/3、Mistral、Qwen 等采用 8 组 KV
  │     └── MLA(Multi-Latent Attention)—— DeepSeek-V2/V3,将 K/V 压缩到低秩潜空间
  │           └── KV 缓存相比 MHA 缩小 5-10x
  ├── 降低精度
  │     ├── KV Cache 量化(FP16 → INT8 / INT4)
  │     │     └── 字节数减半 / 减四倍,几乎无损
  │     └── 混合精度(关键层保留 FP16,浅层 INT4)
  ├── 内存管理
  │     ├── PagedAttention(vLLM)—— 虚拟内存/分页,显存利用率 4x
  │     ├── Sliding Window Attention —— 只保留最近 N 个 token 的 KV
  │     └── Token Eviction / Merging —— 主动丢弃/合并相似 KV
  └── 计算优化
        ├── FlashAttention —— IO 感知精确 Attention,不缩小 KV 但减少 HBM 读写
        └── FlashDecoding —— 长序列解码并行化

硬件影响(与电子产业的核心交叉)

KV Cache 直接定义 AI 加速器的存储层次需求

LLM 推理的存储层次
  ├── [SRAM](/wiki/sram/)(片上,MB 级)
  │     └── 当前 step 的 Q / 拼接后的 K、V
  │           └── KV Cache SRAM 容量决定单批 seq 长度上限
  │                 └── H100: ~50MB L2 / B200: ~72MB L2
  ├── [HBM](/wiki/hbm/)(封装外,GB 级)
  │     └── 完整 KV Cache 存储
  │           └── H100: 80GB / H200: 141GB / B200: 192GB
  │                 └── 192GB HBM 是 Llama-3 70B 128K context 的入场券
  └── [DRAM](/wiki/dram/)(系统主存,TB 级,可用 KV Cache offload)
        └── ZeRO-Inference、FlexGen 等技术用 SSD/DRAM 分层卸载

关键硬件决策

决策 由 KV Cache 驱动的方向
HBM 容量 70B 模型 128K context → 至少 80GB HBM/卡
HBM 带宽 Decode 阶段每 token 需读全部 KV,1.6T+ 模型对带宽压力 > 训练
SRAM 规模 Apple M 系列用超大 SRAM(96MB+ L2)放得下更多 KV
批处理大小 长序列 + 大模型 = 只能 batch=1,GPU 利用率下降

代表厂商与技术方案

  • vLLM(PagedAttention):UC Berkeley 开源,KV Cache 显存利用率从 20-40% 提升到 80%+
  • DeepSeek MLA:Multi-Latent Attention,KV 缩小 5-10x
  • SGLang:RadixAttention,前缀共享 KV 缓存
  • TensorRT-LLM(NVIDIA):KV Cache 量化、Continuous batching
  • HuggingFace TGI:paged attention + prefix caching
  • Anthropic Prompt Caching:API 层共享 KV 缓存,命中降本 90%

关键洞察:KV Cache 是 LLM 推理的"内存税"

与训练阶段算力受限(FLOPs-bound)不同,推理阶段内存受限(memory-bound)—— 每生成一个 token 都必须把整个序列的 KV Cache 从 HBM 读出。HBM 容量HBM 带宽共同决定单卡推理性能上限,驱动了 H100 → H200(141GB)→ B200(192GB)→ B300(288GB 路线)的容量竞赛。

核心关系

[KV缓存](/wiki/kv-cache/)(Transformer 推理核心数据结构)
  ├── 上游算法
  │     ├── Self-Attention 机制(Q/K/V 投影)
  │     ├── FlashAttention(IO 感知精确 Attention)
  │     └── MLA / GQA / MQA(KV 头压缩)
  ├── 内存管理
  │     ├── PagedAttention(vLLM 虚拟内存分页)
  │     ├── Prefix Caching(SGLang RadixAttention)
  │     └── KV Cache 量化(INT8/INT4)
  ├── 下游硬件影响
  │     ├── [HBM](/wiki/hbm/)(容量与带宽决定 decode 性能)
  │     ├── [SRAM](/wiki/sram/)(片上容量决定单批 seq 长度)
  │     ├── [XPU](/wiki/xpu/)(架构设计需考虑 KV Cache 访存模式)
  │     └── 内存墙 / [3D DRAM](/wiki/3d-dram/)(容量突破路径)
  ├── 服务对象
  │     ├── [AIDC](/wiki/aidc/)(AI 数据中心推理服务)
  │     ├── [AI服务器](/wiki/ai-server/)(单卡/多卡推理部署)
  │     └── [AI推理终端](/wiki/edge-ai-device/)(边缘 KV 压缩与缓存)
  └── 经济模型
        ├── 长上下文 = 成本线性增长(每 token 都需读 KV)
        ├── Prompt Caching = 缓存复用降本 90%
        └── 推理服务商业模式受 KV Cache 物理规律约束

关键参数速查

参数 典型值 说明
单 token KV 大小(70B GQA) 5 MB 32 层 × 8 KV 头 × 128 维 × 2 × 2B
1M context KV(70B GQA) 5 GB 长文本应用基准
70B 模型 batch=8, 32K context 80 GB 接近 H100 容量极限
KV 量化收益(INT8) 50% 容量 质量损失 < 0.1%
PagedAttention 收益 4x 吞吐 显存碎片化消除
MLA 收益(vs MHA) 5-10x KV 缩小 DeepSeek-V3 报告

3D DRAM

区别于HBM的"芯片堆叠+TSV+硅中介层"封装式3D,**3D DRAM**指**单元层级的立体堆叠**——将DRAM存储单元(1T1C)在单芯片内沿垂直方向多层堆叠,以突破传统DRAM的微缩极限。

芯片器件别名:Three-Dimensional DRAM、立体DRAM

存储芯片

AI数据中心"算力-带宽-存储"三角中的存储侧,覆盖**介质、内存、控制、模组、缓存**五大类的全栈芯片体系,是AI服务器性能与成本的关键瓶颈之一。

芯片器件别名:Storage Chip、Memory Chip

交换芯片

数据中心交换机的核心芯片,决定交换机的性能、功耗和功能。

芯片器件别名:S、w

趋肤效应

高频交流电/高速信号在导体中**集中于表面薄层**流动的物理现象,是覆铜板与铜箔在AI高速时代升级到HVLP的**根本驱动力**,也是112G/224G/448G SerDesPCB材料选型的核心物理基础。

芯片器件别名:趋、肤

主控芯片

SSD主控芯片(Controller),负责SSD内部的数据读写管理、磨损均衡、纠错等核心功能。 别名:**存储主控芯片**(存储芯片体系下的标准命名)。

芯片器件别名:存储主控芯片、SSD Controller

AI推理终端

部署在边缘侧进行AI推理的设备,区别于云端AI数据中心。

芯片器件别名:E、d

DRAM

**D**ynamic **R**andom **A**ccess **M**emory,动态随机存取存储器。

芯片器件别名:D、y

eMMC

**eMMC** 嵌入式多媒体卡,将**NAND Flash 介质 + 主控芯片(控制器)集成在一个 BGA 封装**内的标准化嵌入式存储模块,对 Host 侧呈现"类 SD 卡"接口,**省去 Host 侧 FTL 管理**,主要用于移动设备 / 嵌入式系统 / 入门边缘 AI 的中低成本中等容量存储。

芯片器件别名:embedded MMC、embedded MultiMediaCard