什么是 张量并行(Tensor Parallelism)?

更新于

张量并行(Tensor Parallelism)是一种层内模型并行策略:把一个 Tensor Operation 及其参数切分到多个加速器,再通过 Collective Communication 合并局部结果。

快速了解

创建时间2019 年由 Megatron-LM 在 Transformer 中推广
规范文档官方规范

工作原理

组合列切分与行切分

对 Y = XW,Column-wise Parallelism 按 Output Feature 切分 W,每个 Rank 从复制输入计算不同输出切片;Row-wise Parallelism 按 Input Feature 切分 W,消费匹配的输入切片,再合并 Partial Sum。

[Megatron-LM](https://arxiv.org/abs/1909.08053)把 Column-wise 与 Row-wise Projection 配对,使中间 Shard 留在本地,仅在选定边界通信。Attention Head、KV Head、Hidden 与 Vocabulary Dimension 必须满足 Runtime 的整除和布局约束。

把集合通信放回拓扑

AllReduce、AllGather 与 ReduceScatter 会在模型内部反复搬运 Activation,而不是每个请求只发生一次。其成本由 Payload Shape、TP Degree、Collective Algorithm、Link Bandwidth、Latency、Contention 与 Rank Placement 决定。

高速节点内 Fabric 有利于 TP;跨慢网络则可能抵消计算收益。当前 [vLLM Scaling 指南](https://docs.vllm.ai/en/stable/serving/parallelism_scaling.html)建议模型能放入单节点时采用节点内 TP,并指出缺少快速 GPU Interconnect 的节点可能更适合 Pipeline Parallelism。

选择最小有效 Degree

模型及所需 KV Capacity 能放入单个 Accelerator 时,先以无 TP 为基线;只把 TP 增加到满足 Memory、Head Partition 或 Latency 目标的最小值,额外请求吞吐优先通过 Data Parallel Replica 扩展。

比较时固定 Model、Precision、Context Length、Batch、Arrival Distribution 与 Cache State,并记录 Per-rank Weight/KV Memory、Collective Byte/Time、Imbalance、TTFT、TPOT、Throughput、Goodput、Error 与 Output Parity。

主要特点

  • 在参与计算的模型层内部切分矩阵与算子
  • 降低每个 Rank 的权重占用,同时协同处理同一请求
  • 依赖 AllReduce、AllGather 或 ReduceScatter 等集合通信
  • 要求模型维度与 Attention Head 布局兼容 TP Degree
  • 把通信和 Straggler 延迟放到 Forward Pass 关键路径
  • 可以与 Data、Pipeline、Sequence、Context 和 Expert Parallelism 组合

常见用途

  1. 服务或训练单个加速器无法容纳其 Layer 的模型
  2. 在通信足够快时降低单请求计算时间
  3. 把 Dense Transformer Shard 放在高带宽 GPU 单节点内
  4. 组合节点内 TP、跨节点 PP 与 Replica 级 DP
  5. 选择 TP Degree 前评估模型 Fit、Collective Cost 与 SLO

示例

loading...
Loading code...

常见问题

张量并行与数据并行有什么区别?

张量并行拆分 Layer,让多个 Rank 协同处理一个请求;数据并行通常让每个 Replica 或 Model-parallel Group 拥有完整模型,再向不同 Replica 分发请求或 Batch Shard。

张量并行与流水线并行有什么区别?

张量并行拆分 Layer 内部算子,流水线并行则把不同 Layer Range 分给不同 Stage。TP 频繁执行 Collective;PP 在 Stage Boundary 传输 Activation,并可能产生 Pipeline Bubble。

更大的 TP Degree 一定能降低延迟吗?

不一定。更多 Rank 会减少本地矩阵和权重工作,却增加 Collective Participant、同步和拓扑敏感度。通信成为主导后,增加 GPU 可能不再降低延迟,甚至更慢。

为什么张量并行通常放在单节点内?

Collective 会在 Forward Pass 内反复发生,因此依赖低延迟、高带宽 GPU Interconnect。跨节点也能运行,但必须显式规划 Placement、RDMA 并按工作负载 Benchmark,不能假设线性扩展。

推理服务应如何选择 TP Degree?

选择能够容纳权重、KV Cache、Runtime Headroom 或达到实测延迟目标的最小受支持 Degree。验证 Dimension Divisibility、Per-rank Memory、Collective Time、TTFT、TPOT、Throughput、Goodput 与 Output Parity。

相关术语

相关文章