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)路径仅在后两者中支持。
如何使用
- 安装 Python 轮子:
pip install flashinfer-python(可选的额外轮子提供预编译内核或 JIT 缓存模拟器)。 - 调用高级 API,例如
flashinfer.single_decode_with_kv_cache(q, k, v)用于单次解码注意力步骤,或使用更丰富的批量 API 进行预填充。 - 该库可与 PyTorch 的
torch.compile和 CUDA Graphs 集成,可嵌入低延迟服务栈中。
生态系统采用情况
- 已集成到多个主流开源推理服务器中,包括 vLLM、TensorRT-LLM、HuggingFace Text Generation Inference、SGLang、MLC-LLM、LightLLM、Lorax 和 ScaleLLM。
文档与社区
- 完整文档见 https://docs.flashinfer.ai,另有 Slack 社区和 GitHub 讨论论坛。CI 标签显示在 CUDA 版本(12.9、13.0、13.4)上的持续测试情况。
何时选择 FlashInfer
- 您需要在 NVIDIA GPU 上获得尽可能快的注意力/GEMM 内核,特别是当您处理混合预填充-解码工作负载、希望使用低精度(FP8/FP4)推理或在最新的 Blackwell 硬件上运行时。它是现有基于 PyTorch 的服务器所用注意力内核的即插即用替代品。
以上所有细节均直接取自仓库的 README。
相关
- 项目
- 项目
- 项目
- 项目
- 项目