広告

Android(Snapdragon 7s Gen 3)でTurboQuantをベンチマークしてみた——実際に起きたこと

Reddit r/LocalLLaMA / 2026/3/31

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

要点

  • Redditのユーザーが、Android端末(Snapdragon 7s Gen 3、CPUのみ)上でTermuxネイティブのワークフローとGitHub Actionsによるクロスコンパイルを用いてTurboQuantをベンチマークしようとしたが、複数のビルドシステム/フラグ関連の問題に直面した。
  • クロスコンパイル自体は成功しバイナリも実行できたものの、期待していたTurboQuant(tq3_0)の型登録がビルドに含まれていないことが判明し、llama.cppのTurboQuant型システムにブランチが完全に統合されていないことを示していた。
  • 投稿は、モバイル上でのARM CPU向けTurboQuantは準備ができていないと結論づけている。利用可能なコミュニティ検証はCUDAやApple Metal向けであり、Android ARM向けではないためだ。また、最も近いARMの参照コードもマージされていない。
  • upstreamの未解決PR(#21088/#21089)があることに触れ、これらがマージされれば、TurboQuantによって報告されている約4.4倍のKV圧縮に伴うメモリ削減が得られ、OOMリスクを減らすことでモバイルのコンテキスト長を実質的に拡張できる可能性があると述べている。
  • 著者は、クロスコンパイルして生成されたバイナリにおけるtq3_0の存在を自動で検証する公開CIワークフローを挙げており、upstreamマージ後にベンチマーク結果を公開する予定だとしている。
I tried to benchmark TurboQuant on Android (Snapdragon 7s Gen 3) — here's what actually happened

スマホ1台だけで、主権的なAndroid開発スタックを構築。PCなし。Termuxネイティブ。先週TurboQuantが出たので、すぐに気になりました。ARMのCPUのみで動くのか?モバイル向けの実機で検証した人はいませんでした。

私の環境:

Xiaomi Redmi Note 14 Pro+ 5G

Snapdragon 7s Gen 3(ARMv8-A、8GB RAM)

Termuxネイティブ、Android 16

GPUオフロードなし(Adreno 730がQwen3.5 Hybrid Linear Attentionのカーネルを拒否)

やったこと:

GitHub ActionsのクロスコンパイルでAaryan-Kapoorのturboquant-tq3_0ブランチをビルド(オンデバイスではビルドできない—8GB RAMで-j2が最大)。フラグ:-march=armv8-a+dotprod+i8mm、CPUのみ、NDKなし。

失敗したビルドが5回ありました。どれも学びになりました:

llama-serverは、このブランチでは有効なターゲットではない

CMAKE_SYSTEM_NAME=Androidを指定すると、NDKのclangが入ってきてPOSIX_MADV_WILLNEEDが未定義になる

CMAKE_SYSTEM_NAME=Linux + SYSTEM_PROCESSOR=aarch64なしだと、cmakeがARMビルドに-mavx2 -msse4.2を注入してしまう

結果:

出所:turboquant-tq3_0

TQ3_0:false

ターゲット:aarch64 ARMv8-A+dotprod+i8mm

ビルドは成功。バイナリも動きます。ですが、stringsで調べるとバイナリ内にtq3_0型として登録されていませんでした。このブランチは存在し、クリーンにコンパイルできるものの、2026-03-30時点ではTurboQuantのGGML型登録がこのブランチにまだマージされていません。

これが意味すること:

ARMのCPU上でのTurboQuantはまだ準備ができていません。コミュニティ実装(turboquant_plus、TheTomのフォーク)は、Apple SiliconのMetalとCUDAで検証済みです。Aaryan-KapoorのCPUリファレンス実装が、ARM対応コードとしては最も近いですが、まだllama.cppの型システムに統合されていません。

上流のPR(#21088/#21089)はオープンです。マージされれば、メモリの削減(KV圧縮が約4.4倍)は8GBのモバイルデバイスにとって非常に大きな意味を持ちます。OOMなしで4Kと32Kのコンテキストの差が出るからです。

CIワークフローは公開されています:github.com/weissmann93/neobildOS — .github/workflows/build-llama-tq3.yml。任意のマシンからARM64向けにllama.cppをクロスコンパイルし、バイナリにTQ3_0が存在するかを確認します。上流のPRがマージされたら、再実行してチェックが自動的にグリーンになります。

ベンチマーク数値(q8_0のベースライン vs TQ3_0:マージされたら)を、続報として投稿します。

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

広告