Quantization is usually sold as a free win: cast your weights to 4-bit (NF4) or 8-bit (INT8), use a fraction of the VRAM, ship. And for memory, that story holds. For energy, it does not — at least not for small models.
Across 360+ direct GPU power measurements (NVML, 10 Hz, 256 tokens/run, 10 iterations) on four NVIDIA architectures, weight-only quantization increases decode energy for small models and only starts saving above a model-size threshold that depends on the GPU. Below that threshold, you pay more joules per token to save memory you may not have needed.
Weight-only quantization stores weights in 4/8-bit but computes in FP16: every matmul dequantizes on the fly. On small models the decode loop is not strictly memory-bound, so the bandwidth you save by reading smaller weights doesn't outweigh the extra dequantization work — net energy goes up. As models grow, weight traffic dominates, the memory savings win, and quantization flips to a net saving. The size where it flips is the crossover point.
NF4 vs FP16 decode energy (negative = quantization saves):
| GPU | ~1–3B (small) | 7B | Crossover |
|---|---|---|---|
| RTX 4090D (Ada) | +25% to +56% | not measured | none in measured range |
| RTX 5090 (Blackwell) | +12% to +29% | −11% | ≈ 4.8B |
| T4 (Turing) | +0% to +5% | −14% | ≈ 2.1B |
| A800 (Ampere) | not measured | −4% | < 7B |
This is not "never quantize." Quantization is the right choice when:
The point is to make it a measured decision, not a reflex.
The EcoCompute tool lets you check any GPU + model size and see whether quantization saves or costs energy, with each number labelled measured / interpolated / extrapolated. Example permalink you can share: quantenergy.tech/?tab=estimate&arch=blackwell&size=3&prec=NF4