摘要
本文解读 MLSys 2026 论文《IntAttention: A Fully Integer Attention Pipeline for Efficient Edge Inference》。该论文提出IntAttention 全整数注意力流水线,通过融合整数域裁剪(IndexSoftmax)、32 项 LUT 查找表与整数归一化,以端到端整数数据流替代浮点 softmax,其特别之处在于训练无关、即插即用,无需量化感知训练或校准。实验表明在 ARMv8 平台(RK3588S2 / Apple M2)上最高实现 3.7× 延迟加速与 61% 能耗下降,语言与视觉模型精度贴近 FP16 基线,为边缘 LLM 推理优化提供了重要借鉴。
视频讲解:点击观看 B 站视频
论文基本信息
| 项目 | 内容 |
|---|---|
| 标题(英文) | IntAttention: A Fully Integer Attention Pipeline for Efficient Edge Inference |
| 标题(中文) | 全整数注意力流水线:边缘推理的高效部署 |
| 作者 | Wanli Zhong, Haibo Feng, Zirui Zhou, Hanyang Peng, Shiqi Yu |
| 机构 | 南方科技大学 计算机科学与工程系 · 鹏城实验室 |
| 会议 | MLSys 2026 |
| arXiv | https://arxiv.org/abs/2511.21513 |
| 项目网站 | https://github.com/WanliZhong/IntAttention |
背景与动机:为什么量化之后 softmax 反而成了瓶颈?
Transformer 模型在边缘设备上的部署受限于延迟与能耗预算。INT8 整数量化能有效加速 QK 与 PV 两个矩阵乘法,但问题随之而来:attention 中剩下的 softmax 路径成为新的主导瓶颈。论文实测表明,在 GEMM 切换到 INT8 之后,dequantize → softmax → requantize 这条绕路的耗时占比从 FP32 的 13–19%、FP16 的 23–30%,直接飙升至 57–65%——因为矩阵乘法被加速了,而 softmax 路径几乎没变。下图是论文的实测占比曲线:
图 1:dequantize→softmax→requantize 路径耗时占比:GEMM 切到 INT8 后升至 57–65%,成为主导瓶颈
现有工作各有短板(三条技术路线):
- 硬件协同设计:Softermax 用 $2^x$ 替换 $e^x$ 并用定点移位器,ConSmax 用训练常数 + 查表——吞吐与能耗优秀,但只工作在专用加速器上,需要改算子。
- 输入感知量化与 LUT 方法:EXAQ 用动态最优裁剪把注意力分数压到 2–3 bit,TurboAttention 用 LUT + 三阶多项式近似指数——可直接部署,但归一化(求和与除法)仍留在高精度浮点,数据流是混合精度的,依旧拖累边缘 CPU。
- 全整数 softmax:I-BERT(整数多项式)、I-ViT 的 Shiftmax(移位 + 加法)、I-LLM 的 DI-ClippedSoftmax——真正全整数,但依赖量化感知训练或校准恢复精度,无法直接替换预训练模型。
GPU 侧的 FlashAttention / SageAttention 系列通过大规模并行与专用浮点硬件隐藏 softmax 开销,但边缘设备缺乏高吞吐浮点单元与深度 warp 并发。同时满足"全整数、免训练、通用边缘 CPU 可部署"三要素的工作,IntAttention 是第一个。其思路是把 dequantize → softmax → requantize 绕路整体移除:从 QK 乘法的 INT32 logits 直接产出 UINT8 概率矩阵,喂给整数 PV 内核,全程不碰浮点。
研究主线:从问题到结论
图 2:IntAttention 研究主线:从边缘部署瓶颈(softmax 占 57–65%)到全整数流水线结论(3.7× 加速 / 61% 节能)(Mermaid 流程图)
基准/方法设计:IndexSoftmax 的三个机制
IntAttention 的核心是 IndexSoftmax:一个硬件友好的整数 softmax 替代算子,由三个耦合机制组成——整数域裁剪、LUT 指数近似、整数归一化。它们联合设计而非独立模块,从而做到少 pass、无全局统计、SIMD 并行友好。下图对比了常规量化注意力与 IntAttention 的数据流:
图 3:常规量化注意力在 softmax 阶段回退浮点;IntAttention 从 QK^T 到 PV 保持端到端整数数据流
机制一:稀疏感知的整数域裁剪。 指数函数具有天然稀疏性:输入越负,$\exp(\cdot)$ 越接近零,绝大多数 logits 对归一化贡献可忽略。论文对整数 logits 做行内最大值减法 $\hat{\boldsymbol{\Delta}}=\mathrm{rowMax}(\hat{\mathbf{A}})-\hat{\mathbf{A}}$,再用量化尺度对齐的阈值截断近零项:$c_{\text{int}}=\lfloor c\sqrt{d}/(s_Q s_K)\rceil$,$\hat{\boldsymbol{\Delta}}'=\min(\hat{\boldsymbol{\Delta}},c_{\text{int}})$。这一方面移除了近零项的冗余计算与访存,另一方面把所有指数输入约束到 $[0,c]$ 紧致区间,为查表做好准备。
机制二:固定 LUT 指数近似。 裁剪后指数输入落在有限区间,可以预计算一张 $2^b$ 项的查找表,运行时一次 gather 完成指数近似:$\mathrm{LUT}[i]=\exp(-c\,i/(2^b-1))$(最后一项强制为 0),整张表量化到 UINT8(×255),索引由截断距离线性映射:$\mathrm{idx}=\lfloor\hat{\boldsymbol{\Delta}}'\cdot(2^b-1)/c_{\text{int}}\rceil$。推荐超参数 $(b,c)=(5,6.6)$:32 项表、离线选定,运行时零动态统计开销。
机制三:整数归一化 + UINT8 概率域。 用 32 位累加器做行求和,定点缩放直接产出 8-bit 概率:$\hat{\mathbf{P}}=\lfloor 255\cdot\hat{\mathbf{E}}/\mathrm{rowSum}(\hat{\mathbf{E}})\rceil$。与常见的 ×127 有符号 INT8 不同,论文采用 ×255 无符号 UINT8,把表示范围全部用于概率矩阵天然所在的 $[0,1]$ 区间:余弦相似度从 0.9966 提升到 0.9991,相对 L1 误差从 0.077 降到 0.041。
分类全景:量化注意力的三条加速路线
图 4:量化注意力 softmax 加速的三条路线与本工作定位:硬件协同、LUT+输入感知、全整数(Mermaid 流程图)
三条既有路线分别牺牲了"通用硬件""全整数数据流""免训练"中的一个属性;IntAttention 位于三者交汇处。
方法细节:全整数流水线的完整数据流
图 5:IntAttention 流水线总览:消除 dequantize/requantize 绕路,注意力在整数域内完成
完整数据流为:Q/K/V 按 per-tensor 对称 INT8 量化 → QK 乘法以 INT8×INT8 + INT32 累加执行 → INT32 logits 进入 IndexSoftmax(裁剪 → LUT gather → 整数归一化)→ 产出 UINT8 概率矩阵 $\hat{\mathbf{P}}$ → PV 乘法以整数执行 → 最终反量化恢复浮点输出。运行路径上没有任何浮点运算,只需加法、乘法、移位与查表四类通用整数原语,天然适配 ARM NEON / dot / I8MM 指令集。
两个设计要点:
- 量化粒度兼容:默认 per-tensor;切换 per-channel / per-block 时,只需按分组计算 $c_{\text{int}}^{(g)}=\lfloor c/\alpha^{(g)}\rceil$ 并对组内做裁剪,LUT 与归一化流程不变,全局共享同一张表。
- 与主流量化的正交性:剩余的精度损失主要来自 Q/K/V 量化本身而非 softmax 近似;与 SageAttention 系列的输入平滑、per-block 尺度正交组合可进一步缩小差距。
实验设计与结果
评测协议
- 语言模型:Llama-3.2-1B、OPT-1.3B、Qwen3-1.7B;WikiText 困惑度 + HellaSwag / LAMBADA / PIQA / WinoGrande / ARC-C / ARC-E 平均精度。
- 视觉模型:DeiT-B-224、ViT-L-P16-384、CaiT-L-M48-448;ImageNet Top-1 / Top-5。
- 鲁棒性:Llama-3.2-1B 长上下文(C4 / OpenWebText-10k / RedPajama);Instruct 版 GSM8K / HumanEval / MBPP / IFEval。
- 硬件:RK3588S2 嵌入式板与 Apple M2 笔记本(ARMv8,各 8 线程,Arm Compute Library 52.4.0),序列长度 1K–16K,$d=128$,对比 FP32 / FP16 / INT8 Quant-Only / IntAttention 四条流水线。
效率主表:端到端注意力延迟(ms)
| 方法 | RK3588S2 1K | RK3588S2 16K | M2 1K | M2 16K |
|---|---|---|---|---|
| FP32 | 12.57 | 2279.96 | 2.81 | 529.40 |
| FP16 | 10.96 | 1677.49 | 2.08 | 398.39 |
| Quant-Only | 5.96 | 1279.94 | 1.61 | 341.70 |
| IntAttention | 2.95 | 794.36 | 0.87 | 142.50 |
RK3588S2 上 IntAttention 比 FP16 快 2.1–3.7×、比 Quant-Only 快 1.6–2×;Apple M2 上比 FP16 快 2.4–2.8×。序列越长,省下的转换与访存开销越可观。
图 6:RK3588S2 上不同序列长度的注意力吞吐(GFLOP/s):IntAttention 全程最优
图 7:归一化单次迭代能耗(FP16 为基准):IntAttention 全序列长度持续最低
能耗方面,IntAttention 每轮迭代只消耗 FP16 基线的 39.18%(即 61% 下降),比 Quant-Only 再低 37%——来源是移除反量化/重量化的内存流量、查表替代浮点指数、以及整数指令本身的低功耗。
精度:贴近 FP16,压过 Quant-Only
| 模型 | 指标 | FP16 | Quant-Only | IntAttention |
|---|---|---|---|---|
| Llama-3.2-1B | WikiText PPL↓ | 12.663 | 13.701 | 13.070 |
| OPT-1.3B | WikiText PPL↓ | 16.413 | 18.323 | 16.802 |
| Qwen3-1.7B | WikiText PPL↓ | 23.013 | 32.945 | 27.751 |
| 视觉平均 | Top-1↑ | 84.507 | 83.707 | 84.383 |
语言侧:Llama-3.2-1B 平均精度 59.92% 反超 FP16(59.76%);视觉平均 Top-1 与 FP16 仅差 0.12pp。鲁棒性上,IndexSoftmax 在长上下文 C4 困惑度 30.02(EXAQ-INT3 为 32.41),推理/指令平均 35.02(EXAQ-INT3 为 29.67)。
超参数与稳定性(附录 D / E)
图 8:联合超参数热图:左 Llama-3.2-1B/WikiText PPL,右 DeiT-B/ImageNet Top-1;深绿区为高保真区域
仅有的两个超参数(裁剪阈值 $c$、LUT 分辨率 $b$)在 $b\ge4$、$c\in[5.5,7.7]$ 区间内构成宽稳定平台,两模态一致在 $c\approx6.6$ 出现最优山脊。稳定性压测(OpenWebText、8K 上下文)显示:最坏 token loss 26.50(FP16 为 26.61),零 NaN/Inf 事件。
与 EXAQ 的对比(附录 F)
同一 32 字节内存预算下,EXAQ 的 INT3 LUT 只能编码 8 个指数值,而 IndexSoftmax 存储 32 项 UINT8,分辨率高 4×,且无需动态裁剪与全局统计;标准基准上 IndexSoftmax 平均精度反超 EXAQ-INT3(Llama-3.2 59.75% vs 58.33%)。
图 9:同内存预算下 IndexSoftmax 比 EXAQ 提供 4× 更高的 LUT 分辨率
结果对比总结
图 10:结果对比总结:3.7× 加速、能耗再降 37%、平均精度反超 EXAQ-INT3(Mermaid 流程图)
关键发现
- 瓶颈重定位:INT8 GEMM 加速后,
dequantize→softmax→requantize路径占比升至 57–65%;IntAttention 将其压缩到 14–22%,瓶颈回到 QK/PV GEMM。 - 延迟:RK3588S2 上最高 3.7×(16K 序列 1677.49ms → 794.36ms);Apple M2 上最高 2.8×。
- 能耗:仅为 FP16 的 39.18%(61% 下降),比 Quant-Only 再低 37%。
- 精度:Llama-3.2-1B 平均精度 59.92% 反超 FP16(59.76%);视觉平均 Top-1 84.383 贴近 FP16 的 84.507、压过 Quant-Only 的 83.707。
- 鲁棒性:8K 上下文压测零 NaN/Inf,最坏 token loss 低于 FP16;长上下文与推理基准显著优于 EXAQ-INT3。
- LUT 分辨率:同内存预算下 4× 于 EXAQ(32 项 vs 8 项),免动态统计,超参数 $(5, 6.6)$ 宽平台内零调参。
局限性
- Qwen3-1.7B 敏感:注意力量化仍带来可见退化(PPL 27.75 vs FP16 23.01),IndexSoftmax 只能缩小差距——剩余损失主要来自 Q/K/V 量化本身。
- 8-bit 表示上限:概率矩阵与 LUT 均为 UINT8,精度受 8-bit 表示的固有约束。
- per-tensor 默认:更细粒度量化需要分组记账,实现复杂度上升。
- 瓶颈转移:softmax 优化后 QK/PV GEMM 重新成为主要耗时,未来需要更强的整数 GEMM 内核与低比特硬件支持;作者建议与输入平滑、per-block 量化正交组合进一步提精度。
常见问题(FAQ)
IndexSoftmax 为什么可以免训练直接替换?
因为它是纯算子级替换:只把"指数 + 归一化"改为"裁剪 + 查表 + 定点缩放",不改变注意力结构、不引入可训练参数。预训练模型的权重全部冻结,任何已量化的注意力流水线把 softmax 换成 IndexSoftmax 即可生效,无需量化感知训练或校准。
为什么 GEMM 量化后 softmax 反而占 57–65% 延迟?
INT8 量化把 QK/PV 两个矩阵乘法大幅加速后,softmax 路径(反量化、浮点指数、归一化、重量化)的绝对耗时几乎不变,于是占比从 FP32 下的 13–19% 相对膨胀到 57–65%。边缘 CPU 浮点单元吞吐低,$O(L^2)$ 的指数与除法无法被并行度掩盖,成为新的主导成本。
IntAttention 和 EXAQ 有什么区别?
EXAQ 用动态最优裁剪(依赖 per-tensor 统计)把注意力分数量化到 2–3 bit,查找表只有 8 个采样点,且归一化仍在浮点;IntAttention 用固定超参数 $(b,c)=(5,6.6)$、32 项 UINT8 表(同预算 4× 分辨率),归一化也在整数域完成,运行时无全局统计开销。
支持哪些硬件?
任何支持整数 SIMD 的通用处理器:论文实测 RK3588S2(NEON + dot)与 Apple M2(NEON + I8MM),基于 Arm Compute Library;算法本身只依赖加、乘、移位、查表四类原语,可移植到其他 ARM/嵌入式 CPU。
为什么概率矩阵用 UINT8 而不是 INT8?
概率矩阵的值域天然是 $[0,1]$。有符号 INT8 的 ×127 缩放会浪费一半动态范围并畸变小概率值;UINT8 的 ×255 缩放把全部表示范围用于有效区间,余弦相似度从 0.9966 提升到 0.9991,RMSE 从 0.00239 降到 0.00124。
精度损失到底来自哪里?
主要来自 Q/K/V 的 INT8 量化本身,而非 softmax 近似:IndexSoftmax 单独替换时语言/视觉精度与 FP16 几乎一致(Llama-3.2 平均 59.75% vs FP16 59.76%)。作者建议与 SageAttention 式输入平滑和 per-block 量化结合以进一步收窄 QKV 量化损失。
参考链接
- IntAttention 论文(arXiv:2511.21513)
- IntAttention 官方开源代码(GitHub)
- EXAQ: Exponent-Aware Quantization for LLMs
- I-BERT: Integer-only BERT Quantization(ICML 2021)
- SageAttention: Accurate 8-Bit Attention for Plug-and-play Inference Acceleration
- TurboAttention: Efficient Attention Approximation for High Throughputs LLMs
给大家推荐一款自用写文献综述、无虚构文献的 AI:
🌟 复旦大学 FudanNLP 团队自研 切问学术
覆盖 3.6 亿篇可溯源真实中英文文献,能自动整合文献观点生成规范综述
还能挖掘研究创新点、复现实验,配合视频教学,新手快速上手文献综述写作
🍀后记🍀
博客的关键词集中在编程、算法、机器人、人工智能、数学等等,持续高质量输出中。
🌸讨论QQ群:白拾的小屋 (750365700)
⭐B站账号:白拾的物理AI组会(活跃于知识区和动画区)
✨GitHub主页:YhbCode000(工程文件)

414

被折叠的 条评论
为什么被折叠?



