← All Papers

FP8 / FP4 Serving Without Accuracy Degradation: A Benchmark Audit

Every serious deployment faces the same decision: pay for FP16 memory or risk FP8/FP4 accuracy cliffs. After eight weeks of controlled benchmarking across vLLM, TensorRT-LLM, and SGLang, we can report exactly where each quantization path loses and gains — and how to gate model updates so quality never silently slips.

Methodology

We benchmarked three serving stacks — vLLM, TensorRT-LLM, and SGLang — across four quantization configurations: native FP16, static FP8 (W8A8), dynamic FP8, and FP4 (W4A16). Workloads were drawn from production enterprise reasoning patterns rather than generic leaderboards: document comprehension, structured extraction into JSON schemas, multi-hop retrieval reasoning, and constrained code generation.

Every run used identical prompts, seeds, and decoding parameters. We measured not just token throughput but task-level deltas: a model that produces fluent but wrong structured output is a regression, not a win. That distinction drives the entire audit.

# Evaluation harness sketch (shipped with every deployment) for quant in [fp16, fp8_static, fp8_dynamic, fp4]: for task in [schema_extraction, multi_hop_retrieval, constrained_code]: score = run_eval(model, quant, task, seed=42) budget = baseline[task].p95_latency assert score.accuracy_delta >= -0.005, "gate failed: silent regression" assert score.latency_p95 <= budget, "gate failed: latency slip" promote(quant, task)

What We Found

Static FP8 delivered a 1.9× throughput gain with a median task-accuracy delta of −0.2% — inside statistical noise for most workloads. Dynamic FP8 closed the gap to −0.05% but cost 12% of the throughput advantage. FP4 was the trap: 2.6× throughput, but schema-extraction accuracy fell 4.8% and multi-hop retrieval degraded 6.1% on long contexts, which would have shipped silent corruption into dependent systems.

GPU memory pressure followed expectation — FP4 freed the most HBM and dramatically reduced cache evictions — but the eviction win did not compensate for the retrieval degradation. For memory-bound fleets, static FP8 plus a 128K KV-cache offload strategy beat FP4 on every measured axis.

Results

1.9×
Throughput vs FP16 (FP8)
−0.2%
Median Accuracy Delta
4.8%
FP4 Schema-Extraction Loss
6.1%
FP4 Multi-Hop Retrieval Loss

Operational Guidance

Ship static FP8 by default for production reasoning workloads, keep a task-level eval gate in the promotion pipeline, and treat FP4 as a special-case lever only for memory-starved edge fleets where you can accept and measure the accuracy trade. Never trust a quantization claim that doesn't report task-level deltas — aggregate benchmarks conceal exactly the failures that break downstream systems.

Audit Your Serving Stack

We run the same eval-gated methodology on your deployment and deliver a promotion-ready report your engineers can act on.

Work With Us →