CPU cores

概要

CPU cores(CPUコア)は、ローカルLLM運用においてシステム全体の安定性と効率性を支える重要なコンポーネントです。GPUがAI計算の主力を担う一方、CPUは前処理、メモリ管理、システム制御を担当します。

特に大規模モデルや複数モデル同時実行では、十分なCPUコア数とクロック性能が全体のパフォーマンスを左右します。

ローカルLLMにおけるCPUの役割

主要な処理内容

  • 前処理・後処理: トークン化、デトークン化
  • メモリ管理: RAM-VRAM間データ転送
  • モデル読み込み: ファイルI/O、初期化処理
  • システム制御: プロセス管理、スケジューリング
  • CPU推論: 小規模モデルの直接実行

GPU連携での重要性

  • データパイプライン: GPU待機時間の最小化
  • 並列処理: バックグラウンドタスクの実行
  • メモリオフロード: VRAM不足時の補完
  • マルチモデル: 複数AI処理の並行実行

推奨CPU構成

エントリーレベル

  • Intel Core i5-12600K: 10コア(6P+4E)
  • AMD Ryzen 5 5600X: 6コア12スレッド
  • 用途: 7B-13Bモデル、個人利用
  • 予算: 3-5万円

ミドルレンジ

  • Intel Core i7-13700K: 16コア(8P+8E)
  • AMD Ryzen 7 7700X: 8コア16スレッド
  • 用途: 70Bモデル、マルチタスク
  • 予算: 5-8万円

ハイエンド

  • Intel Core i9-13900K: 24コア(8P+16E)
  • AMD Ryzen 9 7950X: 16コア32スレッド
  • 用途: プロフェッショナル、サーバー
  • 予算: 8-15万円

CPU推論の活用

軽量モデルでのCPU推論

# llama.cppでのCPU推論
./main -m models/llama-2-7b-chat.q4_0.gguf \
       -p "User: Hello!" \
       -t 8 \    # CPU threads指定
       -c 2048   # context length

# CPUコア数を活用
export OMP_NUM_THREADS=16  # OpenMP threads
export MKL_NUM_THREADS=16  # Intel MKL threads

PyTorchでのCPU使用

# CPU推論の設定
import torch
torch.set_num_threads(16)  # PyTorchスレッド数

# CPU-GPU分散処理
device_map = {
    "model.embed_tokens": "cpu",
    "model.layers.0": "cuda:0",
    "model.layers.1": "cuda:0",
    # ... 層の分散配置
    "lm_head": "cpu"
}

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map=device_map,
    torch_dtype=torch.float16
)

パフォーマンス最適化

CPUスレッド最適化

  • 物理コア数基準: HTない場合はコア数まで
  • ハイパースレッディング活用: Intel CPUで有効
  • NUMA考慮: マルチソケット環境での配慮
  • アフィニティ設定: 特定コアへの処理固定

メモリアクセス最適化

  • デュアルチャンネル: RAM 2枚組構成
  • 高速メモリ: DDR5-5600以上推奨
  • 十分な容量: 32-64GB以上
  • 低レイテンシ: CL値の最適化

ボトルネック診断

CPU使用率監視

# Linux/macOS
top
htop
iostat 1

# Windows
Task Manager
Performance Monitor

# Python内での監視
import psutil
print(f"CPU usage: {psutil.cpu_percent(interval=1)}%")
print(f"CPU count: {psutil.cpu_count()}")
print(f"Memory usage: {psutil.virtual_memory().percent}%")

ボトルネック指標

  • CPU 100%継続: コア数不足
  • 高いI/O wait: ストレージボトルネック
  • メモリスワップ: RAM容量不足
  • GPU待機: CPU処理遅延

用途別推奨構成

研究・開発用途

  • コア数重視: 12コア以上推奨
  • マルチタスク: 複数実験同時実行
  • メモリ重視: 64GB+ RAM

商用・プロダクション

  • 安定性重視: 実績のあるCPU選択
  • 冗長性: デュアルソケット構成
  • ECC メモリ: エラー訂正機能

個人・学習用途

  • コストパフォーマンス: 6-8コアで十分
  • GPU重視: CPU予算をGPUに回す
  • アップグレード性: 将来の拡張考慮

関連用語