快速结论:在 Ampere/Hopper(pre-SM100)或 SM120 显卡上,用 --kv-cache-dtype nvfp4 启动 vLLM + FlashInfer 时,可能遇到 “kv_cache_dtype not supported” 或缺少 FlashInfer NVFP4 slot-mapping 更新的报错,优先排查 attention backend 选择、FlashInfer 版本以及本机是否走 native NVFP4 更新路径。
适用环境:Issue 中确认涉及 vLLM、FlashInfer(0.6.14 nightly / 0.6.15 及以上含相关 helper)、--kv-cache-dtype nvfp4、FLASHINFER attention backend;实测硬件为 RTX 3090(SM86)和 RTX PRO 6000(SM120),Qwen3-0.6B / Qwen3.6 / Gemma 4 类负载,enforce_eager。Issue 未给出确认可用的 CUDA、PyTorch、Python 版本,需自行按 vLLM 官方要求核对。
最快修复方案:暂无确认的一步修复方案。可优先尝试把 FlashInfer 升级到包含 nvfp4_quantize_append_paged_kv_cache_with_slot_mapping 和 nvfp4_kv_dequantize_paged 的版本(0.6.15 起已进入稳定发布),并确认 attention backend 为 FLASHINFER。
注意事项:SM120 上走的是 slot-mapping fallback 路径,不是 native TRT-LLM 路径;Hopper 侧作者没有硬件验证;量化 KV cache 输出与 bf16-KV 基线存在量化级差异属预期现象。vLLM 对 FlashInfer 的版本 pin 会变化,需以所用 vLLM 版本的依赖要求为准。
问题场景
用户在 vLLM 中以 FlashInfer 为 attention backend,启用 --kv-cache-dtype nvfp4 服务大上下文模型(如 Qwen3.6、Gemma 4、Qwen3-0.6B),目标是在 pre-SM100(Ampere/Hopper)甚至 SM120 显卡上使用 NVFP4 KV cache,以获取约 3 倍 KV cache 容量收益。触发问题的典型情况有两种:一是 backend 选择器认为该显卡没有任何支持的 attention backend;二是 FlashInfer 版本过旧,缺少 NVFP4 paged KV append / dequant 所需 helper,导致初始化失败。
报错原文
kv_cache_dtype not supported
FlashInfer NVFP4 slot-mapping KV cache update is required
原因分析
可能原因一:FlashInfer 的 NVFP4 KV cache 更新在设计中分为 native 路径与 slot-mapping fallback 路径。早期实现中 native 路径的启用条件依据 SM 家族号(如 SM100/SM120),而 SM120 当时并没有可用的 native 路径,于是被错误地排除在所有路径之外,backend 选择器对所有候选都报 kv_cache_dtype not supported。后续修复把 native 路径的启用条件改为 can_use_trtllm_attention 在 prefill 和 decode 下都为真,其余情况回退到 slot-mapping writer。
可能原因二:所用 FlashInfer wheel 中不含 nvfp4_quantize_append_paged_kv_cache_with_slot_mapping 与 nvfp4_kv_dequantize_paged,vLLM 无法完成 slot-mapping 路径的 KV 更新,从而抛出 FlashInfer NVFP4 slot-mapping KV cache update is required。Issue 中提到 0.6.12/0.6.13/0.6.14 早期版本均缺少这些 helper,0.6.15 起才随稳定版发布。
环境排查
- 确认显卡与 SM 架构:SM86(RTX 3090)、SM120(RTX PRO 6000)在 Issue 中有实测记录;Hopper 未在该讨论中硬件验证。
- 确认 vLLM 版本及其对 FlashInfer 的依赖 pin,Issue 中提到 pin 曾从 0.6.13 迁移到 0.6.15、再到 0.6.16.post3。
- 确认 FlashInfer 版本是否包含
nvfp4_quantize_append_paged_kv_cache_with_slot_mapping和nvfp4_kv_dequantize_paged。 - 确认 attention backend 是否为 FLASHINFER,以及启动参数中是否有
--kv-cache-dtype nvfp4与enforce_eager。 - CUDA、PyTorch、Python 版本 Issue 未明确给出,需按 vLLM 对应版本的官方要求核对。
解决步骤
- 先确认当前报错属于哪一类:若 backend 选择器对 FLASHINFER 报
kv_cache_dtype not supported,重点排查 native 路径的启用条件;若初始化时提示缺少 slot-mapping 更新,重点排查 FlashInfer 版本。 - 把 FlashInfer 升级到包含上述两个 helper 的版本(Issue 中 0.6.15 已随稳定版发布,无需 nightly 或源码 checkout)。若暂时无法升级到该版本,可优先尝试 FlashInfer nightly wheel,并配合
FLASHINFER_DISABLE_VERSION_CHECK=1,但该做法仅为版本绕过,Issue 中已说明 helper 进入稳定发布后不再需要。 - 确认所用 vLLM 版本已将 FlashInfer pin 提升到含 helper 的版本;若 vLLM 仍固定在旧版本,升级 vLLM 或核对其依赖声明。
- 若在 SM120 上仍无法选择 backend,请确认所用 vLLM 已包含 native gate 修复(改为依据
can_use_trtllm_attention,而不是仅按 SM 家族号判断)。 - 使用 Qwen3-0.6B 等小模型做最小复现:FLASHINFER backend、
--kv-cache-dtype nvfp4、enforce_eager,先验证能否正常启动并生成。
验证方法
启动日志中不再出现 kv_cache_dtype not supported 和 slot-mapping helper 缺失报错,模型能正常加载并生成连贯文本;用约 2K token 的 needle-recall 提示词,检查能否通过量化页精确召回目标内容,可说明 paged read 路径正常。另可做负向对照:在缺少 helper 的 wheel 上应复现 FlashInfer NVFP4 slot-mapping KV cache update is required,以此确认当前实际走的是 slot-writer fallback 路径而非 native 路径。输出与 bf16-KV 基线的差异应仅为量化级差异。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug] DeepSeek Harness (deepseek-harness): model list is empty and no model picker](https://www.chat-gpts.plus/wp-content/uploads/2026/11/21173-bae2750d-768x403.jpg)
![[bug]: Z-Image, Qwen-Image and Anima LoRA converters ignore `.alpha` and drop DoRA magnitudes on lora_A/lora_B layers](https://www.chat-gpts.plus/wp-content/uploads/2026/11/10019-f156d1bf-768x403.jpg)
