Skip to main content
Start your own AI-powered blog — freeGet started →

FP8 vs INT4 Quantization: Production Quality vs Cost 2026

Podcast episode2 voices
3:57
FP8 vs INT4 Quantization: Production Quality vs Cost 2026
Photo by Markus Spiske on unsplash

FP8 vs INT4 Quantization: Production Quality vs Cost 2026

Data streaming visualization matrix Photo by Markus Spiske on Unsplash

Quick Answer: For production LLM serving in 2026, use FP8 for quality-sensitive workloads (perplexity loss <0.5%, MMLU drop <1%) and INT4 for cost-sensitive workloads (2x memory savings, 40-60% higher throughput). FP8 with H100 achieves ~95-97% of FP16 quality while halving VRAM. INT4 (AWQ/GPTQ) delivers 80-85% throughput of FP8 but at half the VRAM cost. The right choice depends on your model size, hardware, and quality requirements — for most production use cases, FP8 is the new default.

Quantization Formats Overview

FormatBitsVRAM vs FP16Quality LossBest ForGPU Support
FP1616BaselineNoneDevelopment, evaluationAll
FP8 (E4M3/E5M2)8~50%<1%Production servingH100/H200/B200, RTX 5090
INT88~50%1-2%CPU inference, older GPUsMost GPUs (via quantization)
INT4 (AWQ/GPTQ)4~25%2-5%Consumer GPUs, edgeAll GPUs (post-processing)
INT4 (GGUF Q4_K_M)4.5~28%3-5%Local inference, CPUCPU + GPU (mixed)
NF4 (QLoRA)4~25%3-4%Fine-tuning on consumer GPUAll GPUs
INT3 (GGUF Q3_K_M)3.5~22%5-8%Ultra-budget 70B on 24GB VRAMCPU + GPU (mixed)

FP8 is the 2026 production standard. With Blackwell and Hopper native support, FP8 delivers near-FP16 quality at half the memory. INT4 remains essential for consumer GPU inference (RTX 3090/4090/5090) where memory is the bottleneck.

Quality Benchmarks: FP8 vs INT4 vs INT8 vs FP16

Perplexity (Lower Is Better) — Llama 3.1 70B

FormatWikiText-2C4The Pilevs FP16
FP163.454.123.89Baseline
FP8 (E4M3)3.48 (+0.03)4.15 (+0.03)3.93 (+0.04)✅ Negligible
INT8 (SmoothQuant)3.52 (+0.07)4.21 (+0.09)3.98 (+0.09)✅ Minimal
INT4 (AWQ 4-bit)3.72 (+0.27)4.45 (+0.33)4.20 (+0.31)⚠️ Noticeable
INT4 (GPTQ 4-bit)3.78 (+0.33)4.52 (+0.40)4.28 (+0.39)⚠️ Noticeable
GGUF Q4_K_M3.70 (+0.25)4.42 (+0.30)4.18 (+0.29)⚠️ Noticeable
GGUF Q3_K_M3.95 (+0.50)4.70 (+0.58)4.45 (+0.56)⚠️ Degraded

Benchmark Scores (70B Models)

FormatMMLUHumanEvalGSM8KTruthfulQA
FP1682.3%72.0%85.5%63.2%
FP881.9% (-0.4)71.5% (-0.5)84.8% (-0.7)62.8% (-0.4)
INT881.2% (-1.1)70.1% (-1.9)83.5% (-2.0)62.0% (-1.2)
INT4 (AWQ)79.5% (-2.8)67.8% (-4.2)81.0% (-4.5)60.5% (-2.7)
INT4 (GPTQ)78.8% (-3.5)66.5% (-5.5)80.2% (-5.3)59.8% (-3.4)
Q4_K_M79.8% (-2.5)68.5% (-3.5)81.5% (-4.0)61.0% (-2.2)
Q3_K_M76.5% (-5.8)63.0% (-9.0)77.0% (-8.5)58.5% (-4.7)

Key Quality Insights

ObservationImplication
FP8 loss is <1% on all benchmarksFP8 is production-ready for any use case
INT4 AWQ loses 2-5% on reasoning tasksAvoid INT4 for code generation and math
HumanEval (coding) is most sensitive to quantizationUse FP8 or INT8 for code models
Q3_K_M loses 5-9% on reasoningOnly suitable for creative writing, chat
Smaller models degrade more8B at INT4 loses more % than 70B at INT4

Rule of thumb: If you can hear the quality difference, use FP8. If you can't fit the model at FP8, use INT4 AWQ (best quality among 4-bit methods). Never use Q3 for code or math.

Hardware Support: What Runs What

Native Hardware Support

GPUFP8 NativeINT8 Tensor CoreINT4 Tensor Core
H100/H200✅ Full speed (1.3 PFLOPS)✅ (via INT8)
B100/B200✅ Full speed (2x H100)✅ (via INT8)
RTX 5090 (Blackwell)✅ Native FP8/FP4✅ FP4 native
RTX 4090 (Ada)❌ (no native)
RTX 3090 (Ampere)✅ (slower)
A100❌ (no native)
Older/CPU❌ (GGUF only)

What Runs Where

FormatH100RTX 5090RTX 4090M4 UltraNotes
FP8 (native)✅ Fastest✅ FastH100=1.3 PFLOPS FP8
FP8 (simulated)⚠️ SlowNo speedup on non-native
INT8 (Tensor Core)Fast on all NVIDIA
INT4 AWQ (GPU)⚠️ Via INT8Requires CUDA
INT4 GGUF (GPU + CPU)❌ Not neededCross-platform
FP4 (Blackwell)✅ Native5090-only, early days

FP8 Deep Dive: The Production Standard

Why FP8 Wins for Production

FP8 was designed specifically for LLM inference on Hopper and Blackwell architectures. It offers:

  • 2x memory density vs FP16 (fit 70B in 80GB H100 instead of needing 2x)
  • Near-lossless quality — 0.5-1% benchmark degradation
  • Native H100 support — runs at 1.3 PFLOPS (vs 990 TFLOPS for FP16)
  • Simplified pipeline — no calibration dataset needed (unlike INT4)

FP8 Formats

FormatExponent BitsMantissa BitsRangePrecisionBest For
E4M343±15HigherModel weights, activations
E5M252±30KLowerGradients (training)

For inference, E4M3 is used for both weights and activations.

H100 FP8 Throughput

ModelFP16 ThroughputFP8 ThroughputImprovement
Llama 3.1 70B (batch=1)42 tok/s55 tok/s+31%
Llama 3.1 70B (batch=32)380 tok/s650 tok/s+71%
Llama 3.1 8B (batch=1)210 tok/s305 tok/s+45%
Llama 3.1 8B (batch=256)4,200 tok/s8,100 tok/s+93%

Visual representation of geometric calculations comparing bits and qubits in black and white. Photo by Google DeepMind on Pexels

INT4 Deep Dive: Maximum Efficiency

INT4 Methods Compared

MethodQualitySpeedCalibrationHardwareBest For
AWQ🥇 Best🥇 Fastest128 samplesCUDA GPUProduction 4-bit
GPTQ🥈 Good🥇 Fastest128 samplesCUDA GPUOlder standard
GGUF Q4_K_M🥈 Good🥉 SlowerNoneCPU + GPULocal/consumer
BitsAndBytes 4-bit🥉 OK🥉 SlowestNoneCUDA GPUFine-tuning (QLoRA)
FP4 (Blackwell)⚠️ Early🥇 NativeNoneRTX 5090 onlyExperimental

AWQ: The Gold Standard for INT4

python
# AWQ quantization
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

model_path = "meta-llama/Llama-3.1-8B"
quant_path = "llama-3.1-8b-awq-4bit"

# Load and quantize
model = AutoAWQForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

# AWQ needs 128 calibration samples
quant_config = {
    "zero_point": True,
    "q_group_size": 128,
    "w_bit": 4,
    "version": "GEMM",
}

model.quantize(tokenizer, quant_config=quant_config)
model.save_quantized(quant_path)

INT4 VRAM Savings

ModelFP16FP8INT4 AWQINT4 GGUF
7B14 GB7 GB4 GB4 GB
13B26 GB13 GB7 GB7 GB
30B60 GB30 GB15 GB15 GB
70B140 GB70 GB35 GB35 GB
120B240 GB120 GB60 GB60 GB

INT8: The Middle Ground

INT8 via SmoothQuant is worth considering if your hardware doesn't support FP8 but you need better quality than INT4.

FactorINT8 (SmoothQuant)FP8 (Native)INT4 (AWQ)
Quality loss1-2%<1%2-5%
VRAM vs FP1650%50%25%
Speed vs FP161.5-2x1.3-2x2-3x
Hardware reqCUDA compute 7.0+H100/RTX 5090CUDA compute 7.5+
Calibration needed✅ Yes❌ No✅ 128 samples

When to use INT8 instead of FP8:

  • You're on A100/H100 but want slightly better quality than FP8 (unlikely need)
  • You're on RTX 4090 (no FP8 support) and quality matters more than speed
  • You need INT8 for a specific deployment pipeline requirement

Quantization Decision Workflow

code
                     ┌─────────────────────┐
                     │  What hardware do   │
                     │  you have?          │
                     └──────────┬──────────┘
                                │
                    ┌───────────┴───────────┐
                    │                       │
            ┌───────▼───────┐       ┌───────▼───────┐
            │   H100/B200   │       │   Consumer    │
            │    (FP8 OK)   │       │   GPU (No FP8)│
            └───────┬───────┘       └───────┬───────┘
                    │                       │
            ┌───────▼───────┐       ┌───────▼───────┐
            │  Does model   │       │  Does model   │
            │  fit in 80GB? │       │  fit in VRAM? │
            │  (FP8 = 50%)  │       │  (FP16)       │
            └───────┬───────┘       └───────┬───────┘
                    │                       │
         ┌──────────┴──────────┐    ┌──────┴──────┐
         │                     │    │              │
    ┌────▼────┐          ┌────▼┐  ┌─▼─┐   ┌──────▼──────┐
    │  Yes    │          │ No  │  │Fits│   │ Doesn't fit │
    └────┬────┘          └──┬──┘  └──┬─┘   └──────┬──────┘
         │                  │       │              │
    ┌────▼────┐        ┌────▼───┐  │    ┌─────────▼───────┐
    │  FP8    │        │ AWQ   │  │    │ AWQ (INT4) or    │
    │default  │        │(INT4) │  │    │ GGUF Q4_K_M      │
    └─────────┘        └───────┘  │    └─────────────────┘
                                  │
                          ┌───────▼─────────┐
                          │ Quality critical?│
                          │ (code, math,     │
                          │  medical)        │
                          └───────┬─────────┘
                                  │
                    ┌─────────────┴─────────────┐
                    │                           │
                ┌───▼────┐               ┌──────▼──────┐
                │  AWQ   │               │  GGUF Q4 or │
                │ (INT4) │               │  AWQ fine   │
                └────────┘               └─────────────┘

Decision Rules

ScenarioRecommended FormatWhy
H100 + fits FP8FP8Best quality, no calibration needed
H100 + doesn't fit FP8FP8 + smaller modelNever sacrifice model size for quantization
RTX 5090 + fits FP8FP8 (Blackwell native)Best quality on consumer GPU
RTX 4090 + quality criticalINT8 (SmoothQuant)Best quality without FP8 hardware
RTX 3090/4090 + need speedAWQ 4-bitGood balance of quality and speed
Local inference (CPU/GPU mix)GGUF Q4_K_MMost compatible, good speed
70B on 24GB (RTX 4090)GGUF Q3_K_MOnly way to fit
Fine-tuning on consumer GPUNF4 (QLoRA)Only 4-bit format designed for training
Coding modelFP8 or INT8Code degrades badly at INT4
Chat/creative writingAWQ 4-bit or Q4_K_MAcceptable quality loss

Real-World Performance Benchmarks

Cost Per Token (H100, 70B Model)

FormatTokens/Sec$/Hr (H100)Cost/M Tokens
FP1642$3.00$0.0198
FP865$3.00$0.0128
INT855$3.00$0.0152
INT4 (AWQ)72$3.00$0.0116

Consumer GPU (RTX 4090, 70B Model)

FormatTokens/SecNotes
Q3_K_M11Only option on 24GB
Q4_K_M9 (with offload)Doesn't fully fit
AWQ 4-bitNeeds 32GB minimum

Consumer GPU (RTX 5090, 70B Model)

FormatTokens/SecNotes
Q3_K_M15All layers on GPU
Q4_K_M12Partial offload
FP8 (native)20Blackwell native FP8
AWQ 4-bit18Inferior quality to FP8

Related Reads

Key Takeaways

  • Use FP8 (E4M3) for production LLM serving on H100/B200/RTX 5090—it delivers ~95-97% of FP16 quality with 2x memory savings and native hardware acceleration (1.3 PFLOPS on H100), requiring no calibration datasets.
  • Deploy INT4 (AWQ/GPTQ) only for cost-sensitive or memory-constrained scenarios (e.g., consumer GPUs like RTX 4090/3090), as it sacrifices 2-5% quality (notably on coding/math tasks) but halves VRAM vs FP8 and boosts throughput 40-60%.
  • Avoid INT4 for quality-critical workloads (e.g., code generation, medical, or reasoning-heavy tasks)—FP8’s <1% quality loss (vs 2-5% for INT4) justifies its use even when VRAM permits larger models.
  • For local inference on mixed CPU/GPU setups (e.g., 24GB VRAM), use GGUF Q4_K_M (or Q3_K_M for 70B models) as the only viable option, accepting 3-5% quality degradation for compatibility.
  • On H100, FP8 and INT4 cost per token differ by <15%, but FP8’s superior quality makes it the default choice—reserve INT4 for throughput-optimized or VRAM-limited deployments (e.g., 70B on 24GB GPUs).
  • Never use Q3_K_M for code/math tasks—its 5-9% quality loss (vs FP16) is unacceptable for reasoning-heavy applications, though it may suffice for creative writing or chat.

Frequently Asked Questions

Is FP8 really lossless?

Almost. Perplexity increase is ~0.03 points (vs 0.25-0.33 for INT4). On knowledge benchmarks (MMLU), FP8 loses <0.5%. On reasoning (GSM8K), the loss is <1%. For most production use cases, FP8 is indistinguishable from FP16. For scientific/medical applications, always benchmark first.

Which is cheaper per token: FP8 or INT4?

On H100: FP8 and INT4 are close, with INT4 having a slight edge in tokens/second (72 vs 65). But FP8 wins on quality. The cost difference is <15%. On consumer GPUs where VRAM is the bottleneck, INT4 (or Q3) is the difference between fitting and not fitting a model at all.

Does AWQ work on any GPU?

AWQ requires CUDA and computes at INT4 via INT8 tensor core operations. It works on any NVIDIA GPU with compute capability 7.5+ (RTX 30xx/40xx/50xx, A100, H100). It does NOT work on AMD, Intel, or Apple GPUs. For those, use GGUF format.

Should I use FP8 or INT4 for a coding assistant?

FP8 is strongly recommended for coding models. HumanEval scores drop 4-5% with INT4 AWQ and up to 9% with Q3. If you must use INT4 for memory reasons, benchmark the specific coding model you plan to deploy.

Can I train in FP8?

Yes — H100 and B200 support FP8 for training, not just inference. FP8 training can double throughput vs FP16 with minimal quality loss. That said, most production training still uses BF16/FP16 mixed precision because FP8 training pipelines are still maturing in 2026.

S
Synor

1 followers

Deep dives on GPUs, decentralized AI, crypto, and open-source ML — buying guides, benchmarks, and tax/compliance explainers.

Comments

Sign in to join the conversation

No comments yet. Be the first to share your thoughts!

More from Synor

Recommended for you