TileFuse: A Fused Mixed-Precision Kernel Library for Efficient Quantized LLM Inference on AMD NPUs
本文介绍了 TileFuse,这是一个针对 AMD XDNA2 NPU 的近底层混合精度算子库,它通过融合解包、反量化和矩阵运算,实现了对流行的 AWQ 式量化 LLM 推理的高效原生支持,在客户端边缘设备上相比现有基准方案取得了显著的性能和能效提升。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你的车库里停着一辆全新的、超高速的送货卡车(NPU),但你手里唯一的地图(软件)却是在教你如何骑一辆慢悠悠的老旧自行车。你无法使用这辆卡车的速度,因为地图并不知道如何引导它行驶在专属车道上。
这就是目前在新型笔记本电脑芯片上运行现代人工智能聊天机器人(LLM)时面临的问题。这些芯片拥有强大的“AI引擎”(NPU),旨在节省电池并提高速度,但目前的软件通常会迫使 AI 改变自己的形状来适应引擎,而不是让引擎去适应 AI。
TileFuse 是一套旨在解决这一问题的全新工具。它就像是为这辆卡车专门建造了一条定制的高速公路,让它能够运载沉重的压缩数据,而无需中途停下来重新打包。
以下是论文如何使用简单的类比来解释这一解决方案的:
1. 问题所在:“重新打包”的瓶颈
通常,为了在这些新芯片上运行 AI,你必须将 AI 的“压缩”权重(就像是将书紧凑地装进一个小手提箱)拆解成一种笨重的格式(比如把书拿出来平铺在桌子上),以便芯片能够读取。
- 旧方法: 芯片读取手提箱,把书拆出来,再把它们放进另一个不同的手提箱,然后才开始阅读。这既浪费时间又浪费能量。
- TileFuse 的方式: 芯片读取手提箱,在打开箱子的同时进行拆解,并在拆解的过程中直接进行阅读。它在一个流畅的动作中完成了所有工作。
2. 解决方案:“融合”算子(Fused Kernels)
作者创建了一个名为 TileFuse 的库。你可以把一个“算子”(Kernel)理解为给芯片的一份特定的说明书。
- 融合(Fusion): 与其使用三个独立的工人(一个负责拆包,一个负责转换,一个负责计算),TileFuse 将它们合并为一个“超级工人”。这个工人一边抓取压缩数据,一边即时进行转换,并同时完成数学运算。
- 结果: 这就像一位厨师不仅是在切菜,而是在切菜、调味和烹饪的过程中一气呵成。论文声称,对于某些任务,这种方式比旧方法快了多达 2.8 倍。
3. “交错式”布局:组织仓库
大型 AI 模型拥有海量的数字列表(权重)。芯片的内存系统有一个限制,即它能触及数据的距离。如果数据存储方式杂乱无章,芯片就必须进行长距离且缓慢的移动才能获取下一块数据。
- 类比: 想象一个仓库,里面的箱子堆放得乱七八糟。叉车必须行驶 50 英尺才能拿到下一个箱子。
- TileFuse 的修复方案: 他们重新排列了仓库(称为“交错式预分块/Interleaved Pre-tiling”),使得叉车接下来需要的箱子紧挨在一起。这使得芯片可以一次性平滑地抓取巨大的数据块,从而支持此前无法容纳的更大规模 AI 模型(高达 32,000 项宽度)。
4. “GEMV”问题:交通拥堵
AI 聊天机器人的工作分为两个阶段:
- 预填充(Prefilling): 一次性阅读长提示词(就像读完一整本书)。这对卡车来说很快也很容易。
- Token 生成(Token Generation): 一个词一个词地编写(就像写句子)。这很慢且很棘手。
- 问题: 在编写单词的过程中,芯片的“卡车”经常处于闲置状态,因为它设计的初衷是运载大件货物,而非小件。这就像是用半挂卡车去递送一封信;引擎在运转,但卡车却是空的。
- 修复方案: TileFuse 重新设计了这一阶段的交通流。它不再将数据发送到单一的车道,而是同时将工作分配到芯片的所有 32 条车道上。这确保了即使在“负载”很小时,整个引擎也能保持忙碌状态。
5. 现实世界的测试结果
团队在真实的 AMD 笔记本电脑(Ryzen AI)上进行了测试,并将结果与使用其标准图形卡(iGPU)的情况进行了对比。
- 速度: 对于阅读长提示词(预填充阶段),带有 TileFuse 的 NPU 比图形卡快了多达 2 倍。
- 电池: 由于 NPU 效率更高,完成同样的工作所消耗的能量减少了 64%。
- 代价: 在逐个生成单词(Token 生成)时,NPU 有时比图形卡慢。这是因为对于如此微小且快速的任务,配置 NPU 的“准备时间”过长。
- 混合方案: 论文建议采用“两全其美”的方法:利用 NPU 进行重型作业(阅读长提示词),并利用图形卡处理快速任务(生成单词)。这种组合能提供最佳的速度和电池续航表现。
总结
TileFuse 是一座桥梁。它采用了开发者已经广泛使用的流行压缩 AI 格式(如 AWQ),并让这些格式能够在无需更改 AI 模型本身的情况下,原生运行在 AMD 的新型 AI 芯片上。通过将拆解步骤与数学运算融合,优化数据组织,并充分利用芯片的全通道能力,它让在笔记本电脑上运行 AI 变得更加快速且更具能效。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。