localaiforum
ログイン
ガイド › ハードウェア

CPUのみで動かす

CPUのみの推論は実用になり、数値は俗説より絶望的ではない——GPUデコードと同じ帯域幅のゲームを、10分の1のパイプでやると理解しさえすれば。デュアルチャネルDDR5の現代的デスクトップはメモリ帯域幅約80〜100 GB/s。それが予算のすべて。CPUコア自体の何かがこれを大きく変えることはない。

式と計算

decode tok/s ≈ 実効帯域幅 (GB/s) ÷ モデルサイズ (GB)

デュアルチャネルDDR5-5600は紙の上では約90 GB/s。コアとプリフェッチャの取り分を引いて実効60〜80 GB/sと呼ぼう。8B Q4モデルは約5 GB。よって。

90 GB/s ÷ 5 GB ≈ 18 tok/sが理論上限 → 実践では8〜14 tok/s。

これはバグではない——大型ディスクリートGPUと同じ算数を、10分の1の帯域幅でやっているだけ。

ハードウェア別の期待値

プラットフォーム 概算帯域幅 8B Q4デコード 体感
ノートPC、DDR4デュアルチャネル 40〜50 GB/s 5〜8 tok/s 読める、出だし遅い
ノートPC、DDR5デュアルチャネル 60〜80 GB/s 8〜12 tok/s 実用チャット
デスクトップ、DDR5デュアルチャネル 80〜100 GB/s 10〜16 tok/s 8B以下なら快適
Threadripper/EPYC、クアッドチャネル以上 200〜460 GB/s 30〜80 tok/s 本当に良い
デュアルソケットサーバ 400+ GB/s 60〜100 tok/s ほぼRAM製GPU

デュアルチャネルデスクトップでの快適ティア。

  • 快適:7〜8B Q4のチャットとコード支援が10+ tok/s。
  • 実用:13〜14B Q4が約5〜8 tok/s。待つが、永遠ではない。
  • 忍耐:24〜32B Q4が約2〜4 tok/s。チャットではなく夜間バッチ。
  • 禁止:デュアルチャネルで70B Q4は1 tok/s未満。クアッドチャネルワークステーション限定で、それでも再考を。

脱出口:部分オフロード

小さいGPUがあれば、llama.cppはCPUとGPUの間でレイヤーを分割する——たとえば32レイヤー中20を8 GBカードに。GPU常駐分はVRAM帯域幅で、残りはRAM帯域幅で走り、速度は両極端の間に着地する。重みがどこにも完全に収まらない場合、どちらの純粋モードより勝り、「フルGPUオフロード」が共有メモリを激しく叩くのを見るより勝る。

本当の苦痛はプリフィル

注目されるのはデコードだが、CPUが痛い目を見るのはプリフィル。計算律速で、デスクトップCPUのFLOPsはGPUのほんの一部だから。8Bモデルへの4,000トークンのプロンプトは、最初のトークンの前に数十秒を要求し得る。大きなコンテキストを注入するRAG型パイプラインは、リクエストごとにこれを支払う。緩和策:プロンプトを短く、バッチプリフィルにデコードより多くのスレッドを、インデックス構築は一回のコストとみなす(RAGを参照)。

実用フラグ

# デコードスレッド=物理コア数。バッチプリフィルは論理コアも使える
llama-server -m qwen2.5-7b-instruct-q4_k_m.gguf -c 8192 -t 8 --threads-batch 16

# マルチソケット機:NUMAノードをまたいでメモリをインターリーブ
numactl --interleave=all ./llama-server -m model.gguf -t 32

# このCPUのSIMDは?AVX2が下限。AVX-512はプリフィルに効く
lscpu | grep -o 'avx[0-9a-z_]*' | sort -u
  • -tは物理コア数に設定するのがデコードでは通常勝つ。マシンで両方ベンチマークすること。クロスオーバーはワークロード次第。
  • AVX2はどこでも基準線。AVX-512(Zen 4/5、最近のXeon)はプリフィルに現実の利得。llama.cppはビルド時に対応を検出する。
  • マルチソケット機ではNUMAピニングが20%以上の価値になり得る——遠いソケットのメモリは遅いメモリ。
  • ノートPCのDDR4はデスクトップDDR5のほぼ半分の帯域幅。同じ式、より悪い定数。デスクトップが12を出すところで5〜8 tok/sを予想。

CPUのみが本当に正解の場合

  • エンベディングとRAGインデックス——重要なのはスループットでレイテンシではない。夜間の数時間のチャンク埋め込みは無料。
  • スクリプト内の超小型モデル——0.5〜3Bの分類器、抽出器、リランカーはCPUでも数十ミリ秒で答える。
  • バッチのバックグラウンドジョブ——寝ている間に3 tok/sで滞留分を要約。ストリームを見ている人はいない。
  • 購入前の試用——GPU購入を確定する前に、モデルファミリーが仕事をこなすか検証。

対話チャットが目的でGPUが1枚でもあれば、モデルはそこへ。今日中に動かすには初回実行、目にする数値の意味を理解するには速度。

関連: 初回実行 · 速度 · RAG