推論サーバー、macOS VM 向け Metal 互換レイヤーを公開──llama.cpp の処理速度が最大 16 倍に向上
Apple Silicon の仮想 GPU が返す Metal 機能を書き換えることで、仮想マシン上の llama.cpp が最新カーネルを選択可能になり、ベアメタル性能の 98% に到達した。
リリース: 2025-01-31 · 読了 3 分記事の要約
1. 核心(What)
- Apple Silicon 搭載 Mac の Virtualization.framework 上で動作する macOS ゲスト向けに、Metal 機能を改変するプロセススコープの互換レイヤーを公開した。
- TinyLlama 1.1B を用いた検証で、プロンプト処理はベアメタル結果の 98% に到達し、トークン生成は 16.36倍に向上した。
- Google Gemma 4 12B や Meta Muse Glimmer 30B などの大規模モデルでも同様の高速化を確認し、生ログとビルドスクリプトを公開している。
- Tart など他の macOS 仮想化 CLI でも同様の「GPU パススルー」に関する課題に対応するアプローチとして注目されている。
2. 影響(Why)
- 仮想環境における GPU 性能の開放: 仮想ゲスト上の初期設定では保守的な Metal プロファイルが返されるため、llama.cpp が低速なコードパスを選択していた問題を根本から解決する。
- 国内ローカル検証チームへの恩恵: Mac Studio 等を開発機に採用する国内の AI 開発現場では、仮想マシン環境を維持したまま実機並みの推論速度を引き出せるため、検証サイクルの効率が跳ね上がる。
3. 根拠・詳細(How)
- Metal 機能クエリのインターセプト: ゲスト内プロセスの Metal capability クエリを動的に書き換え、Apple ファミリー 9 への対応およびスレッドグループメモリの上限を 32 KB から 64 KB へ引き上げる。
- llama.cpp 向けの新しいカーネル選択: 拡張された capability 応答により、llama.cpp が SIMD グループの削減・マトリックス・bfloat16 といった新しいハードウェアパスを直接選択して実行する。
4. 展望・課題(Next)
- 対応ワークロードの検証拡大: 様々な Apple Silicon チップや macOS リリース、さらに幅広い Metal ワークロードにおける詳細な挙動と対応範囲の特定を進める。