【CUDA 16GB向け】llama.cpp新PR: 低ビット量子化の高速化、16GB GPUのOOM解消、MTPとGLU最適化
目次
この記事はAIによって編集・作成されています。
llama.cpp は ggml-org が開発する C/C++ の LLM 推論エンジン。GGUF 形式の量子化モデルを CPU/GPU で動かす。
今回の要点
- 低ビット量子化 (q2_K/q3_K/q6_K) における MMVQ カーネルの高速化により、最大 1.67 倍の速度向上を確認 (PR #30517)。
- VRAM 不足 (OOM) 対策として、16GB などの限られたメモリ環境向けに VMM 予約サイズを 32GB から 8GB に削減 (PR #30542)。
- MTP (Multi-Token Prediction) 利用時の推論速度低下を招くウォームアップ再実行バグを修正 (PR #30511)。
- FFN 演算のオーバーヘッド削減のため、MMQ パスでの GLU 融合を実現 (PR #30489)。
低ビット量子化MMVQカーネル高速化で推論速度向上
llama.cpp では、マルチモーダルベクトル量子化 (MMVQ) を低ビットタイプで実行する際のパフォーマンスが最適化された。これは 60 段階の蒸留ステップで評価された結果、RTX 3090 において q2_K で 1.59 倍、q3_K で 1.67 倍、q6_K で 1.06 倍の速度向上を確認している。RTX PRO 6000、5090、4090 でも 1〜13% の改善が見られた。この最適化は sm_80/86/87/89 (RTX 3080/4080/5060Ti 等) を含むすべての CUDA GPU 対象であり、特に 16GB クラスの GPU に恩恵が大きい。
低ビット量子化モデルを推論する際、速度が大幅に向上するため、RTX 3080 や 4080、5060 Ti などの 16GB VRAM を搭載した環境でも、より高速に推論を実行できるようになる。
根拠: CUDA: faster MMVQ for low-bit types (PR #30517)
CUDA VMM予約サイズ削減で16GB GPUのOOM解消
VRAM が限られた GPU 環境で発生する CUDA out-of-memory (OOM) エラーを解消するため、VMM (Virtual Memory Management) プールの予約サイズが変更された。従来 32GB だった予約サイズが、統合メモリを持つ GPU で 8GB に引き下げられた。これにより、VRAM が限られた 16GB 搭載の RTX カードでも、OOM に陥りにくくなり、安定した動作が期待できる。
VRAM 不足に悩まされていた 16GB GPU ユーザーにとって、メモリ不足による推論失敗が解消される決定版的な改善となる。
根拠: cuda: Lowering VMM pool reservation size to 8 GB on GPUs with combined memory (PR #30542)
MTP推論時のウォームアップ再実行バグ修正
speculative decoding (推論加速技術) の一種である MTP (Multi-Token Prediction) を使用する場合、ターゲットグラフが変更された後にウォームアップが再実行されないバグがあった。この修正により、MTP グラフ変更後のウォームアップ不足が解消され、推論速度の低下や不安定さが改善される。CUDA 環境での speculative decoding 利用時に、より安定したパフォーマンスが得られるようになる。
MTP を利用しているユーザーにとって、推論速度の低下や不安定さが解消され、よりスムーズな推論が可能になる。
根拠: spec: re-run warmup after MTP changes the target graph (PR #30511)
MMQパスでのGLU融合でFFN演算のオーバーヘッド削減
MoE (Mixture of Experts) モデルのデコード速度改善のため、MMQ パスでの GLU (Gated Linear Unit) 融合が実装された。従来、batched (MMQ) パスでは GLU が独立したカーネルとして実行されていたが、SWIGLU/GEGLU/SWIGLU_OAI/SWIGLU_CLAMP が Q8_1 quantize カーネル内で registers に融合された。これにより、FFN 毎の ubatch での write/read が不要になり、MoE (MUL_MAT_ID) を含む FFN 演算のオーバーヘッドが削減される。VRAM 消費も抑制される可能性がある。
MoE モデルを推論する際、FFN 演算のオーバーヘッドが削減されるため、デコード速度が改善される。VRAM 消費も抑制される可能性があるため、16GB GPU での MoE モデル利用にも寄与する。
根拠: llama.cpp PR #30489: fuse GLU into MMQ Q8_1 activation quantization — eliminate extra kernel launch
出典
- CUDA: faster MMVQ for low-bit types (PR #30517)
- cuda: Lowering VMM pool reservation size to 8 GB on GPUs with combined memory (PR #30542)
- spec: re-run warmup after MTP changes the target graph (PR #30511)
- llama.cpp PR #30489: fuse GLU into MMQ Q8_1 activation quantization — eliminate extra kernel launch
SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。