正文
项目主页:https://flashinfer.ai/
GitHub 仓库:https://github.com/flashinfer-ai/flashinfer
Transformer 结构以注意力机制(Attention Mechanism)为核心,是大型语言模型(Large Language Models,LLMs)的基础。随着模型规模的不断扩大,高效的 GPU 注意力计算模块(attention kernel)对于实现高吞吐和低延迟(即更快、更高效)的推理至关重要。面对多样化的 LLM 应用场景,亟需灵活且高性能的注意力解决方案。
研究团队提出了「FlashInfer」:一款可定制且高效的注意力推理引擎,专为 LLM 部署优化设计。其主要特点如下:
经过内核级(kernel-level)及端到端(end-to-end)的完整评估,FlashInfer 在多种推理场景下显著提升了计算性能:与当前最先进的 LLM 部署方案相比,FlashInfer 在 token 间延迟方面提高显著,相较通用编译器后端,能减少 29% 至 69% 的 inter-token 延迟;在长上下文推理任务中延迟降低 28% 至 30%;在并行生成场景下,推理速度提升达 13% 至 17%。
系统设计
FlashInfer 系统设计概览:在编译时提供注意变量规范、任务信息和键值缓存布局细节,用于 JIT 编译;在运行时输入序列长度信息,用于动态调度。
近年来,为提升内存效率,KV-Cache 存储机制(如 PageAttention、RadixAttention)开始采用
非连续内存布局
,以块或 token 为最小存储单元。
FlashInfer 证明,这些不同的非连续 KV-Cache 数据结构都可以
统一抽象建模为块稀疏矩阵格式
(
如图 2 所示
)。
在此基础上,FlashInfer 进一步引入组合式稀疏格式(Composable Sparse Formats)来提升内存效率。与单一固定块大小的格式不同,组合式格式允许在同一稀疏矩阵中灵活采用多种块稀疏形式,从而显著提高内存利用率。
单一块格式的局限在于其固定大小(特别是行块大小 Br)导致的碎片化风险和共享内存互访限制。组合式格式则可以根据数据特征(如共享前缀形成逻辑上的稠密子矩阵)选用合适的块形式(例如为稠密子矩阵选用较大的 Br)。
如图 3 所示,这种方式无需数据移动,仅通过索引即可实现基于共享内存的高速访问,进一步优化内存效率。