Recommended FP8 recipe for Blackwell (B200)? Per-tensor `FP8_DEFAULT_CFG` underperforms BF16 at prefill; NVFP4 much faster. Also: exported FP8 checkpoint has no KV `q/k/v_scale`
Los mantenedores suelen responder en 2 días
@jenchen13 ya está trabajando en esto.
Desde el 24/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Describe the bug
Quantizing Mistral-24B with hf_ptq.py for B200/vLLM deployment. Per-tensor static FP8 (FP8_DEFAULT_CFG)
is net slower than BF16 in vLLM (prefill ~2× slower; decode faster), whereas NVFP4 (--qformat nvfp4) is
~2× faster than FP8 and beats BF16 on all metrics. Want to confirm the recommended recipe and understand two
export details.
Steps/Code to reproduce bug
Env: B200 sm_100, modelopt 0.46.0, vLLM 0.25.1 + FlashInfer 0.6.13. Calib 1024 samples @ seq 2048.
Quantization command (hf_ptq.py):
# per-tensor FP8:
python examples/hf_ptq/hf_ptq.py \
--pyt_ckpt_path <bf16-mistral-24b> \
--export_path ./mistral_fp8 --qformat fp8 \
--dataset <custom-calib-dataset> --calib_size 1024 --calib_seq 2048
# NVFP4 (identical, only --qformat and --export_path change):
python examples/hf_ptq/hf_ptq.py \
--pyt_ckpt_path <bf16-mistral-24b> \
--export_path ./mistral_nvfp4 --qformat nvfp4 \
--dataset <custom-calib-dataset> --calib_size 1024 --calib_seq 2048
Bench (vllm bench serve, random 300in / 64out, conc 64):
| Config | req/s | TTFT P50 (ms) | TPOT P50 (ms) |
|---|---|---|---|
| BF16 | 44.4 | 547 | 13.7 |
| per-tensor FP8 (+FP8 KV) | 36.2 | 1010 | 7.1 |
| per-tensor FP8 (+BF16 KV) | 38.8 | 660 | 7.7 |
| NVFP4 | 84.1 | 313 | 6.8 |
Long prompts (2048in/64out, conc 32): per-tensor FP8 15.6 req/s vs NVFP4 23.1 req/s.
vllm bench command:
vllm bench serve --model <model-path> --host <host> --port <port> --dataset-name random --random-input-len 300 --random-output-len 64 --num-prompts 1000 --max-concurrency 64'
Note that I have issues on other models quantized in the same way and served through Tensorrt with the torch backend as well.
Expected behavior
I expect fp8 models to go faster than bf16, both with quantized and not quantized kv cache
System information
- Container used (if applicable): docker
- GPU name (e.g. H100, A100, L40S): B200
- Library versions (if applicable):
- Python: 3.12.3
- ModelOpt version or commit hash: 0.46.0
- CUDA: 13.0
- PyTorch: 2.13.0
- Transformers: 5.12.1
- Lenguaje dominante
- Python
- Estrellas
- 5.3k
- Forks
- 745
- Merge medio
- 4 d 2 h
- PR fusionados (30 d)
- 160
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/Model-Optimizer
-
[Bug] modelopt-mcp: all launcher subprocesses hang when the server runs as a stdio MCP server — missing stdin=DEVNULLPosiblemente ocupada @ChenhanYu la tomó hace 13 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
NVIDIA/Model-Optimizer#2551 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Puzzletron Progress 6/8 (calculating one block scores) takes 10 to 20 times more than in tutorialQuizá libre de nuevo @tejasng053 la tomó hace 20 días y no hay ningún pull request abierto. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
NVIDIA/Model-Optimizer#1667 ·
Los mantenedores suelen responder en 2 días
-
fp4_kernel_hopper.py uses tl.make_block_ptr, which is removed in Triton main (breaks NVFP4 fake quant)Posiblemente ocupada @kinjalpatel27 la tomó hoy. Abierto
Dificultad 3/5 Medio día Aptitud para principiantes 72/100
NVIDIA/Model-Optimizer#2810 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
test_cast_fp4_impl_gpu_mem is flaky on Jetson Thor: mem_get_info reports system-wide memory on integrated GPUsPosiblemente ocupada @LinCanNerd la tomó hace 7 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
NVIDIA/Model-Optimizer#2706 ·
Los mantenedores suelen responder en 2 días
-
test_cuda_pack_reconstruction_matches_pytorch_at_scale[iq1_m] fails on Jetson Thor: exact ties exceed the blocks // 1000 boundPosiblemente ocupada @LinCanNerd la tomó hace 7 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
NVIDIA/Model-Optimizer#2705 ·
Los mantenedores suelen responder en 2 días
Todos los issues de NVIDIA/Model-Optimizer
Issues similares
-
documentation good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
sujithputta02/Esapay#13 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Flaky: credential-proxy admission metric test asserts a wall-clock bound it does not establishAbiertoneeds-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
gke-labs/kube-agents#3277 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
jbacalso24/mimry#291 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 Menos de una hora Aptitud para principiantes 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Los mantenedores suelen responder en 1 día