Snapdragon Hexagon NPUでllama.cppを動かすのは有望そう

Reddit r/LocalLLaMA / 2026/5/1

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • Reddit投稿者が、Snapdragon 8 Gen 3(OnePlus 12)のHexagon NPU向けにllama.cppをクロスコンパイルして動作させたところ、発熱せずに推論が可能で、速度も概ねCPU実行と同程度〜実用域に達したと述べています。
  • gemma-3のQ4_0系GGUF(例:12B/4B, IT-qat-Q4_0)で、pp/tgのトークン速度が報告されており、特に小型モデルではQ&A用途に十分な体感になったとしています。
  • 現状のHexagonバックエンドは対応量子化が限定的(Q4_0, IQ4_NL, MXFP4, Q8_0, F32のGGUFなど)で、KVキャッシュの量子化にも未対応です。
  • NPUが同時に扱えるメモリが4GBに制限されるため、モデル+KVキャッシュが大きい場合は複数NPUデバイス(例:HTP0/HTP1等)を指定する必要があると説明されています。
  • QualcommのHexagon NPU対応は多くのPRが出ている一方、GPU(Adreno)やCPUとの併用・オフロード制御、また新しめチップ(SD 8 Elite Gen 5 / X2 Elite Extreme)が4GB制約をどう解消しているかは、ユーザー間で追加検証が求められています。

https://github.com/ggml-org/llama.cpp/blob/master/docs/backend/snapdragon/README.md

私はSnapdragon 8 Gen 3を搭載したOneplus 12を持っています。上記READMEの手順に従ってUbuntu上でllama.cppをクロスコンパイルし、その後スマホのTermuxディレクトリにコピーしました。

llama.cppのHexagonバックエンドは、Qualcommの従業員による多数のPRによって、かなり手厚くサポートされているようです。

gemma-3-12b-it-qat-Q4_0では8t/s pp、4.5t/s tgが出ており、gemma-3-4b-it-qat-Q4_0では20t/s pp、12.5t/s tgが出ています。

速度はSD8G3のCPUを使う場合とだいたい同じですが、まったく熱くなりませんし、tgの速度も単純なQ&Aなら十分です。

現在の制限は、Q4_0、IQ4_NL、MXFP4、Q8_0、F32のggufのみ対応していることです。また、KVキャッシュの量子化にも対応していません。Snapdragon 888のような古いチップにも対応していますが、LLM向けのTensorモジュールがあるのはSD8G2以上のSoCだけなので、チップが古いなら気にしないほうがよさそうです。

Hexagon NPUは4GB RAMしかアドレスできないため、モデル+KVキャッシュが大きすぎる場合は、複数のNPUデバイスを開くための環境変数を設定する必要があります。以下は例です:

LD_LIBRARY_PATH=./lib:/vendor/lib64 ADSP_LIBRARY_PATH=./lib GGML_HEXAGON_NDEV=2 ./bin/llama-completion -m /sdcard/gguf/gemma-3-12b-it-qat-Q4_0.gguf -sys 'You are a helpful AI assistant' -ngl 99 --device HTP0,HTP1

私のSD8G3のNPUは34 INT8 TOPSで、メモリ帯域幅は76.8GB/sです。彼らの最新製品X2 Elite Extremeは、80 INT8 TOPSで228GB/sです。一方で、Nvidia 3090は248 INT8 TOPSで936GB/sです。追いつくにはたぶん2、3世代必要でしょうか?

PS ところで、SD 8 Elite Gen 5のスマートフォン、またはX2 Elite Extremeのラップトップを持っている人はいますか?いるなら、推論のパフォーマンス数値を報告できますか。4GB RAM以上をアドレスできるはずなので、複数のHTPデバイスは不要なはずですが、これはいまllama.cppで対応されていますか?

PPS Hexagonのビルドは、OpenCLビルドでもあるはずです。Adreno GPUだけにLLMをオフロードする方法を知っている人はいますか?--deviceオプションを省略すると、GPUとNPUの両方にオフロードされているようですが、速くなりません。また、最大パフォーマンスのためにCPU、GPU、NPUを一緒に使うことは可能ですか(とはいえアイスパックが必要になるかもしれません)?

submitted by /u/Ok_Warning2146
[link] [comments]