flashinfer-ai/flashinfer

FlashInfer: Kernel Library for LLM Serving

FlashInfer – 用于 LLM 推理的高性能 GPU 内核

是什么

  • 一个 C++/CUDA 库(附带 Python 包),提供一系列为服务大型语言模型(LLM)所需核心操作而高度优化的 GPU 内核。重点关注注意力、矩阵乘法(GEMM)、专家混合(MoE)路由、采样以及一些辅助操作。

为何重要

  • LLM 推理通常受限于注意力和 GEMM 内核的速度,尤其是在处理大量并发请求(预填充 + 解码)或使用低精度格式(FP8/FP4)时。FlashInfer 集成了多个后端实现(FlashAttention-2/3、cuDNN、CUTLASS、TensorRT-LLM),并能自动为您的 GPU 选择最快的一个,从而在从 Turing GPU(RTX 20)到最新 Blackwell 芯片的各类硬件上实现“业界领先”的吞吐量。

主要功能

领域 FlashInfer 提供的内容
注意力 • 动态批处理的分页/不规则 KV 缓存
• 针对预填充、解码和混合(POD)工作负载的独立内核
• 支持 DeepSeek MLA、级联(分层)注意力、块稀疏模式以及自定义可 JIT 编译变体
GEMM / 线性 BF16、FP8、FP4 矩阵乘法;LoRA/MoE 用的分组 GEMM;Blackwell 专用的 NVFP4/MXFP4 内核
专家混合(MoE) 支持多种路由算法(DeepSeek-V3、Llama-4、top-k)和量化专家权重的融合 MoE 内核
采样 / 解码 无需排序的 top-k / top-p / min-p 采样;支持推测性解码
通信 用于分布式推理的自定义 AllReduce、多节点 NVLink(MNNVL)和 NVSHMEM 集成
其他操作 RoPE(含 LLaMA 3.1)、融合 RMSNorm/LayerNorm、融合 SiLU/GELU 激活

硬件支持

  • 支持从 Turing(SM 7.5)开始的所有 NVIDIA GPU。特定内核针对 Ampere、Ada Lovelace、Hopper 以及最新的 Blackwell 架构进行了优化,低精度(FP8/FP4)路径仅在后两者中支持。

如何使用

  1. 安装 Python 轮子:pip install flashinfer-python(可选的额外轮子提供预编译内核或 JIT 缓存模拟器)。
  2. 调用高级 API,例如 flashinfer.single_decode_with_kv_cache(q, k, v) 用于单次解码注意力步骤,或使用更丰富的批量 API 进行预填充。
  3. 该库可与 PyTorch 的 torch.compile 和 CUDA Graphs 集成,可嵌入低延迟服务栈中。

生态系统采用情况

  • 已集成到多个主流开源推理服务器中,包括 vLLM、TensorRT-LLM、HuggingFace Text Generation Inference、SGLang、MLC-LLM、LightLLM、Lorax 和 ScaleLLM。

文档与社区

何时选择 FlashInfer

  • 您需要在 NVIDIA GPU 上获得尽可能快的注意力/GEMM 内核,特别是当您处理混合预填充-解码工作负载、希望使用低精度(FP8/FP4)推理或在最新的 Blackwell 硬件上运行时。它是现有基于 PyTorch 的服务器所用注意力内核的即插即用替代品。

以上所有细节均直接取自仓库的 README。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目