0. 一句话定位
Sequence Parallelism 把长序列在 token 维度切到多卡;Ring Attention 让多卡用「环形传递 K/V 块 + 在线 softmax 累加」算出一个数学上完全等价于全量 attention 的结果,每张卡的激活内存与序列长度无关。
这是突破单卡序列长度天花板的关键手段,让 1M+ Token 的训练/推理成为常规操作。
1. 视野速览
- 常规手段(降本增效基本功):INT8/FP8/INT4 量化、结构化/非结构化剪枝、知识蒸馏、KV Cache 管理(PagedAttention)、continuous batching、混合精度训练(FP16/BF16/FP8)、梯度检查点、并行策略(数据/模型/流水线)、LoRA/QLoRA。
- 前沿手段(2025–2026):稀疏 MoE 与专家并行、MLA 与 KV 压缩、线性注意力、Speculative Decoding、PD 分离、BitNet 1-bit LLM、FP4 QAT、Sequence Parallelism + Ring Attention(本期)。
2. 核心做法:在线 softmax + 环形 K/V 通信
假设 8 卡环,序列按 token 切成 8 段,每段长度 L/N。每张卡持自己的 query Q_i(不动),让 K/V 块沿环流动:
m_i, l_i, o_i = -inf, 0, 0 # 运行时 max / 累加和 / 输出
for step in range(N): # 沿环走 N 步,每步拿到一个 K/V 块
K_block, V_block = recv_from_prev() # 来自上一张卡
send_to_next(my_KV) # 同时把自己的块传给下一张卡
s_ij = Q_i @ K_block^T / sqrt(d) # (L/N, B)
m_new = max(m_i, s_ij.max(-1)) # 更新 running max
p_ij = exp(s_ij - m_new[:, None])
l_new = exp(m_i - m_new) * l_i + p_ij.sum(-1)
o_i = exp(m_i - m_new)[:, None] * o_i + p_ij @ V_block
m_i, l_i = m_new, l_new
O_i = o_i / l_i[:, None] # 归一化,结果与全量 attention 完全一致
符号:Q_i = 第 i 卡本地 query;K_block, V_block = 沿环流动的 K/V 块;m_i, l_i, o_i = 在线 softmax 的运行 max / 累加和 / 部分输出。
3. 环通信结构图
图:Ring Attention 的环通信。序列按 token 切到 8 卡,K/V 块沿环逐步传递,每卡用在线 softmax 把流入的 K/V 块累加起来;走完 N 步,结果与全量 attention 数学等价。
4. 与朴素方案对比
| 方案 | 激活内存 | 能否跑 1M token | 备注 |
|---|---|---|---|
| 朴素(全量 Q×Kᵀ) | O(L²) | ❌ 单卡必爆 | 1M token 单卡显存直接炸 |
| Megatron-LM SP(all-gather) | 临时全量 KV | ⚠️ 几万 token | attention 内每卡仍要临时全量 KV |
| Ring Attention(本方案) | 与 L 无关 | ✅ 8 卡 1M,100 卡 100M | 通信被 matmul 掩盖,墙钟几乎不增 |
通信开销被 matmul 掩盖(每 hop 通信正好盖住上一次 matmul),所以墙钟延迟几乎不增加。
5. 实测收益与代表工作
- Liu et al., UC Berkeley, ICLR 2024:在 64 卡上把序列长度推到 100M token,数学上与单卡 full attention 完全一致。
- DeepSpeed Ulysses(Microsoft, 2023):用 all-to-all 替代环形通信,在高速互联集群上 2.5× faster。
- OpenRLHF / ring-flash-attention:生产级实现,
--ds.ring_attn_size 8即可在 8 卡上把 1M context 训练跑起来。 - DeepSeek V4 / Qwen3.8-Max 1M context:都依赖 Ring Attention 或等价的长上下文分布式方案。
- Zig-Zag Ring Attention:把 GPU 顺序切块换成交错分配
[0,4,8…]、[1,5,9…],解决因果 mask 下「后卡等前卡」的负载不均,GPU 利用率近 100%。
6. 具身智能关联
- 视频世界模型(V-JEPA 2 / Genie)需要 1M+ token 的视频片段输入,Ring Attention 是 V-JEPA 2 多机训练时的标配;
- 机器人 VLA 长操作日志 + 视频历史规划场景,SP+Ring 让「全操作日志一起算」成为可能;
- 与 HCA/CSA 协同——HCA 把 KV 再压一档,让 Ring Attention 在环里传的是压缩后的「目录块」,1M token → 8000 目录块的环通信,进一步把带宽压力降到 1/128(详见本系列 sys1 的 NUMA 链路与 fa4 的 HCA)。
7. 学习建议 / 常见坑
- 必须用在线 softmax + running max,否则累计误差会让结果偏;
- 因果 mask 下用 Zig-Zag 切块,否则后卡空转;
- 通信带宽是真正瓶颈——NVLink / IB 不可省(普通以太网一旦通信时间 > 计算时间,「边算边传」就退化成「等数据」);
- 与张量并行混用时,TP×SP 通信方向要正交,否则 all-gather 和环通信会撞车。
💬 留言
NaphJohn/LLM-blog尚未启用 Discussions:请在 GitHub 仓库 Settings → General → Features 勾选 Discussions 后刷新本页,评论区即自动显示。