EDGEKV / COMPRESSION → RUNTIME → HARDWARE

让压缩后的 KV Cache,
真正参与推理。

从算法参考到持久因子池、增量上传与 Hexagon 内核:我的端侧 KV Cache 系统工程。

先看已经做出的东西

我围绕端侧 KV Cache 压缩,推进算法参考、llama.cpp / GGML 运行时、持久存储与 Hexagon 内核。重点是让压缩表示被运行时正确、高效地消费。

运行时

后端持有因子池;图重建与存储生命周期解耦。

数据搬运

跟踪新增块与上传进度,按变化范围同步。

硬件路径

连接 INT8 存储契约、HTP 适配与 v79 数值验证。

一条跨越算法与硬件的工程链

历史 KV 分块压缩,近期窗口保持稠密表示。运行时管理因子、位置与有效块,后端负责重建或直接消费;两种路径具有不同的验证进度。

  1. Python 参考
    BlockSVD · 量化 · 质量检查
  2. C++ / GGML
    因子池 · 位置 · 增量同步
  3. HTP / AOT
    存储 ABI · dispatch · memref
  4. Hexagon HVX
    重建 / 因子计算 · 独立参考验证

我的工作重点是这些层之间的接口与实现:让生产端输出、运行时存储、后端输入和数值参考遵守同一份契约。

三个决定,解释工程价值

01 / 压缩率不是最终目标

早期 Qwen3-1.7B 的 Python 原型在 2048-token 文本上,PPL 从 17.9799 变为 18.0442(+0.36%),但自回归评估耗时从 104.6 秒增至 300.5 秒。GPU→CPU 拷贝与 NumPy SVD 暴露了压缩路径的成本。因此,质量验证与运行时优化必须分别推进。

02 / 图可以重建,因子不必重新上传

将因子池交给 BlockSVD context 持有,并为后端建立独立副本。按层组、流与序列区分存储,容量按需增长;图拓扑改变时保留已有因子。追加块只同步尚未上传的区间,非追加修改则回退到完整重打包。

03 / 先把消费路径测清楚,再扩展集成

重建路径提供可验证的基线;直接计算压缩 Attention 则需要同时处理因子计算、近期窗口、因果掩码与 Softmax。局部 HVX 因子计算已经有仿真结果,但不能据此宣称完整 Attention 更快。将这些阶段分别验证,避免把局部优势误当成最终收益。

成果分别由什么支撑

模型质量 / H20

Qwen3-1.7B · rank 8 · block 64 · INT8 · 2048 tokens;PPL +0.36%。

单篇文本、早期 Python 路径;该轮评估耗时约为基线 2.87 倍。

存储与上传 / CPU

Qwen3-1.7B 小规模 smoke:14 个层组、56 次容量内更新,每次上传一个 8240-byte 块,无整池重传。

macOS CPU 路径,n_ctx=32;证明存储行为,不代表手机速度或模型质量。

HTP 适配 / v79 仿真

固定 INT8 重建 fixture:K / V 转为 FP16 后与独立参考最大绝对误差均为 0。

固定形状、仿真执行;与 Android FastRPC 真机验证分开。

局部内核 / v79 仿真

B64 / Rk32 / Rv32 / D128,1 个 Hkv、2 个 GQA query heads;HVX 因子计算 11,640 Pcycles,对标量参考约 10.56×。

仅因子计算;不含完整 Softmax、近期窗口和在线合并。

本页于 2026.09.16 整理现有源码与实验记录,未重新运行实验。各行属于不同实验,不拼成统一加速比;80% 内存减少仍是原始目标,不作为成果数字。

接下来要完成的闭环

将局部因子计算接入包含 Softmax、因果掩码与近期窗口的完整消费路径,在匹配基线下测量;再分别核验真机运行、峰值内存、生成质量与端到端时延。

阅读路线:如果关注推理系统,重点看因子池与数据同步;如果关注编译器或算子,重点看存储 ABI、AOT 适配与独立数值参考。

LET’S BUILD / CLASS OF 2027

一起把系统做深。

AI 编译器 · GPU Kernel · 大模型推理系统

邮件
联系 ↗