Skip to content

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.

Quick answer

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.

Environment#tensorrt-llm#fp8#quantization#compute-capability#ampere#engine-build

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

SymptomWhy 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 timeThe 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 modeThird-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)

training.log (synthetic 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.0

Timestamps 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 analysis

No 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 reference pattern
// 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 / StackRecommendationNotes
A100, A30 and other Ampere partsINT8 SmoothQuant or INT4 AWQCompute capability 8.0; integer tensor cores are available, FP8 is not.
L40S, L4 and other Ada partsFP8 is supportedCompute capability 8.9 meets the documented threshold.
H100 and H200FP8 including the FP8 KV cacheCompute capability 9.0; FP8 KV cache is preferred over INT8 for accuracy.
KV cache savings on AmpereINT8 KV cacheThe FP8 KV cache path is unavailable below 8.9.

With the fix vs without the fix

DimensionWith the fixWithout the fix
When the check runsEngine build time, on the build hostAssumed to happen when the engine is loaded
Ampere FP8Rejected; no FP8 tensor cores existAssumed available via a build flag
Closest Ampere equivalentINT8 SmoothQuant or INT4 AWQAssumed 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

FP8 availability by compute capability
  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
FP8 requires compute capability above 8.9. Ampere at 8.0 falls below the threshold and is rejected at build time, while Ada at 8.9 and Hopper at 9.0 are supported.

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?
No. Compute capability 8.0 has no FP8 tensor cores, so there is no kernel to select. Guides claiming otherwise contradict NVIDIA's documentation.
Why does it fail when I am building for an H100?
The architecture check runs at engine build time on the build host. Build on a machine matching the target, or use a documented cross-compilation flow.
What should I use instead on Ampere?
INT8 SmoothQuant or INT4 AWQ recover most of the throughput and memory benefit. For KV cache savings specifically, use the INT8 KV cache path.
Which architectures do support FP8?
Ada at compute capability 8.9, Hopper at 9.0, Blackwell and later. The documented requirement is a compute capability above 8.9.

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.