跳到主要内容
新型互联与远程内存

第1章:什么是分离式内存 —— AI Infra 视角下的硬件演化与系统范式

从 GPU 显存爆炸、推理 KV-cache 池化、训练 checkpoint 远端写三个 AI infra 痛点出发,梳理分离式内存的硬件路径(RDMA/CXL)与系统范式(DM 事务、KV-cache pool),建立『为什么 AI infra 需要远端内存』的直觉

Disaggregated Memory RDMA CXL KV-Cache AI Infra Memory Pool

千亿大模型一张 H100 装不下,推理一秒生几十 GB KV-cache,训练 checkpoint 几十 TB 反复写盘——AI infra 在算力维度狂飙的同时,内存维度正在以同样速度撕裂。本章把 “Disaggregated Memory(分离式内存)” 这个看似来自数据库领域的概念拆开:它的硬件根源是什么、它和 RDMA / CXL 是什么关系、它怎么进入 AI infra 的核心数据通路、它的设计有哪些不可能三角。读完这章,你会知道为什么 Mooncake、FORD、Pond 这些看似不同领域的系统,本质都在解一个共同问题——算力和内存的物理位置已经分开,但软件还没适应

📑 目录


1. 一个具体场景:KV-Cache 怎么把内存撑爆的

来算一笔账。Llama 3-70B 在 FP16 下,每个 token 的 KV-cache 约:

2 (K + V) × 80 (layers) × 8192 (hidden) × 2 (FP16) ≈ 2.5 MB / token

一个 32K context 的对话占 ~80 GB KV-cache——已经超过 H100 的 80GB HBM 上限。商用 LLM API 通常并发跑数百个会话,单实例总 KV-cache 需求轻松到 TB 级

直觉反应:把每个会话的 KV-cache 单独算单独存,不行就拒绝长 context。 问题:用户体验崩,且大量重复 prefix(系统 prompt、few-shot 示例)被反复重算,GPU 算力浪费。

Mooncake / DistServe 的做法:把 KV-cache 从 GPU HBM 倒腾到 跨节点的 KV-cache 池,用 RDMA 拉取。冷数据放 CPU DDR、温数据放邻居 GPU HBM、热数据放本地——这就是一个典型的 分离式内存系统

🌟 结论:KV-cache 池本质上不是”推理优化”,而是 AI infra 借用了数据库领域的 disaggregated memory 范式——只是数据从交易记录换成了张量。

🍎 直觉比喻:本地 HBM 像 CPU 寄存器,本节点 DDR 像 L1 cache,远端节点的 HBM/DDR 像 L2/L3 cache,持久化 NVMe 像主存——AI infra 正在重建一套 跨机柜的 cache hierarchy


2. 三种”内存不够”的形态:训练 / 推理 / 数据系统

“内存不够”在 AI 系统里有三副面孔,根因不同,解药也不同:

2.1 训练侧:模型状态超过单机总内存

模型参数量FP16 参数大小加 optimizer state(Adam,FP32)单机能装吗
GPT-3175B350 GB~2.1 TB8 卡 H100 = 640GB,装不下
Llama 3-405B405B810 GB~4.9 TB单机 8 卡装不下
万亿稀疏 MoE1T+2 TB+12 TB+集群级问题

解药:ZeRO / FSDP 把参数切片到多卡,ZeRO-Infinity 进一步把 optimizer state offload 到 CPU DDR 甚至 NVMe——本质上是在用”远端内存”换显存。当 offload 跨机时,RDMA 是必备通路。

2.2 推理侧:KV-cache 与 prefix 共享

KV-cache 撑爆的本质是 多会话内存隔离没必要:同一系统 prompt 被 100 个会话各算一遍,99% 算力浪费。

解药:跨实例的 KV-cache 池 + prefix 共享 + Prefill/Decode 分离。Mooncake 报告 Kimi 商用部署 prefix 命中率 50%+——直接省掉一半算力。

2.3 数据系统:事务 / 推荐特征 / 模型 metadata

LLM 系统的”周边数据”——用户偏好、推荐特征表、模型版本 metadata、训练样本索引——量级常常超过单机内存,且要求 事务一致性(改了用户偏好得马上生效)。

解药:分离式内存数据库——FORD / Motor / LOTUS 这一系。CN(compute node)做事务逻辑,MN(memory node)是被动 RDMA 内存池,数据通过一致性协议跨多 MN 复制。

🧠 关键洞察:这三个看似无关的场景共享同一个底层范式——把”装不下的状态”放到远端,通过低延迟互联(RDMA / CXL)按需访问,在软件层面隐藏物理位置。Disaggregated Memory 是一种横跨训练、推理、数据系统的设计哲学,不是某个具体系统


3. Disaggregation 的硬件路径:从 NUMA 到 RDMA 到 CXL

延迟 / 距离 / 一致性强度 三个轴,分离式内存有三条硬件路径:

   延迟         一致性                距离
   ──────────────────────────────────────────────────
   ~ns         hardware coherent     same socket    ← NUMA / UPI
   ~100 ns     hardware coherent     1m  (same rack)← CXL 1.1/2.0
   ~µs-10µs    software (no HW)      10m (cross-rack)← RDMA (RoCE/IB)
   ~ms         software              far / NVMe pool← NVMe-oF / GDS

3.1 NUMA(局部分离)

CPU 多 socket 的 DDR 跨 socket 访问,延迟从 80ns(local)涨到 130ns(remote)——这是分离式内存最早的雏形。优势:硬件缓存一致(MESI 协议)。劣势:跨 socket 带宽是瓶颈,且不能跨机。

3.2 RDMA(跨节点分离)

Mellanox ConnectX 系列网卡支持 bypass 内核 + bypass 远端 CPU 的内存访问。one-sided READ/WRITE/CAS 是核心:发起方直接读写远端内存,远端 CPU 不感知。

  • 延迟:5-10µs(RoCE),1-3µs(InfiniBand)
  • 带宽:100-400 Gbps
  • 一致性:软件层负责——硬件不保证读到最新写,要软件用 fence、CAS 自己同步
  • 适合:跨节点 / 跨机柜、容量优先于延迟

🍎 直觉比喻:RDMA 像 快递员有钥匙——他能进你家拿东西不打扰你,但你得自己保证家里东西是最新版的。

3.3 CXL(机柜内分离,正在崛起)

Compute Express Link 是 PCIe 物理层 + 缓存一致协议,Intel SPR(2023)开始量产。Type 3 设备(memory expander)就是远端 DDR——把它挂上 CXL 总线,OS 看到的是一段额外的 NUMA-like 内存

  • 延迟:本地 DDR ~80ns,CXL Type 3 ~150-300ns
  • 一致性:硬件保证(类似 NUMA)
  • 缺点:目前只能机柜内,2.0 才支持 pooling,3.0 才支持 sharing
  • 适合:延迟敏感 + 机柜内距离
维度RDMACXL
延迟µs 级百 ns 级
一致性软件硬件
距离跨机柜(数十 m)机柜内(数 m)
标准化成熟(2010s)2.0/3.0 仍演进
编程模型verbs / 异步load/store 直接访问
当前生态数据库、HPC、AI 训练通信云端 DDR pool 起步

不互斥:RDMA 解决跨机柜远距离,CXL 解决机柜内低延迟,两者长期共存而非替代。研究 frontier 是 “CXL pool 内跑 RDMA 协议”——既要 CXL 的延迟又要 RDMA 的距离。


4. 把”远端内存”当本地用 vs 当事务系统用

拿到 RDMA / CXL 这套硬件后,软件有两条路线分歧:

4.1 透明路线:把远端内存伪装成本地 RAM

代表:InfiniSwap(NSDI’17)、LegoOS(OSDI’18)、Pond / TPP(ASPLOS’23)。

OS 把远端内存当 swap 或额外 NUMA node,应用 不改一行代码——你 malloc 一段大内存,OS 自己决定放本地 DDR 还是 CXL 池或 RDMA 远端。

  • 优点:零应用改动
  • 缺点:OS 对应用语义无感,发生 page fault 时会卡几十 µs;不适合事务一致性场景

4.2 显式路线:暴露给应用,做事务系统

代表:FaRM(NSDI’14)、FORD(FAST’22)、Motor(OSDI’24)、LOTUS(2025)、Mooncake(FAST’25)。

应用直接用 RDMA verbs 编程,自己管理一致性、复制、锁。每个事务读到的是远端内存上的一段确定 offset,提交时用 OCC(乐观并发控制)校验版本。

  • 优点:语义可控,延迟稳定
  • 缺点:应用得重写,且 OCC validation 在高冲突下会 collapse(我们后面 AdaptX 就在解这个)

🌟 结论:透明路线适合”内存不够”的容量问题(CXL pool / 训练 offload),显式路线适合”语义敏感”的数据系统(事务、KV-cache 池、模型 metadata)。AI infra 两条路都在用——选错路径,设计就一定崩。


5. AI Infra 的三种典型用法

把前面的硬件路径和软件路线交叉,落到 AI 系统里有三种典型用法:

5.1 KV-Cache 池化(Mooncake 模式)

问题:LLM 推理多会话 prefix 重复计算严重,单 GPU HBM 装不下足够会话。

架构:

   ┌─────────────┐  ┌─────────────┐  ┌─────────────┐
   │  Decode 实例  │  │  Decode 实例  │  │  Prefill 实例 │
   │  GPU + HBM   │  │  GPU + HBM   │  │  GPU + HBM   │
   └──────┬───────┘  └──────┬───────┘  └──────┬───────┘
          │                 │                 │
          └────────────RDMA fabric ───────────┘

                  ┌─────────▼──────────┐
                  │   KV-Cache Pool     │
                  │   CPU DDR / NVMe    │  ← 跨节点共享
                  └────────────────────┘

关键数据:Mooncake 报告生产环境 prefix cache 命中率 50%+,推理吞吐提升 3-5×。

软件路线:显式路线——应用层(推理引擎)直接用 RDMA 或 NCCL 拉取 KV-cache 块,自己管 LRU 和一致性。

5.2 训练 Offload + 远程 Checkpoint

问题:大模型 optimizer state + checkpoint 超过单机内存。

架构:ZeRO-Infinity 三层:HBM → DDR → NVMe。跨节点的 NVMe / DDR 通过 RDMA 拉取。

软件路线:透明路线(对应用透明)+ 显式路线(对训练框架显式调度)。PyTorch 的 offload_to_cpu 是透明,DeepSpeed 的 NVMe offload 是显式。

5.3 分离式数据库(FORD / Motor / LOTUS / AdaptX)

问题:模型周边数据(用户偏好、推荐特征、模型 metadata)需要事务一致 + 跨节点扩容。

架构:CN-MN 分离。CN 跑事务逻辑,MN 是被动 RDMA 内存池。

软件路线:纯 显式路线——CN 用 one-sided RDMA 直接 CAS / READ / WRITE 到 MN,自己管 OCC 验证、写复制、锁。

🍎 三种用法的共通点:算力和数据物理位置分开,通过低延迟互联连接,软件层面对应用隐藏(部分)细节。这就是 disaggregation 的实质。


6. 分离式内存的不可能三角

设计一个分离式内存系统时,这三组矛盾必须取舍:

6.1 延迟 vs 容量 vs 一致性

        延迟低




          └──────────► 容量大
         /
        /
       一致性强
  • 延迟低 + 一致性强 → 容量受限(本地 HBM / NUMA)
  • 容量大 + 一致性强 → 延迟高(CXL 跨机柜)
  • 容量大 + 延迟低 → 一致性弱(RDMA + 软件协议)

6.2 透明性 vs 语义可控

  • 完全透明(InfiniSwap / Pond):应用零改动,但 page fault 卡顿、不能优化数据局部性
  • 完全显式(FORD / Mooncake):性能可调到极致,但应用重写
  • 部分透明(ZeRO-Infinity / TPP):靠 hint 和 policy 做 trade-off

6.3 一致性强度 vs 复制开销

  • 强一致(线性一致 + 同步复制):任意读看到最新写,但每次写要等所有副本 ack,延迟高
  • 弱一致(最终一致 / 读自己的写):写快,但读可能拿到陈旧值
  • OCC + 版本校验(FORD/Motor):读快,冲突在 commit 时检测——但高冲突下 abort 率会爆炸

🍎 这三个不可能三角贯穿后面所有章节。理解每个系统站在哪个角,你就理解了它的设计哲学。FORD 是”延迟优先 + 弱一致 + 显式”;CXL Type 3 是”延迟优先 + 强一致 + 透明,但容量受限”;Mooncake 在 prefix 共享上选弱一致(KV-cache 重新算可以),在 metadata 上选强一致。


7. 本模块章节地图

后续 7 章按”硬件 → 系统 → 应用 → 实战”四段展开:

主题你会得到什么
2RDMA 通信原理与 verbs看懂 FaRM / FORD / Mooncake 的底层调用
3CXL 与硬件互联演进判断 CXL 在你场景能/不能用
4分离式内存事务系统精读FORD/Motor/LOTUS/AdaptX 横向对比 + 设计权衡
5分离式 KV-Cache 与 PD 分离Mooncake/DistServe/SplitWise 三家路线对比
6训练侧远程内存与参数池化ZeRO-Infinity / HugeCTR / RDMA ckpt 工程实务
7主流系统对比与选型给一个具体需求,3 分钟选出该用哪个系统
8端到端实战在 RDMA 集群上跑 CREST + AdaptX 或 Mooncake demo

学习线路推荐:

  • 数据库背景的工程师:1 → 2 → 4 → 7 → 8(主线 DM 事务)
  • AI 推理工程师:1 → 2 → 5 → 7 → 8(主线 KV-cache)
  • 训练系统工程师:1 → 2 → 6 → 3 → 8(主线 offload)
  • 研究方向选题:1 → 4 → 5 → 看 frontier(per-key admission、CXL 跑 RDMA、cache-coherent disaggregation)

✅ 自我检验清单

  • KV-cache 内存账:能徒手算出 Llama 3-70B 在 32K context 下单会话的 KV-cache 大小
  • 三种”不够”形态:能区分训练侧 / 推理侧 / 数据系统侧”内存不够”的根因和典型解药
  • 三条硬件路径:能在白板画出 NUMA / RDMA / CXL 的延迟-距离-一致性坐标
  • RDMA 一边读的本质:解释为什么 one-sided READ 是 disaggregation 的”使能技术”——而不是”快网卡”
  • CXL vs RDMA:不互斥关系,各自适合什么距离和延迟需求
  • 透明 vs 显式两条路:能给一个新场景判断该选哪条,且说出代价
  • 三种典型用法:能讲清 KV-cache 池 / 训练 offload / DM 事务三种用法的相同底层范式
  • 不可能三角:延迟 / 容量 / 一致性、透明 / 显式、一致性 / 复制开销三组矛盾
  • 反直觉:解释为什么”CXL 不会取代 RDMA”——长期共存而非替代

📚 参考资料

概念入门

  • The Datacenter as a Computer (Barroso et al., 3rd ed.) —— Synthesis Lectures:Morgan & Claypool —— 理解 disaggregation 必读的底子
  • A Resource-Disaggregated System Architecture (Han et al., 2020) —— 综述早期路线
  • CXL Consortium 官方白皮书:computeexpresslink.org —— 三代演化权威说明

关键论文

  • LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation (Shan et al., OSDI’18):arXiv 1810.01632 —— Disaggregated OS 概念奠基
  • InfiniSwap (Gu et al., NSDI’17):USENIX 链接 —— 远端内存 swap 的代表
  • FaRM: Fast Remote Memory (Dragojević et al., NSDI’14):USENIX 链接 —— RDMA OCC 鼻祖
  • Pond: CXL-Based Memory Pooling Systems for Cloud Platforms (Li et al., ASPLOS’23):ACM DL —— 云端 CXL 1.1 实证
  • Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving (Qin et al., FAST’25):arXiv 2407.00079 —— Kimi 商用 PD 分离架构

行业讨论

  • Memory Disaggregation: Why and How —— ACM Queue / Communications:工业视角的概念整合
  • Why CXL is Not a Silver Bullet —— SemiAnalysis 等媒体的 CXL 现状分析
  • NVIDIA Mooncake Compatibility / DeepSeek 3FS —— LLM 推理领域 KV-cache 系统的工业讨论

框架文档

下一章我们打开 RDMA 的盒子,看 verbs / one-sided / doorbell batch 这些底层原语怎么让本章描述的”远端内存”真正可用。