0
0

Locality 与 Parallelism:贯穿 LLM 推理系统的两个不变量

问题起点

在讨论推理 Infra 的长期不变量时,Locality 与 Parallelism 经常被并列提出。它们不是两个孤立术语,而是几乎所有高性能推理设计都会遇到的一对基本矛盾:如何把工作拆开并行,同时尽量让计算靠近数据,减少通信与搬运。

Locality:局部性

Locality 关注的是:

计算需要的数据,离执行计算的位置有多近,以及数据是否能被高效复用。

一个粗略的数据“距离”层级可以表示为:

Register
  ↓
L1 / L2 Cache
  ↓
HBM
  ↓
同机另一设备 HBM
  ↓
NVLink / HCCS / PCIe
  ↓
跨机 RDMA / RoCE / IB
  ↓
Host DRAM
  ↓
SSD / Remote Storage

实际延迟和带宽关系依赖具体硬件,但系统原则基本不变:越频繁使用的数据越应该靠近计算。

Locality 的五种常见形式

1. Spatial Locality

连续或邻近的数据被一起访问。例如 tensor 的连续内存访问、GPU coalesced access。

2. Temporal Locality

最近使用过的数据很可能很快再次使用。Prefix Cache 就是在利用共享 system prompt 或历史 prefix 的时间局部性。

3. Device Locality

KV、weight、activation 是否位于当前执行设备的 HBM。local HBM 与 remote HBM 的成本完全不同。

4. NUMA Locality

CPU socket、PCIe root complex 与 accelerator 的拓扑关系决定 host memory access 成本。

5. Network / Topology Locality

同卡、同 NVLink/HCCS domain、同节点、同 rack、跨 rack 是不同通信层级。集群 scheduler 不能只看“哪张卡空闲”,还要考虑“哪张卡离需要的数据近”。

Parallelism:并行化

Parallelism 关注的是:

如何拆分一个 workload,让更多计算资源同时工作。

LLM 中常见的并行维度包括:

  • DP:Data Parallelism
  • TP:Tensor Parallelism
  • PP:Pipeline Parallelism
  • EP:Expert Parallelism
  • CP:Context Parallelism
  • DCP:Decode Context Parallelism

并行的收益来自缩短单资源承担的计算量、扩大模型容量或提高吞吐;代价则通常是通信、同步和数据分布复杂度上升。

TP:并行收益与通信成本

假设一次计算单卡需要 100 ms:

TP1: compute 100 ms + communication 0
TP2: compute 50 ms + communication 10 ms → 60 ms
TP4: compute 25 ms + communication 25 ms → 50 ms
TP8: compute 12.5 ms + communication 50 ms → 62.5 ms

这些数字只是教学模型,不代表具体硬件实测,但它揭示一个重要规律:

并行规模存在最优点;超过最优点后,communication 和 synchronization 会吃掉 compute gain。

因此“更多卡”从来不等于“更快”。

EP:Parallelism 与 Locality 冲突的典型案例

MoE 把不同 Expert 放到不同设备:

Token
  ↓ Router
Expert Placement
  ↓
All-to-All Dispatch
  ↓
Expert Compute
  ↓
Combine

EP 增大意味着 Expert 可以跨更多设备并行,但 token 也需要跨设备移动。于是:

Parallelism ↑
   ↓
Expert distribution ↑
   ↓
Token movement ↑
   ↓
Communication pressure ↑
Locality ↓

DeepEP、topology-aware expert placement、负载均衡等优化,本质都是在降低这项代价。

Context Parallelism / DCP

长上下文可以按 token / context 维度分片到多设备,从而分摊 KV storage 与 attention computation。

但 attention 又依赖跨 token 信息,因此并行会引入 KV / metadata / partial result communication。这正是 DCP 中 KV layout、rank mapping 和通信设计复杂的原因。

参见:Decode Context Parallelism(DCP)详解:长上下文解码中的 KV Cache 分片、通信与 vLLM/昇腾实现。

PD:主动牺牲 Locality 换资源解耦

P/D 分离是一个特别典型的系统 trade-off。

混部时,prefill 产生的 KV 可以天然留在本地;分离后则需要:

Prefill Node
   ↓ KV / state transfer
Network
   ↓
Decode Node

这主动破坏了一次 locality,但换来了:

  • prefill / decode 独立扩缩容;
  • 更适合各自 workload 的资源配置;
  • 更灵活的 scheduling 与 isolation。

因此判断 P/D 是否值得,不能只比较算力,而要看:

资源解耦收益 > state transfer + locality loss 的成本。

参见:PD 分离、DCP 与 KV Pool:计算分工、缓存分片和跨节点复用。

KV-aware Routing:Cluster-level Locality

如果一个请求的 KV 已经存在 Node A,而下一轮却路由到 Node B,就可能产生重新计算或 KV transfer。

因此更好的 router / scheduler 会利用 cache locality:

Request
  ↓
查询 prefix / KV 所在位置
  ↓
优先路由到已有 state 的 worker

这说明 locality 不是 kernel 层专属概念,它可以一路上升到 cluster scheduler。

为什么 topology 重要

同样是 TP8:

  • 节点内 8 卡高速互联;
  • 跨两节点 8 卡;

其通信成本可能完全不同。因此常见设计会让高频 collective 尽量限制在高速 domain 内,把更松耦合的 DP 等维度放到较慢链路上。

这也是“parallelism 要尊重 hardware locality”的具体含义。

用 Locality / Parallelism 解读常见技术

技术 主要系统作用
TP / EP / CP / DCP 增加 parallelism,同时引入不同形式的通信与同步
FlashAttention 改善片上/显存数据复用与 memory locality,减少 HBM IO
Prefix Cache 利用 temporal locality
KV-aware Routing 利用 cluster-level cache locality
P/D 牺牲部分 state locality,换资源解耦与调度灵活性
DeepEP 降低 EP parallelism 带来的 communication penalty
Mooncake / NIXL 在 locality 被破坏或 state 必须迁移时,降低 data movement 成本

一个通用性能模型

面对任何新的推理机制,都可以先用下面的简化模型思考:

Total Time
≈ Compute Time
+ Communication Time
+ Memory / State Movement
+ Synchronization / Queueing

Parallelism 主要试图压低 Compute Time;Locality 主要试图压低 Memory / State Movement 和 Communication Time。真正的系统优化是在四者之间寻找全局最优,而不是把某一项单独做到最大。

实践方法

以后读 vLLM、SGLang、DeepEP、Mooncake 等代码时,可以固定问:

  1. workload 是按什么维度切分的?
  2. 切分后哪些数据不再 local?
  3. 新增了什么 collective / point-to-point communication?
  4. communication 是否跨越了更慢的 topology boundary?
  5. state 能否复用,还是每次都搬?
  6. 是否存在 parallelism 增大后收益反转的点?

这六个问题可以快速把一个新名词还原为系统问题。

知识联系

最重要的抽象

无论框架和硬件如何变化,都可以持续追问四个问题:

计算怎么拆?数据放哪里?计算和数据距离多远?为了并行需要搬多少数据?

这四个问题是 Locality 与 Parallelism 在 AI Infra 中最核心的长期价值。