Vec-LUT: Vector Table Lookup for Parallel Ultra-Low-Bit LLM Inference on Edge Devices

📄 arXiv: 2512.06443v1 📥 PDF

作者: Xiangyu Li, Chengyu Yin, Weijun Wang, Jianyu Wei, Ting Cao, Yunxin Liu

分类: cs.DC, cs.AI

发布日期: 2025-12-06

备注: Preprint

🔗 代码/项目: GITHUB


💡 一句话要点

提出Vec-LUT,解决边缘设备上超低比特LLM并行推理的内存带宽瓶颈。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 低比特量化 边缘计算 大型语言模型 查找表 并行推理 内存带宽优化 向量化 llama.cpp

📋 核心要点

  1. 现有基于查找表(LUT)的超低比特LLM推理在并行处理多token时,存在内存带宽利用率不足的问题。
  2. Vec-LUT通过构建跨并行token的统一LUT,实现单次$1 ightarrow N$查找,从而优化内存访问模式。
  3. 实验表明,Vec-LUT在多个边缘设备和LLM上,相比现有技术实现了高达4.2倍的性能提升。

📝 摘要(中文)

大型语言模型(LLM)越来越多地部署在边缘设备上。为了满足严格的资源约束,实际部署已将LLM量化从8比特推进到4比特、2比特,乃至1.58比特。结合基于查找表(LUT)的推理,CPU运行这些超低比特LLM的速度甚至超过了NPU,为无处不在的设备端智能开启了新的机遇。然而,本文发现,在预填充、测试时缩放和其他多token场景所需的并行推理期间,基于LUT的推理未能充分利用内存带宽。根本原因是标量LUT范式,它为每个token执行重复且非连续的内存访问。为了解决这个问题,我们提出了向量LUT,一种新的查找范式,它构建了一个跨并行token的统一LUT,并为每个索引执行单个$1 ightarrow N$查找。为了高效地实现它,我们进一步引入了(1)向量LUT中心化的张量布局,以及(2)缓存感知流式查找技术。在3个LLM的5个边缘设备上的评估表明,Vec-LUT的性能优于最先进的基线,最高可达4.2倍。我们的实现已集成到llama.cpp中。代码可在https://github.com/Cipherxzc/vlut.cpp 获得。

🔬 方法详解

问题定义:论文旨在解决在边缘设备上进行超低比特量化LLM并行推理时,由于传统标量LUT方法导致的内存带宽利用率不足的问题。现有方法在处理多个token时,需要对每个token进行重复且非连续的内存访问,造成了严重的性能瓶颈。

核心思路:论文的核心思路是将标量LUT范式改进为向量LUT范式。通过构建一个跨多个并行token的统一LUT,将多次独立的查找操作合并为一次向量化的查找操作,从而减少了内存访问次数,提高了内存带宽的利用率。这种设计能够更有效地支持预填充、测试时缩放等多token场景。

技术框架:Vec-LUT的整体框架包括两个关键组件:向量LUT中心化的张量布局和缓存感知流式查找技术。首先,重新组织张量数据,使其更适合向量化查找。然后,利用缓存感知的流式查找技术,进一步优化内存访问模式,减少缓存未命中,提高查找效率。该框架与现有的llama.cpp集成,易于部署和使用。

关键创新:Vec-LUT最重要的技术创新在于将标量LUT范式扩展到向量LUT范式。与传统方法为每个token单独查找LUT不同,Vec-LUT为多个token构建统一的LUT,并通过一次查找操作获取所有token对应的结果。这种向量化查找方式显著减少了内存访问次数,提高了并行推理的效率。

关键设计:向量LUT中心化的张量布局是关键设计之一,它确保了相邻token的数据在内存中也是连续存储的,从而方便进行向量化查找。缓存感知流式查找技术则通过预取数据和优化内存访问顺序,减少了缓存未命中,进一步提高了查找效率。具体的参数设置和网络结构与底层LLM模型相关,Vec-LUT主要关注查找表的设计和优化。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,Vec-LUT在多个边缘设备和LLM上均取得了显著的性能提升。例如,在某些设备上,Vec-LUT的推理速度比最先进的基线方法提高了高达4.2倍。此外,Vec-LUT的实现已成功集成到llama.cpp中,证明了其易用性和实用性。这些结果表明Vec-LUT是边缘设备上超低比特LLM推理的一种有效解决方案。

🎯 应用场景

Vec-LUT技术可广泛应用于资源受限的边缘设备上,例如智能手机、物联网设备和嵌入式系统,加速这些设备上LLM的推理速度。这使得在本地设备上运行复杂的AI模型成为可能,从而提高用户隐私,降低延迟,并支持离线应用。该技术对于需要快速响应和低功耗的应用场景尤为重要,例如实时语音识别、智能助手和本地化搜索。

📄 摘要(原文)

Large language models (LLMs) are increasingly deployed on edge devices. To meet strict resource constraints, real-world deployment has pushed LLM quantization from 8-bit to 4-bit, 2-bit, and now 1.58-bit. Combined with lookup table (LUT)-based inference, CPUs run these ultra-low-bit LLMs even faster than NPUs, opening new opportunities for ubiquitous on-device intelligence. However, this paper identifies that LUT-based inference underutilizes memory bandwidth during parallel inference, which is required for prefilling, test-time scaling, and other multi-token scenarios. The root cause is the scalar LUT paradigm, which performs repetitive and non-contiguous memory accesses for each token. To solve the issue, we propose vector LUT, a new lookup paradigm that constructs a unified LUT across parallel tokens, and performs a single $1 \rightarrow N$ lookup per index. To realize it efficiently, we further introduce (1) Vector LUT-Centric Tensor Layout, and (2) Cache-Aware Streamed Lookup techniques. Evaluations on 5 edge devices across 3 LLMs show that Vec-LUT outperforms state-of-the-art baselines by up to $4.2\times$. Our implementation is integrated into llama.cpp. The code is available at https://github.com/Cipherxzc/vlut.cpp.