CXL vs RDMA:Engram 的两种「远程内存」通信 pattern

← 返回 §RDMA 对比 · 02c 时序图(已标注) · L1–L3 存储 · 为何选 CXL 非 RDMA · prefetch window · 答疑目录


问题

02c 图 右下角 communication patternCXLRDMA 各指什么通信方式?和主流程 Step 2 的箭头如何对应?


结论

CXL pattern(Engram 用)RDMA pattern(KV 池 / Mooncake 类)
语义内存 load/store(像读本地 DRAM)消息 get/put(像网络 RPC)
寻址mmap(cxl_base) + offset[i] 字节地址远端对象句柄 + 显式请求
粒度cache-line / 数百字节 随机读适合 MB–GB 大块
典型路径L3 CXL → PCIe P2P → GPU staging(或经 CPU memcpy)GPU → host bounce → NIC RDMA → 远端 DRAM
Engram 5KB×多段离散读延迟 ≈ DRAM,可塞进 ~56 μs 窗口小包效率差,延迟 远高于 DRAM

02c 主流程画的是 CXL;灰色 RDMA pool 面板是 对比参照(同一需求若走 RDMA 为何不行)。

→ 时间窗 + 56 μs 如何推出这一结论:为何选 CXL 而非 RDMA?


1. CXL pattern

是什么

CXL.mem 把扩展内存挂进 CPU/GPU 的 统一地址空间。进程 mmap 后,读 embedding 就是 ordinary load/store

cxl_ptr = mmap(DAX device)
row = load(cxl_ptr + offset[i]) // 离散 320B 行

在 02c 上标在哪

图元素pattern
黄框 L3 CXL Poolmmap: cxl_base+offset[i] · CXL.mem: load/store
橙色虚线 path BCXL load/store + PCIe P2P(推荐)
绿框 path ACXL→CPU OpenMP memcpy,再进 GPU
蓝框 L1 stagingcxl2vram_copy 终点
右侧橙条 CXL: fetch @ layer k与 GPU 算 0..k-1 并行 的 CXL 读

不是发「请给我第 i 行」的网络消息,而是 CPU/GPU DMA 直接按地址读


2. RDMA pattern

是什么

RDMA 内存池:GPU/CPU 通过 NIC 对远端内存发 get/put

put(remote_buf, local_chunk) // 消息式
get(local_buf, remote_handle) // 需 NIC 参与、常经 bounce buffer

面向 大块、连续 传输(整段 KV cache);对 Engram 这种 每 token 每层 ~5 KB、16 段离散 320B 访问:

  • 大量 小包 → 带宽利用率低
  • 软件栈 + NIC 延迟 → 远高于本地 DRAM填不进 56 μs prefetch 窗

在 02c 上标在哪

图元素pattern
右下灰框 RDMA pool (KV-style)get/put · GPU→bounce→NIC→remote
小示意图 GPU—NIC—remote不走 主流程 Step 2
many 320B pkts | too slow here与 Engram 访问形态不匹配

主流程 没有 RDMA 箭头——故意表示 Engram 不选这条 pattern


3. 为何 Engram 要标清两者

  1. 延迟预算:Layer 2 的 prefetch 窗 ≈ 56 μs → 需要 近 DRAM 的 CXL,RDMA 不够。
  2. 访问形态:离散小行读 → load/store 自然;RDMA 消息 开销过大。
  3. 多机共享:CXL Switch 硬件映射 同一 L3 池;RDMA 也能共享,但 语义不同、延迟曲线不同

奠基论文在 Host DRAM offload 已验证 prefetch;CXL 论文把 L3 换成 共享 CXL 池通信 pattern 从「本地 DRAM load/store」换成「CXL load/store」,而不是换成 RDMA。


4. 与三级存储的对应

L1 HBM / L2 DRAM / L3 CXL.mem:三级存储区别

  • CXL pattern 发生在 L3 → L1(Step 2)
  • RDMA pattern 是另一种「远端内存」产品形态,不落在 Engram 02c 主路径上

参考