跳到主要内容

总览

本章节范围:序列并行 (Sequence Parallelism, SP) 的命名谱系、Megatron-SP 的精确机制(f/g 算子、激活显存公式)与 AG/RS×GEMM 的 overlap 内核实现。 目标读者:评估 TP+SP 部署配置、为序列并行通信建模的工程师。

范围与边界 (Scope)

  • 包含:
    • 「sequence parallelism」一词的命名谱系与归类(本文)
    • SP 与 TP / CP 的本质区别(本文)
    • SP 在推理场景的剩余价值与框架现状(本文)
    • Megatron-SP 机制:f/g 共轭算子、通信插入位置、激活显存公式、backward 额外通信、Dropout RNG → 4.2 Megatron-SP 机制
    • AG/RS 与 GEMM 的 overlap 内核:TE Userbuffers / ByteDance Flux / PyTorch async-TP → 4.3 通信 overlap 实现
  • 不包含:

名词定义

本章节所有子文档默认这些名词已定义,各子文档只补充本文新引入的名词。

名词定义
Megatron-SPKorthikanti et al. 2022 提出的序列并行:在 TP 组内把 AllReduce 拆为 AllGather + ReduceScatter,将 LayerNorm / Dropout 区段的激活沿序列维度分片;必须与 TP 联用,并行度等于 TP 度。本章及本项目 docs 中「SP」默认指它
RSA (Ring Self-Attention)Colossal-AI 2021 提出的序列并行:K/V 在卡间环形传递完成 attention,是 Ring Attention / CP 的前身
TP-sp / SP-Ulysses / SP-RingUSP 论文对三类「序列并行」的统一命名:TP-sp = Megatron-SP(依附 TP);SP-Ulysses = all-to-all 重排 head;SP-Ring = K/V 环传。后两类可独立使用
SP regiontransformer 层内激活按序列维度分片的区段(LayerNorm / Dropout / residual add 所在),张量 shape 为 $[b, s/t, h]$
TP region激活为完整序列、按 TP 方式(head / 列 / 行)切分的区段(attention / MLP 的 GEMM 所在)
Selective activation recomputation只重算 attention 内 $O(as^2)$ 类激活、保留 GEMM 输入激活的重计算策略,与 SP 组合使用
$t$TP 并行度(= SP 并行度),沿用 Megatron 论文符号

@tbl-par-spov-glossary 序列并行章节共享名词定义

「sequence parallelism」为什么有四种含义?

至少四个机制完全不同的工作都自称 sequence parallelism,NVIDIA 又把其中 ring 类另行命名为 context parallelism,造成今天的术语分裂[1]

时间工作自称机制一句话今天归类
2021-05Colossal-AI (RSA)[2]Sequence ParallelismK/V 环形传递,序列切到多卡做 attention机制属 CP,历史名 SP
2022-05Megatron-SP[3]Sequence ParallelismTP 组内 AG+RS 分片 LayerNorm/Dropout 激活SP(NVIDIA 官方保留此名)
2023-09DeepSpeed-Ulysses[4]Sequence Parallelismall-to-all 重排 head/seq,每卡算完整 headCP 实现(部分语境仍称 SP)
2023-10Ring Attention[5](未用 SP/CP 标签)blockwise K/V 环传 + online softmaxCP(NVIDIA 将其归入 CP)
2024-04LASP[6]Sequence Parallelism线性 attention 传固定状态矩阵线性注意力 SP,见 CP 章
2024-05USP[1]Unified Sequence Parallelism统一 Ulysses + Ring 为混合框架CP 混合(USP 自称 SP 大类)

@tbl-par-spov-timeline 「sequence parallelism」命名时间线

命名分裂的过程分三步:

  • 2021 年词源在 ring 类:Colossal-AI 最早以 sequence parallelism 为题,机制是切 attention 的 RSA——按今天的分类是 CP。
  • 2022 年 Megatron 用同名指另一件事:Korthikanti et al. 把「TP 组内 AG+RS 激活分片」也叫 sequence parallelism,机制与 RSA 无关。
  • 2023-2024 年 NVIDIA 锁定命名:NeMo / Megatron-Core 把 sequence parallelism 留给 Korthikanti 方案(开关 sequence_parallel),把覆盖全部层的 ring 类序列切分另起名 context parallelism(开关 context_parallel_size),两个开关独立可叠加[7]。推理框架(vLLM / TensorRT-LLM)跟随这套命名。学术界(USP / LASP / DeepSpeed)则继续把所有序列维切分统称 SP。

本项目 docs 采用 NVIDIA 生态命名:SP = Megatron-SP(本章),ring / Ulysses / 线性注意力序列并行 = CP(07-上下文并行)。读论文时先核对作者属于哪个命名体系,再对照本表归类。

SP 与 TP / CP 的本质区别是什么?

SP 是 TP 的伴生优化,不是独立并行维度:它不引入新的卡数,不切 attention 计算,只改变 TP 组内非 GEMM 区段的激活布局与通信原语[3]

维度TPMegatron-SPCP
是否独立并行维度否(并行度被绑死 = TP 度,tensor_model_parallel_size = 1 时 Megatron-LM 直接报错)是(与 TP/DP/EP 正交)
切分对象权重(head / 列 / 行)LayerNorm/Dropout 区段的激活(序列维)attention 的 K/V 与全部层激活(序列维)
attention 计算按 head 并行,每卡看完整序列不变(仍是 TP 的 head 并行,AG 后完整序列)被切分:每卡只算 $S/N_{\text{CP}}$ 个 token 的 Q
关键通信AllReduceAllGather + ReduceScatterK/V 环传 (Ring) 或 all-to-all (Ulysses)
解决的问题单卡装不下权重TP 激活冗余 + AllReduce 不可 overlap单卡装不下长序列 activation / KV cache
增加总卡数

@tbl-par-spov-vs-tp-cp SP 与 TP / CP 的本质区别

「SP 和 CP 都切序列 token」的表述容易误导成同类技术的两种实现,实际差异在 attention:SP 在进 attention 前用 AllGather 恢复完整序列,attention 本身还是 TP 的 head 并行;CP 让每卡只持有序列的一段,attention 必须跨卡解决 Q 对远端 K/V 的依赖。机制细节见 4.2 Megatron-SP 机制 与 CP 章 7.2 Ring Attention

SP 在推理里还剩什么价值?

训练侧 SP 的收益在推理 prefill 只剩激活分片与 overlap 两项的残余,decode 阶段完全退化[8]

训练侧收益推理 prefill推理 decode
Dropout mask 分片存储无(推理无 Dropout)
反向传播激活分片存储无(推理无反向)
LayerNorm 区段激活分片保留(但激活占总显存比例远低于训练)无意义($s=1$ 无可切分)
AG+RS 可与 GEMM overlap保留(长 prefill 有收益)反而更慢(消息太小,拆开多付启动开销)[9]

@tbl-par-spov-inference SP 收益在推理两阶段的退化

decode 每步只处理 1 个新 token,序列维度无可切分;TokenWeave 实测推理 generation 阶段把 AllReduce 拆成 RS+AG 做 overlap 比直接 AllReduce 更慢[9]。推理框架对 TP 通信的优化走了另一条路——把 AllReduce 本身做快(NVLS multicast 的 MultiShot AllReduce,约 3× 于 ring 实现)或与 residual+LayerNorm 融合(reduce_fusion),而不是 SP 式激活切分[10]

框架Megatron-SP 式 AG+RS状态备注
vLLMsequence_parallelism torch.compile pass(AllReduce → RS+AG,AG 延迟到 LayerNorm 后)已实现,默认关闭dynamic shape 兼容问题,等 PyTorch 2.9 后重新启用[11]
TensorRT-LLM无显式 SP 开关走 reduce_fusion + MultiShot AllReduce 路线[10]
SGLangTP-SP 支持 (PR #12820)WIP(2026 Q1 roadmap)未发布[12]

@tbl-par-spov-frameworks 推理框架对 Megatron-SP 的支持现状(2026-06)

长上下文 (128K+) prefill 的序列切分需求由 CP 承担而不是 SP:CP 直接分摊 KV cache 与全层激活、支持变长序列、decode 阶段有 pass-Q 形态可用,Meta 的百万 token 推理实践与 vLLM / SGLang 的活跃开发方向都在 CP[13]

子文档索引 (Index)

  • 4.2 Megatron-SP 机制 — f/g 共轭算子、通信插入位置、激活显存三档公式、backward 额外 AllGather、Dropout RNG、工程约束
  • 4.3 通信 overlap 实现 — AG/RS×GEMM 的内核级 overlap:TE Userbuffers(bulk / pipelined)、ByteDance Flux(tile 级融合)、PyTorch async-TP(SymmetricMemory)、代价与适用边界

参考资料

  1. Fang & Zhao, USP: A Unified Sequence Parallelism Approach for Long Context Generative AI, arXiv:2405.07719, 2024. https://arxiv.org/abs/2405.07719
  2. Li et al., Sequence Parallelism: Long Sequence Training from System Perspective, arXiv:2105.13120, 2021. https://arxiv.org/abs/2105.13120
  3. Korthikanti et al., Reducing Activation Recomputation in Large Transformer Models, arXiv:2205.05198, 2022. https://arxiv.org/abs/2205.05198
  4. Jacobs et al., DeepSpeed Ulysses: System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models, arXiv:2309.14509, 2023. https://arxiv.org/abs/2309.14509
  5. Liu et al., Ring Attention with Blockwise Transformers for Near-Infinite Context, arXiv:2310.01889, 2023. https://arxiv.org/abs/2310.01889
  6. Sun et al., Linear Attention Sequence Parallelism, arXiv:2404.02882, 2024. https://arxiv.org/abs/2404.02882
  7. NVIDIA NeMo Framework, Parallelisms 文档(区分 sequence_parallelcontext_parallel_size 两个独立开关). https://docs.nvidia.com/nemo-framework/user-guide/25.02/nemotoolkit/features/parallelisms.html
  8. Insu Jang, Tensor Parallelism and Sequence Parallelism: Detailed Analysis, 2024. https://insujang.github.io/2024-01-11/tensor-parallelism-and-sequence-parallelism-detailed-analysis/
  9. TokenWeave: Efficient Compute-Communication Overlap for Distributed LLM Inference, arXiv:2505.11329, 2025. https://arxiv.org/abs/2505.11329
  10. NVIDIA, 3x Faster AllReduce with NVSwitch and TensorRT-LLM MultiShot, 2024. https://developer.nvidia.com/blog/3x-faster-allreduce-with-nvswitch-and-tensorrt-llm-multishot/
  11. vLLM issue #25277, Sequence Parallelism and Async TP disabled by default. https://github.com/vllm-project/vllm/issues/25277
  12. SGLang, Development Roadmap 2026 Q1, issue #12780. https://github.com/sgl-project/sglang/issues/12780
  13. Meta, Context Parallelism for Scalable Million-Token Inference, arXiv:2411.01783, 2024. https://arxiv.org/abs/2411.01783