
📌 エグゼクティブサマリー
llama.cppにIntel B70のXMX行列エンジンを刷新するPRが投稿され、スペキュレーティブデコードの大幅改善が報告されています。30Bモデルの実測は36〜53トークン/秒が基準。一方でSYCL自作カーネルはTriton比50〜60倍遅く断念する試行もありました。
Intel Arc Pro B70でローカルLLMを動かす環境に、追い風が吹いています。llama.cppに、B70が持つXMX(行列演算をまとめて処理するIntel GPUの専用ユニット)の実装を刷新するPRが投稿され、推論速度が大きく改善したと報告されました[1][4]。PRを投稿したのはbudiony氏で、対象はB70をSYCL(Intel GPU向けの並列計算の仕組み)で動かす場合のllama.cppです。特にスペキュレーティブデコード(小型の下書きモデルが先に複数トークンを予測し、本体がまとめて正否を確認する生成方式)の速度が大きく変わったといいます[1]。
実測例が具体的です。Muse Glimmerの30BモデルをQ6_K(重みを6ビット程度に圧縮する量子化)で動かし、DFlash2という下書き方式で9種類のタスクを計測しました。改善前の速度は、数学の逐次計算で53.2トークン/秒、要約で50.1トークン/秒、翻訳で45.1トークン/秒など、タスクにより36.2〜53.2トークン/秒の幅があります[1]。投稿者によれば、トークン検証のコストが大きく下がったため、一度に確認する下書きの数を増やせるようになり、受理率の数字は下がって見えるとのことです[1]。
背景を押さえておきます。B70は32GBのGDDR6を搭載し、32基のXe2コアと256基のXMXエンジンを持つカードです[2]。実は、このXMXはこれまで一部でしか使われていませんでした。コミュニティのガイドによれば、llama.cppのSYCLバックエンドでは、標準的な行列カーネルがまだXMXを使っていません。XMXを活用していたのは、flash attention(注目すべき一部だけを見て計算を減らす仕組み)の経路だけでした。それでもprefill(プロンプト全体を一括処理する段階)では470〜490トークン/秒が出ています[3]。今回のPRは、このXMX活用を行列演算本体へ広げる動きといえそうです[3][4]。
同ガイドの検証済み構成も参考になります。KVキャッシュ(会話の途中結果を保存するメモリ領域)を8ビットに圧縮し、131072トークンのコンテキストを確保します。そこへMTP3(モデル自身が下書きも予測する多トークン予測の設定)を組み合わせました。この構成の実測は、decode(トークンを1つずつ生成する段階)で41〜46トークン/秒、下書き受理率0.53〜0.90です[3]。長いコンテキストでは16ビット精度のBF16下書きが32GBカードをクラッシュさせるため、8ビット化が必須で、約1.5GBを節約できるとも述べられています[3]。さらにこのバックエンドは、5つのベンチマークタスクを1回の実行で通過した唯一のB70バックエンドとされ、長いエージェント連鎖でvLLMのMTPがクラッシュする場面でも動き続けたと報告されています[3]。
しかし、XMXを自前で狙い撃ちするのは簡単ではありません。別の試行では、SYCLで検証用カーネルを自作したところ、Triton(GPUカーネルを書くための言語基盤)の実装比で50〜60倍も遅くなりました。原因は、呼び出しごとに約400MBがPCIe(グラボとCPUをつなぐデータ通路)経由で転送されていたことです。ホストとGPUでメモリを共有するUSMに作り直して20〜25倍まで縮めたものの、アルゴリズム面の差は埋まらず、結局見送り(NO-GO)という判定でした[2]。
興味深いのは、Triton側を詳しく調べた結果です。FP32演算の利用率は6.2%、メモリ帯域の利用率は3.9%にとどまり、処理時間の24%がGPUへの指示出しのオーバーヘッドに消えていました。つまり計算能力ではなく、指示の回数で律速していたのです。カーネルを1本に融合したところ、条件の良いケースで2.04倍、悪いケースでは1.07倍と、効果に大きな差が出ました。圧縮の復号が軽いケースでは共有できる処理が少なく、効果が小さくなる、と筆者は説明しています[2]。
KVキャッシュの圧縮にも落とし穴があります。TurboQuantという3〜4ビット圧縮は、Qwen3-30B-A3Bで約55万のKVトークンを11.8GiBに収める容量性能を持つ一方、スループットはFP16(16ビット精度)比で0.27〜0.47倍に落ちます。スペキュレーティブデコードと組み合わせると差はさらに広がり、FP16なら2.37倍の高速化に対し、圧縮ありでは1.34倍にとどまりました[2]。
Intelのチームはこの圧縮技術のXPU(Intel GPU)対応を認め、SYCLポートをロードマップに載せています[2]。PRの刷新[1]、コミュニティの検証[3]、vLLMとの比較記事[4]や導入レシピ[4]、ワンショットインストーラー[4]も揃ってきました。XMXをどこまで引き出せるかが、B70でのローカル推論速度を左右する段階に入ったようです。









RECENT COMMENTS