1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VRAMを増やせば解決する、は物理的に間違っている — HBM・CXL・Unified Memoryが取れなかったもの

1
Posted at

VRAMを増やせば解決する、は物理的に間違っている — HBM・CXL・Unified Memoryが取れなかったもの

HBMを6倍に増やしても、載せられるモデルサイズは2倍にしかならない。RTX 5060のVRAMが16GBに倍増しても70Bはフルに載らない。「VRAMが足りないなら増やせばいい」——この発想は、帯域・容量・コストの物理的トレードオフを無視している。

HBM、CXL、Unified Memory。この3つはVRAMの壁に対する異なるアプローチだ。それぞれが「帯域」と「容量」と「コスト」の三角形のどこに位置するかで、LLM推論の性能が根本的に変わる。


メモリの三角形: 帯域・容量・コスト

技術              帯域          容量       コスト/GB    インターフェース
────────────────────────────────────────────────────────────────────
HBM3E (H200)     4,800 GB/s    141 GB     $10-15       TSV 1024-bit × 6 stacks
GDDR6 (RTX4060)    272 GB/s      8 GB     $2.5-4       128-bit, 17 Gbps
CXL 3.1             64 GB/s*    TB級      $3-5         PCIe 6.0 x16
Unified (M4 Max)   546 GB/s    128 GB     Apple依存    LPDDR5X 512-bit

* per direction (128 GB/s bidirectional)

各技術の物理的な特徴:

  • HBM3E: シリコン貫通電極(TSV)で垂直に積層。帯域は圧倒的だが、インターポーザ面積とコストを食う
  • GDDR6: 基板上のはんだ接続。安くてGPU独占で使えるが、容量に限界がある
  • CXL 3.1: 既存のPCIeインフラを流用。TB級の容量が取れるが、メモリ読み出し帯域はHBM3Eの1/75
  • Unified Memory: CPU/GPU/NPUが同じメモリプールを共有。コピーコストゼロだが、帯域は共有=競合

HBMは帯域、CXLは容量、Unified Memoryはバランスを選んだ。どれも三角形の全頂点は取れない。


HBM: 帯域の王、容量の奴隷

HBMの帯域は、~5,000本以上のシリコン貫通電極(TSV)による1024-bit幅のバスから生まれる。H200は6スタックを搭載し、合計6144-bitのバス幅で4.8 TB/sを実現する。GDDRの18倍だ。

だが容量には物理的な天井がある:

HBM3E スタック構成:
  1ダイ = 24 Gbit (3GB)
  8-Hi (8枚積層) = 24 GB/stack
  12-Hi (次世代)  = 36 GB/stack
  H200: 6 stacks × 24GB = 144 GB raw (公称141 GB)
  スタック単価: $240-360推定 ($10-15/GB)

「もっとスタックを増やせば?」——ここで面積の問題にぶつかる。各HBMスタックはインターポーザ上で~100 mm²を占有する。GPU die (~800 mm²) + 6スタック (~600 mm²) = ~1400 mm²。CoWoS-Sの現行上限は約2831 mm²(3.3xレチクル)で、H200にはまだ余裕があるが、インターポーザの大型化はコストと歩留まりを直接悪化させる。

LLM推論への影響

GPU                     最大モデル (Q4)   帯域       備考
─────────────────────────────────────────────────────────────
H200 (141GB HBM3E)     ~280B             4,800 GB/s  70B FP16だとKV cache余裕1GB
RTX 4060 (8GB GDDR6)   ~13B              272 GB/s    13B以上はCPUオフロード必須
RTX 5060 (16GB GDDR7)  ~30B              448 GB/s    容量2倍でもモデルは2倍にならない

VRAMを倍増しても載せられるモデルサイズは倍にならない。KV cacheの存在がある。32Kコンテキストの70B FP16モデルのKV cacheは約8GB。VRAMの「余り」がKV cacheに食われる。


CXL: 容量の解放、帯域の犠牲

CXL (Compute Express Link) はPCIeの物理層上に構築されたメモリ拡張プロトコルだ。

CXL 3.1はPCIe 6.0の物理層上に構築され、64 GB/s per direction(x16レーン)の帯域を提供する。レイテンシは170-400 ns(DDR5ローカルの2-4倍)。容量はmemory poolingにより理論上無制限だが、現時点ではサーバー/データセンター向けだ。

CXLの帯域でLLM推論すると何が起きるか:

モデル                 CXL (64 GB/s)    GDDR6 (272 GB/s)    HBM3E (4,800 GB/s)
──────────────────────────────────────────────────────────────────────────
7B Q4_K_M (4.7GB)     ~13.6 t/s        ~32 t/s (実効)       ~1021 t/s (理論)
70B Q4_K_M (40GB)     1.6 t/s          N/A (載らない)       ~120 t/s (理論)

70B Q4の重みをCXLから読むと1.6 t/s。人間が読む速度と変わらない。

だが、CXLの真価は「重みの格納場所」ではない。

階層型メモリアーキテクチャ:

Tier    メモリ         用途                       容量       帯域        レイテンシ
────────────────────────────────────────────────────────────────────────────
 0      GPU SRAM       アクティベーション          24 MB     ~4 TB/s     ~1 ns
 1      HBM/GDDR      重み、アクティブKVキャッシュ 8-141 GB  272-4800    ~10 ns
 2      CXL Memory     KVキャッシュのオーバーフロー TB級      64 GB/s     170-400 ns
 3      NVMe SSD       永続ストレージ              TB級      7 GB/s      ~10,000 ns

CXLの本質は「VRAMの代替」ではなく「VRAMとNVMeの間を埋める新しい層」だ。KVキャッシュの古いトークン(128Kコンテキストの最初の方)をCXLメモリに退避させれば、VRAM上には直近のアテンション範囲だけ残す設計が可能になる。KVキャッシュのオーバーフロー先としてNVMeの9倍高速。

この階層化は、光メモリ読み出し(KVキャッシュの物理的な転送量削減)やKVキャッシュ量子化(データ量を数値的に削減)とは直交する最適化だ。組み合わせられる。


Unified Memory: バランスの罠

Apple SiliconのUnified Memoryは、CPU・GPU・NPUが同じ物理メモリプールを共有する。

チップ          容量      帯域         バス幅     共有先
───────────────────────────────────────────────────────────────────
M4 Max         128 GB    546 GB/s     512-bit    CPU 12コア + GPU 40コア + NPU 16コア + メディアエンジン
M4 (base)      16-32 GB  120 GB/s     128-bit    同上(RTX 4060の272 GB/sの半分以下)

LLM推論での現実

  • M4 Max 128GB: 70B Q4_K_M (40GB) がメモリ管理なしで全量載る。理論上限 546/40 = 13.7 t/sだが、実測は8-10 t/s。CPU/NPU/IOとの帯域共有がボトルネック
  • M4 32GB: 32B Q4で理論 120/18 = 6.7 t/s → 実測4-5 t/s。RTX 4060はGDDR6 272 GB/sを独占するため、同モデルで10.8 t/sを出す

帯域共有の問題は構造的だ。GPU推論中もCPUがメモリにアクセスし、帯域を食い合う。macOSのメモリ管理やUI描画がバックグラウンドで帯域を消費する。Safariで大きなページを開きながら推論すれば、体感で速度が落ちる。

Unified Memoryの利点は「GPUメモリ管理の排除」だ。CUDAのcudaMalloc/cudaMemcpyが不要。データはすでにそこにある。コピーコストゼロ。

だが帯域は共有資源であり、独占できない。RTX 4060のGDDR6は272 GB/sをGPUが事実上独占する。M4のベースモデルは120 GB/sをシステム全体で分け合う。

GPU                      総帯域     GPU占有率              LLM実効帯域   推論速度
─────────────────────────────────────────────────────────────────────────────────
RTX 4060 (8GB GDDR6)     272 GB/s   ~95% (DP出力程度)      ~258 GB/s    7B Q4: 32 t/s (実効率58%)
M4 Max (128GB LPDDR5X)   546 GB/s   大半 (CPU/NPU/IOと競合) ~400 GB/s    70B Q4: 8-10 t/s
M4 base (16GB LPDDR5X)   120 GB/s   システム全体と共有      ~78 GB/s     7B Q4: 14-16 t/s

RTX 4060は帯域が小さいがGPU独占で、小モデルなら最速。M4 Maxは帯域が大きいが共有のため、大モデルを載せられる代わりに帯域あたりの効率は低い。M4 baseは帯域も容量も中途半端で、LLM用途ではRTX 4060に負ける。


3つのアプローチの比較

                帯域         容量        コスト     LLM推論での位置
─────────────────────────────────────────────────────────────────
HBM3E          4,800 GB/s    141 GB     $10-15/GB   重み+KVを高速に読む
GDDR6         272 GB/s      8-24 GB    $2.5-4/GB   小モデルを高速に回す
CXL 3.1        64 GB/s       TB級       $3-5/GB     KVキャッシュのオーバーフロー先
Unified (Max)  546 GB/s      128 GB     Apple依存   大モデルをゼロコピーで載せる
NVMe SSD       7 GB/s        TB級       $0.1/GB     モデルの永続ストレージ
  • HBM (H100/H200) — バッチ推論、複数リクエスト同時処理。帯域を複数リクエストで共有できるため、1リクエストあたりのコスト効率が高い。ただし単一リクエストでは700W TDPの大半が無駄になる
  • GDDR (RTX 4060/5060) — 個人利用、単一リクエスト、小〜中モデル。GPU独占帯域で効率最大。115W TDPで32 t/s (0.28 t/s/W)、小モデルなら電力効率でH100単一リクエスト (700W) に勝る。ただし容量の壁があり、8GBでは7Bが上限
  • CXL — 超長コンテキスト推論 (128K+)、メモリプール共有。KVキャッシュが数十GBに膨らむ長コンテキストでVRAM不足を解消する。ただし帯域はHBM3Eの1/75で、重みの格納先としては遅すぎる。サーバー向け2025-26年、コンシューマーは2028年以降
  • Unified Memory (Apple) — 大モデルを手軽に動かしたい開発・実験用途。70B Q4がメモリ管理なしで動く。ただし帯域共有で速度効率はGDDR独占に劣り、ゲーミング用途との両立は困難

8GB VRAMユーザーへの実用的示唆

Layer 1: 量子化(即効性あり)
Q4_K_M量子化で7Bモデルの重みが14GB → 4.7GBになる(3倍の容量効率)。llama.cpp/Ollamaで標準サポート。

Layer 2: KVキャッシュ量子化(実験段階)
--cache-type-k q4_0 --cache-type-v q8_0 でKVキャッシュをFP16の1/3に圧縮。長コンテキスト対応の鍵。詳細は「KVキャッシュをQ4に落としたら32Kコンテキストが8GBに収まった」で検証した。

Layer 3: CPUオフロード(帯域トレードオフ)
--n-gpu-layers で部分的にGPUに載せれば、32Bモデルが動く(遅いが動く)。RTX 4060で32B最適オフロード時10.8 t/s。ボトルネックはCPU↔GPU間のPCIe 4.0 x8 = 16 GB/s。

Layer 4: CXL(将来)
CXLメモリモジュールでPCIe経由のメモリ追加。KVキャッシュのTier 2ストレージとして機能する。コンシューマー向けは2028年以降。今のCPUオフロード(PCIe 16 GB/s)と原理は似ているが、CXLはメモリセマンティクス(load/storeアクセス、GPU直接アドレッシング)で差別化される。

今日できるのはLayer 1-3の組み合わせだ。Q4量子化 + KVキャッシュQ4 + 最適GPUオフロード = 32Bモデル × 32Kコンテキストが8GBで動く。将来CXLがLayer 4として加われば、128K+コンテキストが現実的になる。

注目すべきは、CXLが約束する「メモリ追加」は、今日のCPUオフロードと本質的に同じPCIeバスを通ることだ。帯域の天井は同じ。CXLの利点はメモリセマンティクス(load/storeでアクセスでき、GPUが直接アドレッシング可能)であって、帯域の向上ではない。


物理が決めるメモリの未来

「VRAMを増やせば問題は解決するか?」——解決しない。容量を増やすと帯域かコストが犠牲になる。

帯域・容量・コストの三角形は物理法則が支配しており、どの技術も3つ全ては取れない。HBMは帯域を取って容量とコストを犠牲にした。CXLは容量を取って帯域を犠牲にした。Unified Memoryはバランスを取って独占帯域を犠牲にした。GDDRは独占帯域を取って容量を犠牲にした。

LLM推論の最適解は「1つの技術を選ぶ」ことではなく、複数の技術を階層的に組み合わせることだ。

今日のRTX 4060で実行可能な最善策:

  • 重み → VRAM(Q4量子化で7-13Bを全載せ)
  • KVキャッシュ → VRAM(Q4/Q8量子化で容量節約)
  • 追加レイヤー → RAM(CPUオフロード、PCIe帯域)
  • 永続ストレージ → NVMe SSD

将来のCXL搭載コンシューマーPCでの最善策:

  • 重み → VRAM(Q4量子化)
  • アクティブKV → VRAM
  • 古いKV → CXLメモリ(64 GB/sで十分なアクセス速度)
  • 永続ストレージ → NVMe SSD

メモリの壁は「破る」ものではなく「階層で回避する」ものだ。


参考文献

  1. CXL Consortium — "Compute Express Link Specification 3.1" (2024)
  2. Samsung — "CMM-D: CXL Memory Module for Data Centers" (2024)
  3. SK hynix — HBM3E specifications, 12-Hi stack architecture
  4. NVIDIA H200 SXM specifications — 141GB HBM3E, 4.8 TB/s
  5. Apple M4 Max specifications — 128GB Unified Memory, 546 GB/s
  6. "Efficient Memory Management for Large Language Model Serving with PagedAttention" (2023) arXiv:2309.06180
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?