3行でいうと
- GPUの間の通信は、1台の中(NVLinkなど)と、台と台の間(InfiniBandなど)で、道の太さが大きく違います。Megatron-LMの論文は、頻繁に通信するテンソル並列は1台の中に収め、台をまたぐ分割はパイプライン並列に任せる、という指針を示しています。
- 推論でも同じ考え方です。vLLMの文書は、台をまたぐテンソル並列には高速なネットワーク(できればInfiniBand)が必要で、NVLinkのないGPUではパイプライン並列のほうがよい場合がある、と書いています。
- NVIDIAのNVLinkのページには、世代別のGPUあたりの帯域(900、1,800、3,000 GB/s)が載っています。ただし数値は暫定と明記され、ベンダー自身の資料です。性能の数字は、実際の負荷での測定と合わせて見る必要があります。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書と論文を読んでまとめたもので、実際に使って確かめた記録ではありません。数字は2026年10月16日に確認しました。製品や仕様は変わることがあります。
先に結論
- 大きなモデルをGPU何枚かで分けると、計算の途中で「全員の結果を合算して全員に配る」といった通信が、層ごとに起きます。計算は速くなっても、通信が遅いと待ち時間が増えます。
- 通信の道は2階建てです。1台の中は専用の高速な道(NVLink)、台と台の間はネットワーク(InfiniBandなど)です。公式の資料も論文も、前者のほうがずっと速い前提で、分け方を決めています。
- 実務で分かれ道になるのは、「分け方(テンソル並列、パイプライン並列、データ並列)を、道の太さに合わせて選ぶ」ことです。道が細いところに頻繁な通信を載せないのが基本方針です。
前提:なぜGPUの間で通信するのか
大きなモデルは、重みの量だけでGPUのメモリを超えることがあります。そこで、1つのモデルを複数のGPUに分けます。分け方には、おもに次の種類があります(用語は公式文書の呼び方です)。
- テンソル並列:1つの層の中の計算を、複数のGPUで分け持ちます。層ごとに、結果を合わせる通信が必要です。
- パイプライン並列:層を前半・後半のように順に分けて、別のGPUに置きます。受け渡しの通信は、層の境目だけです。
- データ並列:モデルを丸ごと複製して、別々のデータを処理します。学習では、各GPUの結果をあとで合わせる通信が必要です(論文では、これもall-reduceで行われます)。
- エキスパート並列:専門家(エキスパート)を複数持つ種類のモデルで、エキスパートをGPUに分けて置きます。
GPUのメモリの考え方は、別の記事で扱っています。この記事では、分けたあとの「GPU間の通信」に絞ります。
通信の基本:集団通信という「まとめてやる」型
NVIDIAの集団通信ライブラリNCCLの文書によると、NCCLはGPU間の通信のためのライブラリで、機械の構成(トポロジー)を認識します。つなぎ方は、NVLink、PCIe、InfiniBand(Verbs経由)、IPソケットに対応する、とあります。
通信の型は、いくつか決まっています。文書の定義を言い換えると、次のとおりです。
| 型 | 何が起きるか |
|---|---|
| AllReduce | 全員の値を要素ごとに合算し、その結果を全員が持つ |
| AllGather | 全員の断片を集めて、全員が全体を持つ(ランク順に並ぶ) |
| ReduceScatter | 合算して等分し、各自が自分の担当の1ブロックだけ持つ |
| Broadcast | 1人の持つ値を全員に配る |
| Reduce | 合算の結果を、1人(ルート)だけが持つ |
AllReduceは、分散学習やテンソル並列で何度も出てくる型です。この型が速いか遅いかは、GPUをつなぐ道の太さで決まります。
道の種類:ノード内とノード間
ここでは、1台のサーバー(ノード)の中と、ノードをつなぐ部分に分けます。
1台の中:NVLink
NVIDIAのNVLinkのページによると、NVLinkはGPUどうしをつなぐ道で、GPUあたりの帯域は世代で増えています。数値はページが暫定で変わりうると書いたものです。
| 世代 | アーキテクチャ | GPUあたりの帯域 |
|---|---|---|
| 第4世代 | Hopper | 900 GB/s |
| 第5世代 | Blackwell | 1,800 GB/s |
| 第6世代 | Vera Rubin | 3,000 GB/s(3 TB/s) |
NVLink Switchを使うと、ラック全体のGPUが互いに全対全で通信できる、とあります。Vera Rubin NVL72は72個のGPUを全対全でつなぎます。ページは、第6世代のNVLinkの帯域がPCIe Gen6の12倍だと述べていますが、PCIeの絶対値は載っていません。
台と台の間:InfiniBand
NVIDIAのInfiniBandのページは、NVIDIA Quantum InfiniBandを、ネットワークの中でも計算(in-network computing)できるプラットフォームと説明しています。SHARPという仕組みで集団通信の演算をスイッチ側に任せ、ネットワークを流れるデータ量を減らす、とあります。適応型ルーティングと輻輳制御も品質の機能として挙がっています。速度については、本文に数字がなく、ページの短い説明(メタ情報)に「最大200Gb/s」とあるのみで、世代別(NDRなど)の数字は、読んだページには載っていませんでした。
具体的な構成の例は、Megatron-LMの論文にあります。論文の実験機(Selene)では、1ノードにA100というGPUが8枚あり、NVLinkとNVSwitchで結ばれています。ノード間には、アプリケーション用に200 Gbpsのカード8枚(と、保存用に2枚)が付いています。
単位に注意が要ります。NVLinkの「GB/s」は1秒あたりのバイト数、論文の「Gbps」は1秒あたりのビット数です。8ビットが1バイトなので、200 Gbpsは1枚で25 GB/sになります(単純な換算で、僕らの計算です)。世代の違う機器の数字を直接は比べられませんが、「1台の中のほうが太い」という方向は、論文も述べています。
学習で効く:Megatron-LMの論文が示す分け方
論文(2021年)は、テンソル、パイプライン、データの3つの並列化を組み合わせて、3,072枚のGPUで1兆パラメータのモデルを学習した報告です。GPUあたり理論ピークの52%、全体で502 petaFLOP/sという数字が書かれています。
通信量の点では、次の指摘があります。
- テンソル並列では、1層あたりの順方向でall-reduceが2回、逆方向で2回、合計4回あります。これは1マイクロバッチ・1層あたりの回数です。
- 1台の中のNVLinkはノード間より速いため、テンソル並列をノードをまたいで使うのは非現実的になりうる、と書かれています。
この指摘から、論文は3つの指針を述べています。
- テンソル並列は、1台のGPU数までにとどめ、それより先はパイプライン並列で増やす。
- モデルがGPUのメモリに収まるよう、テンソル並列とパイプライン並列の合計を決め、さらに増やすときはデータ並列を使う。
- マイクロバッチの大きさの最適値は、条件で変わる(ある例では4で、選び方次第で最大15%の差)。
さらに、ノード間の通信を減らす工夫として、テンソルの断片を別々のInfiniBandカードで送り、受け取る側でNVLinkを使って組み立てる方法が紹介されています。
推論で効く:vLLMの文書の読み方
推論での分け方について、vLLMの「Parallelism and Scaling」の文書は、選び方を次のように書いています。
- モデルが1枚に載るなら、分散しない。
- 1台に収まるなら、その台のGPU数でテンソル並列にする。
- 複数台が必要なら、1台のGPU数でテンソル並列、台数でパイプライン並列にする。
- 台をまたいで効率よくテンソル並列を使うには、高速なネットワーク、できればInfiniBandが必要。
- NVLinkのないGPU(文書の例はL40S)では、テンソル並列よりパイプライン並列のほうが、処理量と通信の負担の点でよい場合がある。
台をまたぐ設定では、NCCLが実際にどの通信路を選んだかを確かめるよう、勧められています。NCCL_DEBUG=TRACEでログを出し、InfiniBand上のGPUDirect RDMA(ネットワークカードがGPUのメモリに直接アクセスする方式)の経路が選ばれていれば効率的で、生のソケットに落ちていれば、台をまたぐテンソル並列には非効率だ、とあります。GPUDirect RDMAには、IPC_LOCKの権限と、十分な大きさの共有メモリ(/dev/shm)が要ります。
エキスパートを持つ種類のモデルでは、別の事情があります。vLLMのデータ並列の文書によると、attentionの層はデータ並列、エキスパートの層はエキスパート並列かテンソル並列にします。エキスパートの層は、毎回の順方向で全ランクが同期し、依頼の少ないランクも空の計算を回し続けます。帯域や遅延の具体的な仕様は、この文書には書かれていません。
見立てです。テンソル並列の通信は、層ごとに起きる構造なので、推論では生成する1トークンごとに通信の待ち時間を払うことになると思います。このため、推論の応答の速さは、計算の速さだけでなく、GPU間の通信の遅延にも左右されると考えます。ただし、これはvLLMの文書に書かれていることではなく、論文の構造からの僕らの推測です。
NVIDIAの技術ブログは、推論の性能を「電力あたりの処理量」と遅延の関係の曲線で示し、スイッチなしの4GPUの網より、8GPUのNVLink Switchのほうが全GPU対で同じ帯域になり、有利だと述べています。72GPUの領域を最も良い構成としていますが、これはベンダー自身の主張で、倍率などの数字は示されていません。
NVLink・スイッチ・集団通信の数字(公式ページの記載)
NVLinkのページ(2026年10月16日に読んだ時点。ページは暫定値と明記)
| 世代 | GPUあたりの帯域 | GPUあたりの最大リンク数 | スイッチの合計帯域 |
|---|---|---|---|
| 第4世代(Hopper) | 900 GB/s | 18 | 7.2 TB/s(8GPUの領域) |
| 第5世代(Blackwell) | 1,800 GB/s | 18 | 130 TB/s(NVL72) |
| 第6世代(Vera Rubin) | 3,000 GB/s | 36 | 216 TB/s(NVL72) |
NVL72は、8GPUの1台の9倍のGPU数をつなぎます。ページの本文には「3 TB/sの双方向(bidirectional)」という書き方が1か所あります。ただし、仕様表の各世代の値やスイッチの帯域には方向の注記がなく、表の数字が同じ意味かは確認できていません。
NVIDIAの技術ブログ
NVLinkの初登場は2016年、NVLink Switchの8GPU全対全は300 GB/s(2018年)、第5世代の72GPU全対全は1,800 GB/s、72GPUの領域の合計は130 TB/sで、初代の800倍とされています。
Megatron-LMの論文(実測値)
3,072GPUの1兆パラメータの学習で、パイプラインの点対点の通信は実効の二分帯域892 GB/s、データ並列のall-reduceは12.9 TB/sだったと報告されています。A100の16ビットのピークは312 teraFLOP/sです。ノードを結ぶ網は、3層のファットツリーで、スイッチは850台でした。
1層あたりの通信量
論文は、テンソル並列で1デバイスが1マイクロバッチ・1層あたりに動かす値の量を、約 8·b·s·h·(t−1)/t と式で示しています(bはマイクロバッチの大きさ、sは系列の長さ、hは隠れ層の幅、tはテンソル並列の数)。
選び方・判断の基準
見立てです。ここまでの資料から、次のように考えます。
- まず1台に収める。 台をまたぐと、通信の道が細くなる階層が増えます。モデルが1台のGPUの合計メモリに収まるなら、台をまたがない構成が基本です(vLLMの文書も、収まるなら分散しないと書いています)。
- テンソル並列は、NVLinkでつながった範囲に。 頻繁な通信は太い道に載せ、細い道には通信の少ないパイプライン並列を置く、という論文の考え方に沿います。
- NVLinkがないGPUでは、通信の少ない分け方を。 vLLMの文書がPCIe接続のGPUの例で示す方向です。
- 台をまたぐなら、通信路を必ず確かめる。 InfiniBandを積んでいても、設定が足りず、ソケットに落ちている場合があります。ログで通信路を確認します。
- カタログの数字だけで決めない。 帯域の数値は理論上の値です。実際の速さは、分け方、バッチの大きさ、モデルで変わります。自分の負荷で測ります。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。内容は公式ページ、公式文書、論文の記載です。
- NVLinkのページの数値は、ページ自身が暫定で変わりうると書いています。第6世代(Vera Rubin)の数字は、ページの記載をそのまま書いたもので、実機の確認ではありません。
- InfiniBandの世代別の速度(NDRなど)は、読んだページに載っていませんでした。NCCLの対応一覧にEthernetの名前はなく、IPソケットが該当するかもしれませんが、確認できていません。
- Megatron-LMの論文は2021年のもので、実験機の世代(A100)は古くなっています。考え方(通信の多い分け方は太い道に置く)が、今の機器にも当てはまるか、数字がどうなるかは、論文からは分かりません。
- DGX H100の仕様ページと、PyTorchの分散学習の文書は、本文が取れず、読めませんでした。
- NVIDIAの技術ブログは、ベンダー自身の主張です。第三者による比較ではありません。
- vLLMの文書は、公式サイトの本文が取れなかったため、公式リポジトリ(GitHub)のmainブランチの元ファイルを読みました。安定版と違う可能性があります。vLLMの文書は、クラスタの通信が暗号化されていないので、信頼できない相手が届かない私的なネットワークに置くよう注意しています。
- 取得の仕組みはページを要約して返すため、細部を取りこぼしている可能性があります。
- 推論の通信の頻度に関する部分は、僕らの推測です。
出典
- NVLink(NVIDIA、10月16日確認)
- Scaling AI Inference Performance and Flexibility with NVIDIA NVLink and NVLink Fusion(NVIDIA技術ブログ、10月16日確認)
- InfiniBand(NVIDIA、10月16日確認)
- Overview(NCCL User Guide、NVIDIA、10月16日確認)
- Collective Operations(NCCL User Guide、NVIDIA、10月16日確認)
- Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM(論文、arXiv、10月16日確認)
- Parallelism and Scaling(vLLM docs、vLLMプロジェクト、10月16日確認)
- Data Parallel Deployment(vLLM docs、vLLMプロジェクト、10月16日確認)
更新履歴
- 2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
