π§ͺ NVFP4 lands β 4 slugs for Hopper/Blackwell. GB10 / 5090 owners: you ARE the validation #608
Replies: 5 comments
|
(Single 5090) Early note, had to run with --force, will report back once results post |
|
Update 2026-07-11: NVFP4 runs on Ampere (3090s) β and the catalog now shows it honestly. Credit where due: @superalesha (on X) spotted that vLLM v0.24 quietly runs NVFP4 checkpoints on Ampere via
What changed in the repo (#670): the NVFP4 slugs are no longer hidden as "incompatible-hw" on sub-sm_90 cards. They now carry a Honest guidance for 3090 owners: it works, but for the base Qwen models it's ~20% slower than the AutoRound tier on the same cards β so AutoRound/fp8 remain the recommended Ampere configs. Where the fallback genuinely matters is models whose only quant is NVFP4 (a growing category β e.g. migtissera's new Tess-4-27B-NVFP4), which are now vLLM-servable on 24 GB Ampere cards for the first time. Still wanted from the community: native-FP4 numbers (5090/GB10/H100) β the fallback tells us nothing about native FP4-activation throughput or quality, and the slugs' native validation asks in this thread all still stand. π |
|
Heads-up for first boots on SM120 (RTX 5090 / RTX PRO 6000 / B200-class): a known FlashInfer startup abort + workaround. @huginnfork reports (on the Tess-4-27B-NVFP4A16 card, RTX PRO 6000, vLLM v0.24-era) that FlashInfer's JIT arch probe currently mis-detects SM120 and aborts engine startup. If your first boot of TORCH_CUDA_ARCH_LIST=12.0+PTX VLLM_USE_FLASHINFER_SAMPLER=0 VLLM_USE_FLASHINFER=0Two asks if you hit it:
This doesn't change the slugs' status β they remain π§ͺ awaiting a first boot report either way; this just removes one known wall in front of it. |
|
Ampere update #2: the MoE NVFP4 story upgraded from "compatible" to "competitive" β and it now has a slug. Validated on the reference 2Γ3090 (vLLM v0.24.0, TP=2) and merged today (#675):
Dense 27B provider A/B also completed (unsloth vs nvidia export, both dual + MTP n=3): tie on every axis β decode 66.9/90.4 vs 69.7/85.5, 8-pack 109 vs 110, NIAH clean to 240K. So no second 27B slug (the nvidia-pinned one stays); unsloth's runs fine BYO via Standing bounds, unchanged: Ampere executes weight-only W4A16, so our quality numbers are the optimistic bound for native-FP4 rigs β the native-W4A4 quality run on a 5090/GB10 is still the arc's missing datapoint (the new compose header carries the exact 3-step ask). And both unsloth exports ship real fp8 KV scale tensors, but whether they load on the Qwen hybrid is unverified β treat as scale=1.0 until someone (probably us) does the in-container check. |
|
KV-scale follow-up β settled, and it closes the loop on the provider question. We said above to treat the unsloth checkpoints' shipped fp8 KV scales as "unverified, assume scale=1.0." We've now probed the running engine directly (in-worker Which means the provider A/B we posted was, unknowingly, the exact experiment: calibrated scales (unsloth, 109/150, NIAH clean to 240K) vs scale=1.0 (nvidia, 110/150) β a tie. Calibrated fp8-KV scales are worth βnothing measurable on this model family at these tests β e4m3 KV is robust either way, which validates the scale=1.0 regime the production tiers run from the opposite direction. BENCHMARKS + the nvfp4-fast compose header are updated to match. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
NVFP4 support just landed (#603, #607): four new slugs serving NVIDIA's official modelopt NVFP4 quants of Qwen3.6-27B and Qwen3.6-35B-A3B β and they're the first catalog tier we cannot run ourselves. The maintainer rig is 2Γ RTX 3090 (Ampere, sm_86); NVFP4 kernels need Hopper or Blackwell. So these ship π§ͺ authored blind, and if you have a GB10 / DGX Spark, RTX 5090, RTX 6000 Pro, or H100 β you are the validation.
The slugs
vllm/qwen-27b-single-nvfp4vllm/qwen-27b-dual-nvfp4vllm/qwen-35b-a3b-single-nvfp4vllm/qwen-35b-a3b-dual-nvfp4vllm/qwen-35b-a3b-dual-nvfp4-fast--forceneeded)If you have a GB10 / Spark, start with the MoE single. A 3B-active MoE is the right shape for big-capacity, lower-bandwidth unified memory β its KV is tiny (~1.3 GB @ 131K), so the full 262K context costs only ~25% of your budget. Raise
MAX_MODEL_LEN=262144and go.What's actually in these checkpoints
We did the forensics even though we can't boot them:
hf_quant_configdeclares FP8 KV, but neither checkpoint ships k_scale/v_scale tensors β so fp8 (e4m3) KV runs at scale=1.0, which is exactly the regime our production 27B FP8 tier quality-tied at (109/150 on 2Γ 3090, and the identical 109/150 on a 2Γ 5090 this week). vLLM's modelopt integration supports this pairing natively (KV_CACHE_QUANT_ALGOS = ["FP8", "NVFP4"]).--quantization modelopton stockvllm/vllm-openai:v0.24.0withfp8(e4m3) KV. Not nvfp4-KV β consumer Blackwell has no FP4 FMHA (vLLM #43562).The launchers refuse these slugs on Ampere with the real reason (
requires sm >= 9), and the c3 cockpit hides them by default on rigs that can't run them β so nobody downloads 20+ GB expecting a boot that can't happen.How to test (15 min for a boot verdict, ~1 h for the full chain)
Attach
nvfp4-report.mdto your issue and we have it all in one shot (it's path/host-redacted by default). If you only have 15 minutes, the plainbash scripts/report.sh > nvfp4-report.md(~2 s) + your boot log is already plenty.Then open a numbers-from-your-rig issue (or use the c3 cockpit's funnel) with whatever you got. A boot failure is a fully useful result β paste the crash and your
nvidia-smiheader and we'll fix or demote the slug. Things we specifically can't know from here:--speculative-configfails, drop it and tell us)First validated numbers become the slug's shipped baseline (rig-labelled), move it out of π§ͺ, and get credited in BENCHMARKS. Related: the arch-aware KV A/B in #571 is still collecting 4090/5090 datapoints β same rigs, adjacent experiment, happy to take both in one session.
All reactions