TensorRT-LLM rejects FP8 quantization on a GPU below compute capability 8.9
FP8 in TensorRT-LLM requires hardware FP8 tensor cores, which exist from compute capability 8.9 onward. A build targeting an Ampere device such as the A100, which reports compute capability 8.0, is rejected because the silicon has no FP8 path at all.
Compute capability 8.0 is Ampere, which has no FP8 hardware. Build with INT8 SmoothQuant or INT4 AWQ instead; no flag makes FP8 work on this architecture.
What this failure is
A build-time rejection in which TensorRT-LLM declines to produce an FP8 engine because the target GPU reports a compute capability below 8.9 and therefore has no FP8 tensor cores for the quantized kernels to run on.
Why it happens (the mechanism)
NVIDIA documents FP8 support as requiring compute capability above 8.9, covering Ada, Hopper and Blackwell. Ampere reports 8.0 and has no FP8 tensor cores at all, so there is no kernel for TensorRT-LLM to select. The check runs when the engine is built rather than when it is loaded, which is why building on an Ampere host for a Hopper target fails as well unless a supported cross-compilation flow is used.
What you'll observe
- The engine build fails immediately on an A100 while the same command succeeds on an H100
- A blog post or vendor page claims the GPU is supported, contradicting the build result
- Cross-compiling on an Ampere host for a Hopper target fails even though the target would support FP8
- It is unclear which quantization to use instead without losing the memory saving that motivated FP8
Common symptoms and what they mean
| Symptom | Why it happens |
|---|---|
| [TRT-LLM] [E] FP8 quantization is not supported on this GPU architecture (compute capability 8.0). Rebuild the engine with a supported quantization mode. | NVIDIA documents FP8 support as requiring compute capability greater than 8.9, which covers Ada, Hopper, Blackwell and later. Ampere reports 8.0 and has no FP8 tensor cores, so there is no kernel for TensorRT-LLM to select and the constraint cannot be worked around by a flag. |
| Build aborts during quantization setup rather than at inference time | The check is enforced when the engine is built, not when it is loaded. Building on an Ampere host for an Ada or Hopper target therefore fails as well, unless an explicitly supported cross-compilation flow is used. |
| nvidia-smi reports an A100, A30 or another Ampere part while the build requests an FP8 mode | Third-party guides that list the A100 as FP8-capable, sometimes citing a strongly typed build flag, contradict both NVIDIA's documentation and the hardware. Treat the vendor documentation as authoritative here. |
Which systems are affected
- NVIDIA Ampere data-centre GPUs, including A100 SXM and PCIe and A30, all reporting compute capability 8.0
- Turing and Volta parts, which are further below the threshold
- Any host performing an engine build for FP8, because the check runs at build time rather than at load time
How to confirm this is the problem
Apply the following checklist to a small reproduction: each box below is a positive signal that you are looking at this exact failure rather than a sibling in the same taxonomy.
- ✓Query the device compute capability directly, for example with nvidia-smi --query-gpu=compute_cap --format=csv, and compare it against the 8.9 threshold.
- ✓Re-run the identical build command on an Ada or Hopper device. Success there confirms the constraint is the architecture rather than the build configuration.
- ✓Check whether the build host and the deployment target are the same device, since the check is applied where the engine is built.
Example training logs (fingerprint)
[TRT-LLM] [E] FP8 quantization is not supported on this GPU architecture (compute capability 8.0). Rebuild the engine with a supported quantization mode.
[TRT-LLM] [I] Detected device 0: NVIDIA A100-SXM4-80GB, compute capability 8.0Timestamps and exact values vary across runs, but the pattern. An info-level start, an early WARN, an ERROR carrying the symptom. Is the actual fingerprint you should alert on. The Denpex platform flags this combination automatically.
Root cause, fix & prevention, signed in
Sign up free to see why this failure really happens, the exact remediation steps, and the production-grade prevention pattern. You also get 3 free full diagnoses for your own training logs.
Sign up free. Unlock the full analysisNo credit card · 3 free diagnoses · Instant access
Why the recommended fix works
INT8 SmoothQuant and INT4 AWQ target integer tensor cores that Ampere does have, so they recover most of the throughput and memory benefit that motivated FP8 while remaining buildable. The change is to the quantization format rather than to any setting, because the constraint is silicon and not configuration.
Code examples
// Typical pattern:
import torch.optim as optim
optimizer = optim.AdamW(model.parameters(), lr=3e-4)
scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=num_training_steps)
for step in range(num_training_steps):
optimizer.zero_grad()
loss = model(batch)
loss.backward()
optimizer.step()
scheduler.step()Adapt the snippet to your framework. The same pattern holds for PyTorch Lightning, Hugging Face Trainer, DeepSpeed, Megatron-LM, and vLLM training wrappers. Where the wrapper exposes a config flag (for examplelr_scheduler_type in Trainer), prefer the flag over the imperative API to keep the schedule declarative and reproducible.
Best practices by model family
| Model / Stack | Recommendation | Notes |
|---|---|---|
| A100, A30 and other Ampere parts | INT8 SmoothQuant or INT4 AWQ | Compute capability 8.0; integer tensor cores are available, FP8 is not. |
| L40S, L4 and other Ada parts | FP8 is supported | Compute capability 8.9 meets the documented threshold. |
| H100 and H200 | FP8 including the FP8 KV cache | Compute capability 9.0; FP8 KV cache is preferred over INT8 for accuracy. |
| KV cache savings on Ampere | INT8 KV cache | The FP8 KV cache path is unavailable below 8.9. |
With the fix vs without the fix
| Dimension | With the fix | Without the fix |
|---|---|---|
| When the check runs | Engine build time, on the build host | Assumed to happen when the engine is loaded |
| Ampere FP8 | Rejected; no FP8 tensor cores exist | Assumed available via a build flag |
| Closest Ampere equivalent | INT8 SmoothQuant or INT4 AWQ | Assumed to be FP8 with reduced performance |
Real engineering notes
“Third-party guides list the A100 as FP8-capable, sometimes citing a strongly typed build flag. That contradicts NVIDIA's own documentation and the hardware, and the flag does not create tensor cores. Verify hardware support against the vendor documentation before adopting a guide, and check the compute capability rather than inferring capability from the product name.”
Visual fingerprint
7.5 Turing no FP8 8.0 Ampere no FP8 <-- the rejected case 8.9 Ada FP8 supported 9.0 Hopper FP8 supported 10.0 Blackwell FP8 supported
Related failures to investigate next
Root cause, fix & prevention
Frequently asked questions
Twelve targeted questions that engineers and on-call staff most commonly ask about this failure.
Can a build flag enable FP8 on an A100?
Why does it fail when I am building for an H100?
What should I use instead on Ampere?
Which architectures do support FP8?
Don't just read the fix, diagnose your run
The encyclopedia tells you what went wrong. Denpex tells you what went wrong in YOUR training run. With your logs, your config, and your stack.