Lesson 2 — 最適化テクニック:なぜ100倍速くなるのか

推論 2026-02-27 軸: 技術 / 構造

H100 から GB300 NVL72 への世代交代は「ハードウェアの進化」だけではない。4つのソフトウェア最適化テクニックを積み重ねることで、同じモデルの推論性能が100倍に跳ね上がる。その仕組みを図解で理解する。

1. Disaggregated Prefill — Prefill と Decode を分離する

問題: 同居すると互いに邪魔する

Lesson 8 で学んだように、Prefillは計算集中型、Decodeはメモリ帯域集中型。同じGPUで両方を動かすと、Prefillの大量の計算がDecodeのトークン生成を止めてしまう(干渉問題)。ChatGPTで「一瞬止まる」体験の原因の1つがこれ。

従来: PrefillとDecodeが同居(Aggregated)
P+D
P+D
P+D
P+D
P+D
P+D
P+D
P+D
⚠️ Prefillの計算がDecodeを止める → ユーザー体感がガタガタ
改善: Prefill と Decode を別プールに分離(Disaggregated)
Prefill Pool
P
P
P
P
計算に特化

KV Cache
転送

Decode Pool
D
D
D
D
メモリ帯域に特化
Prefill専用
Decode専用

📐 Disaggregatedのコスト

  • PrefillプールからDecodeプールへKV Cacheを転送する必要がある
  • DeepSeek R1(8192トークン入力・FP8): 約 500MB の転送
  • RDMA(InfiniBand / RoCE)で高速転送。NVIDIAはNIXL、AMDはMoRIというライブラリを開発
  • 転送コストを上回るだけの性能向上があるため、ほぼ全ての運用規模でDisagg有利

2. Wide Expert Parallelism(wideEP)— エキスパートを広く分散する

前提: MoE(Mixture of Experts)とは

DeepSeek R1 は671Bパラメータのモデルだが、1回の推論で使うのは全体の一部(37B)だけ。256個の「エキスパート(専門家)」のうち、各トークンに対して最適な8個だけを選んで使う仕組みが MoE

従来 Narrow EP(EP8 × 8独立)

8GPU × 8独立インスタンス = 64GPU

各GPU: 32 experts を保持

→ 各トークンが使うのは8個だけ。残り24個は「冷たい重み」= HBMの75%が無駄

改善 Wide EP(EP64)

64GPUで1つの大きなプールを形成

各GPU: 4 experts だけ保持

→ HBMの大部分がKV Cacheに使える = 同時ユーザー数UP

Narrow EP: GPU1台あたり32エキスパート(75%は休眠)
GPU #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
🟩 使用中 ⬜ 休眠中 — メモリの大半が「待機中の重み」で埋まる
Wide EP: GPU1台あたり4エキスパート(全部アクティブ)
GPU #1
1
2
3
4
GPU #2
5
6
7
8
GPU #3
9
10
11
12
…GPU #64
253
254
255
256
✅ 全エキスパートがアクティブ。空いたHBMはKV Cacheに使える

📐 wideEPの3つの恩恵

  • HBM効率 ↑ — エキスパートの重みが減った分、KV Cacheに使える → バッチサイズ(同時ユーザー)増加
  • スループット ↑ — 64 DPランクから各エキスパートにトークンが集中 → 演算密度が8倍に上昇
  • 帯域幅 ↑ — 64GPUが同時にメモリ読み出し → 合計帯域幅が8倍

代償: 通信コスト

wideEPでは各トークンが正しいエキスパートのいるGPUに「ルーティング」される必要がある(All-to-All通信)。NVLink の帯域が大きい NVL72 ほど wideEP が効きやすい。これが GB200 NVL72 の強みの源泉。

3. FP4 vs FP8 — 数値精度と速度のトレードオフ

数値精度を下げると速くなる理由

モデルの重みとActivation を FP32(32ビット)→ FP8(8ビット)→ FP4(4ビット)に量子化すると:

  • メモリ使用量が半減〜1/8に → KV Cacheに使えるメモリが増える
  • メモリ読み出し量が半減〜1/8に → Decodeのボトルネックが緩和
  • 演算スループット倍増 → 低精度専用の演算ユニットが使える

FP8(8ビット浮動小数点)

精度と速度のバランスが良い。NVIDIA / AMD 両方で安定動作。

InferenceXベンチマーク: AMD MI355X と NVIDIA B200 がほぼ互角

FP4(4ビット浮動小数点)

FP8の2倍速い。ただしハードウェア/ソフトウェア対応が必要。

InferenceXベンチマーク: NVIDIAが圧倒的に有利(AMDはFP4の最適化が未成熟)

投資家視点: FP4がNVIDIAの堀を深くする

FP8では AMD と NVIDIA の差は小さい。しかし FP4 + disagg + wideEP を組み合わせると、NVIDIA は性能が跳ね上がるのに対し、AMD では最適化が「組み合わさらない」(composability 問題)。ソフトウェアエコシステムの差がハードウェアの差以上に効いている。

4. MTP(Multi-Token Prediction)— 一度に複数トークンを予測する

通常のDecode: 1ステップ = 1トークン

Decodeフェーズでは、毎ステップでモデル全体の重みをメモリから読み出す。計算量は少ないのにデータ移動が膨大 = GPUの演算コアが遊んでいる。この「余った計算力」を活用するのがMTP。

通常Decode: 5トークン = 5ステップ
Step 1: AI
Step 2: 半導体
Step 3:
Step 4: 成長
Step 5: する
→ 5ステップで5トークン。毎回モデル全体をメモリから読み出す。
MTP: 2ステップで5トークン(3トークンを推測)
Step 1: AI 半導体 ← 副予測ヘッドが推測
検証: AI 半導体 ✓ 3つとも正解 → 一括確定
Step 2: 成長 する だろう ← 3つ目は不採用
検証: 成長 する ✓ 2つ確定(3つ目は再生成)
→ 2ステップで5トークン。メモリ読み出し回数が60%減 → 速度UP
MTPなし(DeepSeek R1 FP4)
$2.35
/ Million output tokens @ 150 tok/s/user
MTPあり(同条件)
$0.11
/ Million output tokens @ 150 tok/s/user

21倍のコスト削減 — ハードウェアの変更なし

MTPはモデルのアーキテクチャに「副予測ヘッド」を追加するだけ(学習時に組み込む必要あり)。同じGPU、同じモデルで、ソフトウェアの工夫だけでコストが21分の1に。精度への影響もほぼゼロ(MTBenchで検証済み)。

5. 組み合わせの威力 — H100 → 100倍の道のり

4つのテクニックは掛け算で効く。1つずつ積み重ねることで、同じモデル(DeepSeek R1)の推論性能が桁違いに向上する。

最適化の積み上げ効果(perf/TCO基準)
H100 baseline
 
+ disagg prefill
 
~4×
+ wideEP
 
~12×
+ FP4
 
~35×
+ MTP
 
~65×
GB300 NVL72
+ 全最適化
100×
100×
H100 FP8 baseline → GB300 NVL72 FP4 + disagg + wideEP + MTP で約100倍

📐 なぜ「掛け算」になるか

  • Disagg — Prefill/Decodeの干渉を排除 → ベースラインが上がる
  • wideEP — メモリ効率UP × 帯域幅UP → Disaggの効果をさらに増幅
  • FP4 — データ量半減 → wideEPの帯域幅効果がさらに倍増
  • MTP — ステップ数削減 → 上記すべての恩恵が各ステップで効くため乗数的に効く

AMDの課題: composability(組み合わせ)が効かない

AMD MI355X は、個々のテクニック(FP8, disagg, wideEP)を単体で使えば NVIDIA に近い性能を出す。しかし全部を組み合わせると、最適化が干渉して性能が出ない。InferenceX v2のデータでこれが明確に示された。ソフトウェアスタック(CUDA vs ROCm)の成熟度の差が、ハードウェアの差以上に重要。

🧠 セルフチェック

Q1: Disaggregated Prefill の「代償」は何か?

回答を見る

PrefillプールからDecodeプールへKV Cacheを転送するコスト。DeepSeek R1の場合、8192トークンの入力で約500MBの転送が必要。RDMA(NIXL/MoRI)で高速転送するが、ゼロコストではない。ただし、干渉排除による性能向上がこのコストを大幅に上回る。

Q2: wideEP で各GPUのエキスパート数を32→4に減らすと、3つのどんな恩恵があるか?

回答を見る

① HBM効率 — エキスパートの重みが減った分のHBMをKV Cacheに使える → 同時ユーザー数が増加。② スループット — 64 DPランクから各エキスパートにトークンが集中し、演算密度が8倍に上昇。③ 帯域幅 — 64GPUが同時にメモリを読み出すため、合計帯域幅が8倍。

Q3: FP8ではAMDとNVIDIAが互角なのに、FP4ではNVIDIAが圧倒的に有利な理由は?

回答を見る

ソフトウェアスタックの成熟度の差(composability問題)。NVIDIAはFP4 + disagg + wideEP + MTP をすべて組み合わせて性能が掛け算的に向上する。一方AMDは、個々の最適化は動くが、複数を同時に適用すると最適化が干渉して期待通りの性能が出ない。CUDAエコシステム(TensorRT-LLM、Dynamo等)の蓄積がNVIDIAの堀。

Q4: MTPでコストが21倍下がる仕組みを「メモリ読み出し回数」の観点で説明せよ。

回答を見る

通常のDecodeでは1トークン生成ごとにモデル全体の重みをメモリから読み出す(memory-bandwidth-bound)。MTPは副予測ヘッドで複数トークンを同時に推測し、次のステップで一括検証する。5トークン生成に5回のメモリ読み出しが必要だったのが、2回で済む。計算コアの余剰能力を使って推測するため、追加の計算コストはほぼゼロ。結果として同じハードウェアでの出力量が大幅に増え、$/M tokensが21分の1になる。

Q5: 投資家として「NVIDIAの堀はハードウェアではなくソフトウェアにある」と主張するとき、このレッスンのどのデータを根拠にするか?

回答を見る

InferenceX v2のFP8 vs FP4比較データ。FP8単体ではAMD MI355X ≈ NVIDIA B200。しかしFP4 + disagg + wideEP + MTPの全組み合わせで、NVIDIAはH100比100倍を達成するのに対し、AMDはcomposability問題で大幅に劣後する。この差はハードウェアスペック(メモリ帯域、FLOPS)では説明できず、CUDA / TensorRT-LLM / Dynamo / NIXLといったソフトウェアエコシステムの蓄積が生んでいる。= ソフトウェアのネットワーク効果がNVIDIAの持続的な堀。

📖 用語集

用語説明
Disaggregated PrefillPrefillとDecodeを別々のGPUプールに分離する手法
MoEMixture of Experts — 全パラメータの一部だけを選択的に使うアーキテクチャ
Expert Parallelism (EP)MoEのエキスパートを複数GPUに分散配置する並列化手法
wideEPエキスパートを多数のGPUに薄く分散する手法。メモリ効率・帯域幅・スループットが向上
FP4 / FP84ビット / 8ビット浮動小数点。精度を下げて速度とメモリ効率を上げる量子化
MTPMulti-Token Prediction — 副予測ヘッドで複数トークンを同時推測し、一括検証する手法
Composability複数の最適化を組み合わせたときに効果が掛け算的に出るかどうか
NIXLNVIDIA Inference Transfer Library — KV Cache転送用ライブラリ
MoRIAMDのMoEディスパッチ + KV Cache転送ライブラリ
RDMARemote Direct Memory Access — CPU を介さずGPU間でメモリを直接転送
NVLinkNVIDIA独自のGPU間高速接続。NVL72で72GPU間を高帯域で接続
All-to-All通信全ノード間でデータを交換する通信パターン。wideEPのエキスパートルーティングに使用