1. 从一次矩阵乘法到跨机架数据流
单 GPU 内,Tensor Core 从 HBM 取权重和激活;多 GPU 时,局部结果必须合并,或者 token/KV 必须送到数据所有者。通信路径可能只经过 GPU fabric,也可能经过 PCIe、NIC、交换机和远端 GPU。每多跨一层,都增加协议、排队、拥塞与故障域。
2. 前置:带宽、延迟、同步和有效吞吐
峰值带宽只描述大块连续传输的理想上限。实际 collective 还包含启动延迟 α、每字节时间 β、拓扑 hop、协议分片、GPU kernel 占用和最慢 rank 的同步。小消息常由 α 主导,大消息才接近带宽上限。
所以需要按消息大小画延迟曲线,并测 P99。decode 中每层频繁的小 collective 与 prefill 中较大的 collective,即使总字节相同,代价也不同。
3. 2026 硬件层级:scale-up 与 scale-out
Scale-up 是把 GPU 放进低延迟、高带宽、近似全连接的 fabric,适合 TP/EP 的高频同步;scale-out 是通过 NIC 和数据中心网络连接更多节点,容量大但路径更长,适合 DP、部分 PP、跨节点 EP 或 PD/KV 传输。
NVIDIA 2026 官方 GB300 NVL72 页面给出的 rack-scale 配置是 72 张 Blackwell Ultra GPU、36 个 Grace CPU、总计约 20 TB HBM、130 TB/s NVLink fabric;企业参考架构列出每 GPU 800 Gb/s scale-out 网络,并用 9 个 NVSwitch tray 构成全非阻塞 NVLink 域。B300 单卡为 288 GB,8-GPU 节点约 2.30 TB HBM。数字描述硬件上限,不代表应用能得到同等有效 collective 吞吐。
较早一代 H200 官方规格为 141 GB HBM3e、4.8 TB/s 显存带宽、900 GB/s NVLink。跨代比较时必须同时标模型精度、kernel、并行 mesh 和功耗,不能只用 HBM 容量推断 tokens/s。
4. 四类核心通信原语
| 原语 | 语义 | 推理中的位置 | 主要敏感项 |
|---|---|---|---|
| all-reduce | 各 rank 数据归约后每个 rank 都得到结果 | TP 行并行层、训练梯度 | 同步频率、消息大小、环/树算法 |
| reduce-scatter + all-gather | 归约后分片,再按需聚合 | TP/序列分片、融合算子 | 是否避免冗余副本 |
| all-to-all | 每个 rank 向每个 rank 发送不同数据 | MoE token dispatch/combine | 热点、incast、消息不均衡 |
| point-to-point | 明确源和目标 | PP 激活、PD KV、迁移 | 路由、尾延迟、背压 |
5. Ring、tree 与分层 collective
ring all-reduce 把 tensor 切块,沿环做 reduce-scatter 再 all-gather;大消息带宽利用通常好,但步骤数随 rank 增长。tree 减少步骤,适合较小消息,却可能在上层链路形成热点。分层算法先在 NVLink 域内归约,再跨 NIC 归约代表分片,最后域内广播,避免每张 GPU 都直接跨机通信。
真实库会根据 topology、消息大小和协议自动选择算法。手工固定一种算法可能在某个 benchmark 赢,却在 mixed prefill/decode 下输;应保留按 shape 与负载调优的空间。
6. 把并行模式映射到链路
- TP:几乎每层同步,最需要低延迟;尽量留在单 NVLink/NVSwitch 域。
- EP:每个 MoE 层两次 all-to-all,最怕不均衡和拥塞;需要高双向 bisection bandwidth。
- PP:stage 边界传激活,频率较低,可跨较弱链路,但首 token 经过所有 stage。
- CP:attention 内交换序列/KV,通信随上下文增大;适合极长 context 的专用池。
- DP:推理请求彼此独立,逐 token 通常无同步;优先跨故障域扩展。
- PD:一次 prefill 后传一大段 KV,之后 decode 本地读;需要吞吐和尾延迟都可控的 P2P 路径。
7. TP 的逐层数据流与通信隐藏
TP 中可把 GEMM 输出切成 chunk,一边计算后续 chunk,一边 reduce-scatter 前面 chunk;也可把 collective 与不依赖该结果的 kernel 重叠。重叠的上限由依赖图和 SM/链路资源竞争决定:通信 kernel 也占 SM,过度并发会让 GEMM 变慢。
这也是 mega-kernel 与通信融合的价值:减少 launch 和中间写回,精确控制 SM 级任务。MPK(OSDI 2026)把 tensor program 编译成持久 mega-kernel,以 SM-level task graph 调度,报告端到端推理延迟最高降低 1.7×。
8. EP all-to-all:不仅传字节,还要解决 token 不均衡
MoE router 的 top-k 结果先在 GPU 上统计每个 expert token count,计算 offset,按目标 rank pack,再 dispatch。接收端把不同来源的 token 合并成 grouped GEMM;完成后按原 token 顺序 combine。任一热点 expert 都会延长整个 layer。
DeepEP V2 的设计把低延迟模式、normal mode、FP8 dispatch/BF16 combine 和可控 SM 分配集成起来。优化时要同时看 NVLink/RDMA 带宽、per-rank token histogram、pack/unpack kernel 与专家 GEMM 重叠,不能只跑均匀 all-to-all。
9. RDMA、GPUDirect 与 host bounce
传统路径把 GPU 数据拷到 host buffer,再由 CPU/network stack 发送;GPUDirect RDMA 允许 NIC 直接读写 GPU memory,减少复制和 CPU 参与。RDMA 仍需要内存注册、queue pair、completion、拥塞控制和目标端 buffer 管理,并不等于“零延迟”。
PD KV 传输尤其需要异步语义:prefill worker 完成某些 layer/block 后即可发送,decode worker 边接收边准备 block table,控制面只传地址、长度、版本和完成事件。若等完整 prompt 算完再一次性复制,decode 只能在全部传输结束后启动,三个阶段会被串行化。
10. KV 传输:为什么吞吐够了,TTFT 仍可能坏
一段 KV 的字节数随层数、KV heads、head dim、token 数和精度增长。链路平均带宽看似足够,但如果多个长 prompt 同时完成 prefill,就会 burst 到同一 decode pool;排队和 incast 把 P99 传输时间放大。
所以 PD router 需要预估 KV bytes、目标链路队列和 decode load,而不是只选最空闲 GPU。NVIDIA Dynamo 的官方设计使用 NIXL 做非阻塞 GPU memory transfer,并让 router 结合 KV overlap 与负载选择 worker。
11. 数据中心拥塞:平均负载低也会出现 incast
EP all-to-all、checkpoint、训练梯度、PD KV 和存储读可能共享 NIC/ToR。它们的平均带宽之和低于链路容量,仍可能在同一毫秒 burst,造成 PFC pause、ECN 标记、队列积压和 tail amplification。推理 TBT 对短暂停顿比离线训练更敏感。
工程上应分 traffic class 或至少做速率限制与优先级:decode critical collective 最高,首 token 的 KV completion 次之,大块缓存预取可让路,checkpoint/后台迁移最低。优先级必须端到端一致;只在应用队列分级而交换机仍混排,效果有限。
12. 2026 前沿:把更多通信逻辑推入网络
SCIN(2026 预印本)提出 switch-centric in-network all-reduce,并在网络内做 8-bit quantization;摘要报告小/大规模 all-reduce 最高 8.7×/3.8×,TTFT 1.74×、TPOT 1.34× 改善。它代表一种方向:网络不只搬字节,也参与归约和精度转换。
这些数字来自论文设定,部署要核对交换机可编程能力、量化误差、故障恢复和与现有 NCCL/RDMA 栈的兼容性。in-network aggregation 还会把模型精度语义带入网络控制面,验证边界比普通交换更复杂。
13. 具体例子:TP8、EP64 与 PD 分别应放在哪里
- TP8 dense replica:优先放在单 8-GPU NVLink 域,逐层 all-reduce 不过 NIC。
- EP64 MoE group:若横跨 8 个节点,要确保每节点 expert 均衡、hierarchical all-to-all 能聚合 NIC 流量,并测真实 top-k trace。
- 4P+8D:prefill 与 decode 可跨节点池;按每请求 KV bytes 和目标 NIC 队列路由,避免 4 个 P 同时向一个 D incast。
- DP 扩容:把完整 replica 分散到机架/故障域;它无需逐层互联,最适合利用 scale-out 容量。
“TP 留在最强域,DP 跨最远域”是合理起点,不是绝对定律。若一个模型必须 TP16 才能装下,就必须跨越 8-GPU 边界,转而比较 TP16、PP2×TP8、量化或 offload。
14. 可观测性:从 kernel timeline 看到交换机
- GPU:collective kernel duration、SM occupancy、等待依赖、CUDA stream overlap。
- 通信库:每 collective 的 group、bytes、algorithm、protocol、P50/P99。
- NIC:TX/RX、RDMA retry、CQ delay、ECN/CNP、PFC pause、queue depth。
- 交换网络:per-port utilization、buffer watermark、drop/mark、热点路径。
- 应用:TTFT/TBT 与具体 collective/KV transfer trace id 对齐。
只有时间戳可跨层关联,才能判断一次 TBT 尖峰是 GPU straggler、EP 热点、NIC 拥塞还是 router 选错目标。
15. 故障与一致性
collective group 中一个 rank 失联会让其他 rank 等待;PD 传输中断可能留下目标端“已分配但未完成”的 KV 页;cache event 丢失会使 router 误判 locality。生产协议需要 timeout、epoch/version、幂等释放和失败后降级。
KV transfer metadata: request_id, model_epoch, layer_range, block_ids, source_rank, destination_rank, bytes, checksum/version, completion_state 只有 completion_state=COMMITTED 且 epoch 匹配,decode 才能引用 block。
16. 实现与部署清单
- 从硬件发现生成 topology graph,禁止假设相邻 GPU id 必然有 NVLink。
- 按实际 message-size 分布 benchmark all-reduce/all-to-all/P2P,并记录尾延迟。
- 对 TP/EP communicator 预建并复用,避免在线请求路径动态初始化。
- 为通信 kernel 设置可调 SM budget,验证 overlap 后 GEMM 是否真的变快。
- 为 PD KV 设置 per-destination credit,接收端未释放 credit 前不继续灌入。
- 把训练 checkpoint、缓存预取、模型加载纳入同一 NIC 容量模型。
17. 局限与常见误判
18. 最小复现实验
先做 point-to-point、all-reduce、all-to-all 三组 message sweep,再嵌入真实模型。每组至少覆盖 decode 小 batch、prefill 大 batch、EP 非均匀 token count 和 PD burst。
实验矩阵: topology: intra-NVLink / inter-node same rack / cross-rack message: 4KB ... 16GB concurrency: 1, 2, 4, mixed traffic metric: P50/P95/P99 latency, effective GB/s, GPU SM, NIC counters 最后关联:collective trace → model iteration → request TTFT/TBT
19. 一手来源
| 来源 | 本页使用 |
|---|---|
| NVIDIA GB300 NVL72 官方页 | 72 GPU、36 Grace、约 20TB HBM、130TB/s NVLink。 |
| NVIDIA NVL72 参考架构组件 | B300 HBM、scale-out 与 NVSwitch 组件。 |
| NVIDIA H200 官方规格 | HBM、显存带宽与 NVLink 规格。 |
| DeepEP V2 官方仓库 | 2026 EP 通信实现与 benchmark。 |
| NVIDIA Dynamo P/D 设计 | NIXL、异步 KV 传输与分离服务数据流。 |
| MPK, OSDI 2026 | SM-level task graph 与 mega-kernel。 |
| SCIN, 2026 | in-network all-reduce;预印本数字需按论文条件理解。 |