Tensor Parallelism(テンソルパラレリズム)
大規模言語モデルの推論・学習において、単一層のテンソル演算(行列積等)を複数GPU間で分割して並列実行する手法で、単一GPUのメモリに収まらないモデルの高速処理を実現する
Tensor Parallelism(テンソル並列、TP)は、Transformerモデルの各層内の行列演算を複数のGPU間で分割して並列実行する手法である。Megatron-LM(NVIDIA, 2019)で体系化され、2026年現在の大規模LLM推論・学習における標準的な並列化戦略の一つとなっている。Pipeline Parallelism(パイプライン並列、PP)が層単位でモデルを分割するのに対し、Tensor Parallelismは層内のテンソルを列方向・行方向に分割するため、より細粒度な並列化と低レイテンシを実現する。
概要
70B〜405Bパラメータ規模のLLMは、FP16精度でモデル重みだけで140GB〜810GBのメモリを必要とする。単一のNVIDIA H100(80GB VRAM)やA100(80GB VRAM)では到底収まらないため、複数GPUにまたがるモデル分散が必須となる。
Tensor Parallelismでは、Transformerの各層に含まれるAttentionのQKV射影行列やFFN(Feed-Forward Network)の行列を列方向(Column Parallel)と行方向(Row Parallel)に分割する。例えば、TP=4の場合、4096×4096の行列を4つの4096×1024行列に分割し、各GPUが1/4の計算を担当する。各GPU間ではAllReduce通信で部分結果を集約するため、NVLink/NVSwitchなどの高速GPU間通信が性能のボトルネックとなる。
2024年にはNVIDIA H100 NVLink(900GB/s双方向)が標準となり、TP=8までのスケーリングで95%以上の並列効率を達成している。2025年のB200世代ではNVLink 5th Gen(1.8TB/s)によりTP=16も実用的となった。
主な特徴・仕組み
- Column Parallel Linear: 行列W(d×d)を列方向にTP分割。各GPUがW[:, i*d/TP:(i+1)*d/TP] を保持し、入力X全体との行列積を計算。出力を連結(AllGather)して完全な結果を得る
- Row Parallel Linear: 行列Wを行方向にTP分割。入力Xも対応する次元で分割し、各GPUで部分行列積を計算。出力をAllReduceで集約
- Attention Head分割: Multi-Head AttentionのヘッドをTP数で均等分割。TP=4なら64ヘッドを各GPU 16ヘッドずつ担当。GQAモデルではKVヘッド数がTP数の倍数である必要がある
- 通信オーバーヘッド: 各Transformer層で2回のAllReduce通信(Attention後とFFN後)が発生。TP=8、H100 NVLink環境で層あたり約0.5msのオーバーヘッド
- メモリ分散: モデル重み、KVキャッシュ、活性化テンソルが全てTP数で分割され、各GPUのメモリ使用量が1/TPに低減
- Pipeline Parallelismとの組み合わせ: TP×PPのハイブリッド並列化が一般的。TP=4、PP=2で8GPU、TP=8、PP=4で32GPU構成など。TP はノード内(NVLink)、PPはノード間(InfiniBand)に配置するのが通例
- Expert Parallelism: MoE(Mixture-of-Experts)モデルでは、TPに加えてエキスパート単位の並列化(EP)を組み合わせる。DeepSeek-V3(671B MoE)ではTP=8、EP=4が推奨構成
スペック比較表
| 並列化手法 | 分割単位 | 通信パターン | レイテンシ影響 | メモリ分散 | 推奨通信帯域 |
|---|---|---|---|---|---|
| Tensor Parallelism | 層内テンソル | AllReduce(2回/層) | 小(NVLink前提) | 1/TP | NVLink 900GB/s+ |
| Pipeline Parallelism | 層単位 | Point-to-Point | 中(バブル発生) | 1/PP | InfiniBand 400Gb/s+ |
| Data Parallelism | データ | AllReduce(1回/ステップ) | なし(推論では不使用) | 複製 | 任意 |
| Expert Parallelism | エキスパート | AllToAll | 中 | 1/EP | NVLink推奨 |
具体例・対応製品
- Llama 3.1 405B: TP=8で8x H100 80GB構成。各GPUがモデル重みの約50.6GBを保持。NVLink 4th Gen(900GB/s)でAllReduceレイテンシは約0.3ms/層
- Llama 3.1 70B: TP=2で2x A100 80GB構成(各35GB)。PCIe 5.0(128GB/s)でも動作するが、NVLinkと比較してスループットが約30%低下
- DeepSeek-V3 671B MoE: TP=8 + EP=4で32x H100構成。アクティブパラメータ37Bを8GPUで分散、256エキスパートを4グループに分割
- vLLM:
--tensor-parallel-size 4オプションでTP=4を指定。Ray Clusterとの統合でマルチノードTPにも対応 - TensorRT-LLM:
build.py --tp_size 8 --pp_size 2でTP=8、PP=2のハイブリッド並列化を構成。NVIDIA Triton経由でデプロイ
選び方・注意点
- GPU間通信帯域: TPの効果はGPU間通信速度に直結。NVLink(900GB/s+)ならTP=8まで実用的、PCIe 5.0(128GB/s)ではTP=2が限界。InfiniBand越しのノード間TPは非推奨
- TP数の制約: AttentionヘッドがTP数の倍数である必要がある。GQAモデルではKVヘッド数がTP数の倍数であることも必要(例: Llama 3のKVヘッド=8ならTP=1,2,4,8が可能)
- レイテンシ vs スループット: TPを増やすとレイテンシは低下するが、通信オーバーヘッドにより効率は段階的に低下。単一リクエストのレイテンシ最小化にはTP最大化、スループット最大化にはTP×PP×DPのバランス調整が重要
- コスト効率: 8x H100 NVLink構成(DGX H100)は約$30,000/月(クラウド)。TP=4で十分なモデルサイズなら4x H100構成で半額に抑制可能
- 量子化との併用: AWQ/GPTQ 4bit量子化でモデルサイズを1/4に削減し、TP数を減らすことでコスト最適化。70BモデルをTP=1(1x H100)で動作させることも可能
関連用語との違い
Tensor Parallelismは「層内」の行列を分割、Pipeline Parallelismは「層間」でモデルを分割する点が根本的な違い。Data Parallelism(DP)は同一モデルのコピーを複数GPUに配置して異なるデータを処理する手法で、推論よりも学習で主に使用される。Sequence Parallelism(SP)はシーケンス次元を分割する手法で、長シーケンスのLayerNormやDropout演算を並列化する。実践的には TP + PP + SP を組み合わせた3D並列化が大規模モデルの標準構成。
よくある質問(FAQ)
Q1: Tensor Parallelismは何GPUまでスケールしますか? A: NVLink環境ではTP=8(DGX H100/A100の標準構成)が実用上限。NVLink 5th Gen搭載のB200世代ではTP=16まで拡張可能。TP=8超はPipeline Parallelismとの併用を推奨。
Q2: TPとPPのどちらを先に増やすべきですか? A: まずTPを最大化(同一ノード内のGPU数まで)し、それでもメモリ不足ならPPを追加する。TPはレイテンシへの影響が小さく、PPはパイプラインバブルによるオーバーヘッドが発生するため。
Q3: コンシューマGPU(RTX 4090等)でTensor Parallelismは使えますか? A: 技術的には可能だが、NVLink非搭載のためPCIe接続でTP=2程度が現実的。通信ボトルネックでA100比のスループットは50〜70%に留まる。
まとめ
- Tensor Parallelismは層内テンソルを複数GPUに分割し、大規模LLMの推論・学習を可能にする
- NVLink高速通信が前提で、TP=8までが実用的な上限(2026年時点)
- Pipeline Parallelism、Expert Parallelismとの組み合わせで数百〜数千GPUのスケーリングに対応
- モデルサイズ・GPU構成・通信帯域に応じた最適なTP数の選択が性能とコストを左右する