
大模型深度学习算子库后端高性能计算【免费下载链接】flashinferFlashInfer: Kernel Library for LLM Serving项目地址https://gitcode.com/gh_mirrors/fl/flashinfer点击查看免费下载FlashInfer 是一个面向 LLM 推理服务的 GPU Kernel 库与内核生成器通过统一的 Attention、GEMM、MoE 等算子 API 与多后端调度覆盖从 TuringSM75到 BlackwellSM120的各类 GPU 架构。本文将基于仓库根目录 README.md 为主线结合仓库源码逐层讲解其核心能力、安装与包管理、CLI 工具、注意力算子用法、日志调试机制与生产化实践帮助读者快速完成从安装、验证到实际调用的完整闭环。FlashInfer 是什么定位与设计理念FlashInfer 是 a library and kernel generator for inference即既是 Kernel 库、又是内核生成器它针对 prefill、decode、混合批处理mixed batching等推理场景提供优化内核同时通过 JIT 机制按需生成与编译内核。其核心理念包括统一 APIAttention、GEMM、MoE、采样、通信等算子提供统一 Python 接口底层可切换到不同实现多后端自动调度FlashAttention-2/3、cuDNN、CUTLASS、TensorRT-LLM 等多个后端实现根据硬件与负载自动选择最优者低精度计算FP8 与 FP4 量化覆盖 attention、GEMM 与 MoE生产级设计兼容 CUDAGraph 与 torch.compile适配低延迟 serving 场景。从仓库结构可以推断这套库 生成器的架构在代码层面分为三层顶层 Python APIflashinfer/ 下的decode.py、prefill.py、sampling.py等、JIT 内核生成与编译框架flashinfer/jit/、以及底层 CUDA 内核源码csrc/ 与 include/flashinfer/。支持的 GPU 架构一览README 给出了完整的架构支持矩阵注意并非所有特性在所有算力上都可用架构Compute Capability示例 GPUTuringSM 7.5T4、RTX 20 系列AmpereSM 8.0、8.6A100、A10、RTX 30 系列Ada LovelaceSM 8.9L4、L40、RTX 40 系列HopperSM 9.0H100、H200BlackwellSM 10.0、10.3B200、B300BlackwellSM 11.0Jetson ThorBlackwellSM 12.0、12.1RTX 50 系列、DGX Spark当前仓库版本为0.7.1见 version.txtREADME 中提及 v0.4.0 开始引入 Blackwell 支持。在 JIT 编译层面目标架构由 flashinfer/jit/core.py 中的TARGET_CUDA_ARCHS维护flashinfer show-config会将其打印出来便于确认当前环境的编译目标。安装指南从快速安装到源码构建Quickstart一行命令安装pip install flashinfer-pythonflashinfer-python是核心包首次使用时编译或下载内核。为了加速初始化并支持离线使用README 建议安装可选的预编译内核包pip install flashinfer-python flashinfer install-cubin-wheel flashinfer install-jit-cache-wheel三种包的定位与分工包名作用flashinfer-python核心包首次使用时编译/下载内核flashinfer-cubin覆盖所有受支持 GPU 架构的预编译内核二进制flashinfer-jit-cacheCUDA 专用 shim安装对应架构的预构建内核 provider对于 BlackwellSM100上的 CuTe DSL 内核README 建议通过 CUDA 13 extra 安装pip install flashinfer-python[cu13]验证安装flashinfer show-config该命令会输出 FlashInfer 版本、flashinfer-cubin/flashinfer-jit-cache是否安装、Torch 版本与 CUDA 可用性、环境变量、artifacts 路径、已下载 cubin 数量以及模块编译状态见 flashinfer/main.py 中show_config_cmd的实现。从源码安装git clone https://github.com/flashinfer-ai/flashinfer.git --recursive cd flashinfer python -m pip install -v .开发模式使用 editable 安装python -m pip install --no-build-isolation -e . -v注意使用--no-build-isolation时 pip 不会自动安装构建依赖FlashInfer 需要setuptools77。若遇到AttributeError: module setuptools.build_meta has no attribute prepare_metadata_for_build_editable请先升级 pip 与 setuptoolspython -m pip install --upgrade pip setuptools可选包构建方式如下。先构建flashinfer-cubinpython -m build --no-isolation --wheel flashinfer-cubin python -m pip install flashinfer-cubin/dist/*.whl构建 JIT-cache provider 与 shim 时两者必须使用相同的版本设置。以 SM90a provider 为例export FLASHINFER_JIT_CACHE_PROVIDER_ARCH9.0a python -m build --no-isolation --wheel flashinfer-jit-cache-provider export FLASHINFER_JIT_CACHE_PROVIDER_ARCHS9.0a python -m build --no-isolation --wheel flashinfer-jit-cache python -m pip install \ flashinfer-jit-cache-provider/dist/*.whl \ flashinfer-jit-cache/dist/*.whlNightly 构建pip install -U --pre flashinfer-python --index-url https://flashinfer.ai/whl/nightly/ --no-deps pip install flashinfer-python # 从 PyPI 安装依赖 flashinfer install-cubin-wheel --nightly flashinfer install-jit-cache-wheel --nightlyCUDA 版本支持README 明确支持的 CUDA 版本为12.9、13.0 与 13.4PyTorch nightly。该列表与 flashinfer/main.py 中_SUPPORTED_JIT_CACHE_CUDA_VERSIONS保持同步源码注释要求与 ci/cuda-versions.json 一致并由 CLI 测试强制校验。需要说明的是CUDA 13.4 的 wheel 基于 preview toolkit 与 PyTorch nightly 构建运行时 CI 当前覆盖 12.9 与 13.0。CLI 工具详解配置、模块管理与开发辅助FlashInfer 的 CLI基于 click 实现见 flashinfer/main.py为安装、调试和开发提供了完整命令集# 验证安装并查看配置 flashinfer show-config # 列出与检查模块 flashinfer list-modules flashinfer module-status # 管理 artifacts 与缓存 flashinfer download-cubin flashinfer install-cubin-wheel flashinfer install-jit-cache-wheel flashinfer download-kernels flashinfer clear-cache # 为开发者导出 compile_commands.jsonIDE 集成 flashinfer export-compile-commands [output_path]除 README 列出的命令外从 flashinfer/main.py 还可以看到更多实用命令flashinfer collect-env导出完整环境报告FlashInfer/Torch/vLLM/SGLang/cuDNN 版本、GPU 与驱动属性、已加载 vs 已安装 GPU 库的区分支持--json输出适合粘贴进 bug 报告flashinfer list-cubins以表格形式列出各 cubin 的下载状态Downloaded / Missingflashinfer clear-cubin清空已下载的 cubin artifactsflashinfer install-jit-cache-wheel支持--mode all|minimal与--sm参数。minimal模式只安装可见 GPU或--sm sm80/sm90a/sm120f指定架构所需的 provider且不添加 baseline provider在无可见 GPU 的主机上必须显式传--smflashinfer generate-tactics-blocklist在本地 GPU 上探测并写出 tactics blocklist JSON供 autotuner 通过FLASHINFER_TACTICS_BLOCKLIST环境变量在运行时跳过已知无效的 tactics从而加速调优flashinfer replay从 API 日志 dump 目录重放 API 调用逐条比对输出是否一致用于日志驱动的回归调试。module-status与list-modules展示了 JIT 模块注册表jit_spec_registry的运行时状态模块按 aot/jit 分类报告已编译/未编译数量、源码文件数、是否需要 device linking 及创建时间若尚无模块注册会自动调用register_default_modules()注册默认模块。快速上手单请求 Decode 注意力README 给出了最简调用示例——单请求 decode attentionimport torch import flashinfer # 单次 decode attention q torch.randn(32, 128, devicecuda, dtypetorch.float16) # [num_qo_heads, head_dim] k torch.randn(2048, 32, 128, devicecuda, dtypetorch.float16) # [kv_len, num_kv_heads, head_dim] v torch.randn(2048, 32, 128, devicecuda, dtypetorch.float16) output flashinfer.single_decode_with_kv_cache(q, k, v)该 API 在 flashinfer/decode.py 中定义其完整签名从源码 docstring 整理为single_decode_with_kv_cache( q, k, v, kv_layout: str NHD, pos_encoding_mode: str NONE, use_tensor_cores: bool False, q_scale: Optional[float] None, k_scale: Optional[float] None, v_scale: Optional[float] None, window_left: int -1, logits_soft_cap: Optional[float] None, sm_scale: Optional[float] None, rope_scale: Optional[float] None, rope_theta: Optional[float] None, return_lse: bool False, ) - Union[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]关键参数语义如下均来自 flashinfer/decode.py 源码kv_layoutNHD默认或HND决定 k/v 张量的维度排列pos_encoding_modeNONE/ROPE_LLAMALLAMA 风格旋转位置编码/ALIBI默认NONEuse_tensor_cores是否使用 tensor core 计算对 GQA 大 group size 场景更快启用时内部会切换到get_single_prefill_module(fa2, ...)的 FA2 路径q_scale/k_scale/v_scaleFP8 输入的校准 scale未提供时默认 1.0q_scale/k_scale会乘入sm_scalewindow_left滑窗注意力的左含窗口大小-1表示全序列长度默认logits_soft_caplogits 软封顶值用于 Gemini、Grok、Gemma-2 等模型公式为logits_soft_cap × tanh(x / logits_soft_cap)默认 0 即不启用sm_scalesoftmax 缩放默认1 / sqrt(head_dim)rope_scale/rope_thetaRoPE 插值缩放与 theta默认 1.0 与 1e4return_lse是否返回注意力 logits 的 log-sum-exp 值为True时返回(output, lse)二元组。源码实现中函数首先做_check_pos_encoding_mode与_check_kv_layout校验随后根据use_tensor_cores走两条内核路径tensor core 路径调用 FA2 prefill 模块MaskMode.NON_CAUSAL非 tensor core 路径调用get_single_decode_module生成的单 decode JIT 模块。此外源码 docstring 明确num_qo_heads必须是num_kv_heads的倍数两者不等时自动退化为 Grouped Query Attention。在 tests/attention/test_batch_decode_kernels.py 中single_decode_with_kv_cache被用作批量 decode 测试的逐样本参考实现该文件还包含 Issue #541 的回归测试——验证single_decode_with_kv_cache与torch.compile(modereduce-overhead)的兼容性tests/attention/test_batch_decode_kernels.py 中test_torch_compile_compatibility一类用例。API 日志与调试机制FlashInfer 提供完整的 API 日志能力通过环境变量启用# 启用日志级别0关闭(默认)1基础3详细5统计 export FLASHINFER_LOGLEVEL3 # 设置日志目的地stdout(默认)、stderr 或文件路径 export FLASHINFER_LOGDESTstdout从 flashinfer/api_logging.py 源码可以看到更细的机制环境变量在模块加载时一次性读取_API_LOG_LEVEL、_API_LOG_DESTFLASHINFER_LOGLEVEL0时 logger 挂上NullHandler并设置高于任何级别的阈值实现零开销关闭FLASHINFER_LOGDEST支持stdout、stderr或文件路径路径中含%i时会替换为进程 ID_substitute_process_id适合多进程/多 GPU 场景下每个进程独立日志文件高级调试级别FLASHINFER_LOGLEVEL10会启用张量 dump可通过FLASHINFER_DUMP_DIR默认flashinfer_dumps、FLASHINFER_DUMP_MAX_SIZE_GB默认 20、FLASHINFER_DUMP_MAX_COUNT默认 1000控制 dump 落盘并支持FLASHINFER_DUMP_INCLUDE/FLASHINFER_DUMP_EXCLUDE做 fnmatch 风格的调用过滤还可通过FLASHINFER_DUMP_SAFETENSORS1切换 SafeTensors 格式dump 出的调用序列可用前文介绍的flashinfer replay命令离线重放并逐调用比对输出形成日志驱动的回归调试闭环。此外FLASHINFER_LOGLEVEL1时导入flashinfer会打印一行带版本与 commit 前 8 位的日志FlashInfer 0.7.1 (commit xxxxxxxx)且该导入期日志被设计为永不阻断导入所有异常都被吸收。核心算子矩阵README 将核心能力划分为六大类覆盖 LLM 推理的完整算子栈Attention 内核Paged 与 Ragged KV-Cache面向动态批量 serving 的高效显存管理Decode / Prefill / Append覆盖各注意力阶段的优化内核MLA Attention原生支持 DeepSeek 的 Multi-Latent Attention见 flashinfer/mla/Cascade Attention面向共享前缀的分层 KV-Cache节省显存Sparse Attention块稀疏与可变块稀疏模式flashinfer/sparse.pyPOD-Attention混合批处理下的 fused prefilldecodeflashinfer/pod.py。GEMM 与线性算子BF16 GEMM面向 SM10.0 GPUFP8 GEMM支持 per-tensor 与 groupwise 缩放FP4 GEMMBlackwell GPU 上的 NVFP4 与 MXFP4 矩阵乘Grouped GEMM为 LoRA 与多专家路由优化的批量矩阵操作。Mixture of ExpertsMoEFused MoE 内核多种路由方法DeepSeek-V3、Llama-4 与标准 top-k 路由量化 MoEFP8/FP4 专家权重与 block-wise 缩放。采样与解码Sorting-Free Sampling无需排序的高效 Top-K、Top-P、Min-P 采样设计思路可参考仓库 benchmarks/routines/sampling.py 等配套基准Speculative Decoding链式投机采样支持。通信AllReduce自定义实现Multi-Node NVLinkMNNVL多节点推理支持NVSHMEM 集成分布式显存操作。其他算子RoPELLaMA 风格旋转位置编码含 LLaMA 3.1 变体flashinfer/rope.py归一化RMSNorm、LayerNorm、Gemma 风格融合算子flashinfer/norm.py激活SiLU、GELU 与门控融合。这些算子的 JIT 内核生成入口统一位于 flashinfer/jit/如sampling.py、rope.py、norm.py、fused_moe.py等模块与 csrc/ 下的 CUDA 内核一一对应。自定义注意力变体与生产化对于有特殊需求的用户README 指出可以自定义注意力变体并附加额外参数参考 tests/utils/test_jit_example.py 中的 JIT 示例先通过gen_*_module工厂编译出带自定义参数的 JIT 模块再调用single_decode_with_kv_cache_with_jit_moduleflashinfer/decode.py直接执行——该入口面向已持有编译模块的高级用户允许通过*args传入 soft-cap、滑窗等变体参数。在生产化方面FlashInfer 与 CUDAGraph、torch.compile 兼容测试用例见 tests/attention/test_batch_decode_kernels.py并已被 SGLang、vLLM、TensorRT-LLM、TGI、MLC-LLM、LightLLM、lorax、ScaleLLM 等主流推理框架采用。参与贡献与引用社区贡献流程详见 CONTRIBUTING.md开发环境搭建、PR 模板、性能数据要求与 CI 触发方式编码 Agent 可参考 CLAUDE.md 与 AGENTS.md代码评审指南在 docs/code_review_guidance_human.md。FlashInfer 的设计受到 FlashAttention、vLLM、stream-K、CUTLASS 与 AITemplate 的启发。学术引用可使用 README 提供的 BibTeXYe et al.,FlashInfer: Efficient and Customizable Attention Engine for LLM Inference Serving, arXiv:2501.01005。小结本文以仓库 README.md 为骨架结合 flashinfer/main.pyCLI 与包管理、flashinfer/decode.py注意力 API 与参数语义、flashinfer/api_logging.py日志与 dump 机制以及 tests/attention/test_batch_decode_kernels.py测试验证等源码完整梳理了 FlashInfer 从安装验证、CLI 运维、算子调用到调试排查的实战路径。后续深入可继续阅读 docs/installation.rst、docs/cli.rst、docs/logging.rst 等仓库内文档并结合 benchmarks/ 下的基准脚本进行性能评估。赞分享大模型深度学习算子库后端高性能计算【免费下载链接】flashinferFlashInfer: Kernel Library for LLM Serving项目地址https://gitcode.com/gh_mirrors/fl/flashinfer点击查看免费下载相关推荐深度解析Obsidian智能代理技能架构实现AI与知识库的无缝集成深度解析Obsidian智能代理技能架构实现AI与知识库的无缝集成 Obsidian skills是一套遵循Agent Skills规范的智能代理技能集合专AI 技能AI 插件FlashInfer终极指南10倍提升LLM推理性能的GPU加速技术FlashInfer终极指南10倍提升LLM推理性能的GPU加速技术 FlashInfer是专为大语言模型推理服务设计的高性能GPU内核库通过深度优化的注意大模型深度学习算子库后端高性能计算FlashInfer: 高性能LLM服务内核库FlashInfer: 高性能LLM服务内核库 项目基础介绍和主要编程语言 FlashInfer 是一个专注于大型语言模型LLM服务和推理的高性能内核库。该大模型深度学习算子库后端高性能计算上一篇inspectpack 终极指南如何快速发现和修复 Webpack 包中的重复代码下一篇PostgreSQL全文搜索配置中文分词与搜索优化终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考