Daliang Xu, Hao Zhang, Liming Yang, Ruiqi Liu, Gang Huang, Mengwei Xu, Xuanzhe Liu
Peking University, Beijing University of Posts and Telecommunications
ASPLOS 2025
Presenter: wzw
Date: 2026-04-06
decode-bound,而是 prefill-bound。INT8 MatMul 主路径推给手机 NPU。22.4x prefill speedup、30.7x energy saving,1024-token 场景最高 43.6x 提速。
88.3%–98.8%(CPU)。54.2%–91.7%;随着 prompt 变长,占比还会继续上升。| 路径 | 数据类型 | 延迟 | 含义 |
|---|---|---|---|
| NPU | INT8 | 0.9 ms |
baseline |
| CPU | INT8 | 4.2 ms |
慢 4.6x |
| GPU | FP16 | 1.7 ms |
慢 1.9x |
| NPU | FP16 | 252 ms |
慢 193x |
360 ms,graph optimization 约 11.54 s;若每个 prompt length 都重编译,系统直接不可用。
W8A8 量化,预构建 fixed-length chunk graphs,离线 profile outlier 与子图时延。Linear/FFN 走 NPU,Attention/LayerNorm/outlier compensation 走 CPU/GPU,再用调度把 bubble 压缩掉。
144 个子图里有 120 个可以共享。prompt=1024、chunk=256 时,chunk-sharing graph 最多可减少 75% 内存,即 7.2 GB。chunk length 选为 256,平衡 NPU 利用率与 padding 浪费。
per-group MatMul,而是把超出量化范围的极少数 activation outlier 抽出,交给 CPU/GPU 补算。W8A8 MatMul,从而避免 group quantization 在手机 NPU 上的巨大低效。
0.1%–0.3% channel 含 outlier,也就是约 5–15 个通道。29.7% end-to-end latency 和 20.1% energy。34.3%。
37%。chunk=256 切分请求。Linear/FFN 等 INT8-friendly 子图送入 NPU;Attention/Norm/outlier 走 CPU/GPU。| 项目 | 结果 | 含义 |
|---|---|---|
| 代码实现 | 10K+ C/C++/asm |
强工程系统 |
| 总内存 | 最多 1.32x baseline |
不是轻量部署 |
| shadow 额外内存 | 0.6%–1% 总内存 |
算法本身开销小 |
| GPU-NPU 协同 | E2E 再降 80–90 ms |
但当前未完整实现 |
| 适配性 | 绑定 QNN + Hexagon |
跨平台迁移有成本 |
Snapdragon 8 Gen 3, 24GB) 与 Redmi K60 Pro (Snapdragon 8 Gen 2, 16GB)。Qwen1.5-1.8B, Gemma-2B, Phi-2-2.7B, LLaMA-2-7B, Mistral-7B。llama.cpp, MNN, TFLite, MLC-LLM, PowerInfer-v2。LAMBADA/MMLU/WinoGrande/OpenBookQA/HellaSwag。chunk=256,outlier pruning rate=85%,decode 仍走 MLLM CPU backend。
llama.cpp-CPU / MNN-CPU / MLC-GPU / TFLite-GPU 可达 7.3x–43.6x speedup。PowerInfer-v2,仍有 3.28x–5.6x 优势,说明赢点不是 “用了 NPU” 本身,而是三层重构。
llama.cpp-CPU / MLC-GPU / TFLite-GPU 可节能 1.85x–59.52x。1.4x–32.8x。PowerInfer-v2/TFLite 只剩约 1.1x 优势。-1.2% / -0.0% / -0.1% / -0.5% / +0.2%。SmoothQuant 平均可掉 -5.1% 到 -14.9%,K-Quant 最差平均可到 -31.3%。
2.55x–2.68x,说明这不是“把算子搬去 NPU”就自然成立的系统。chunk-sharing graph 贡献 1.46x–5.09x,shadow outlier 再给 3.91x–8.68x。out-of-order execution 继续把 prefill latency 降 18%–44%,负责榨干异构协同效率。Qualcomm Hexagon + QNN,整体内存最高仍有 1.32x。prefix cache / KV cache / speculative decoding。