INT8
INT8 is an 8-bit integer quantization format that significantly reduces model memory and speeds up inference by mapping floating-point values to 256 discrete levels.
INT8 quantization converts 32-bit or 16-bit floating-point model weights and activations into 8-bit integer values, represented as signed or unsigned bytes. This reduces memory usage by 4x compared to FP32 and 2x compared to FP16, and on modern GPUs with INT8 tensor cores (like NVIDIA Turing and later architectures), it can double or quadruple inference throughput. For LLMs, INT8 quantization typically uses a per-tensor or per-row symmetric or asymmetric scaling scheme. The most common method is absmax quantization, where the absolute maximum value in a tensor is used to compute a scaling factor, then the FP values are multiplied by the scale and rounded to integers. A practical challenge is that LLM activations often have outliers, which can distort the quantization range-this is addressed by techniques like LLM.int8() which uses mixed-precision decomposition to handle outlier channels in FP16 while quantizing the rest. Another popular method is SmoothQuant, which smooths activation outliers to improve INT8 quality. On hardware, INT8 is highly optimized; for example, NVIDIA's Turing GPUs have INT8 tensor cores that can achieve up to 2x the throughput of FP16. Intel's Xe Matrix Extensions (XMX) also accelerate INT8. In the LLM ecosystem, INT8 is commonly used via libraries like llama.cpp (with Q8_0), TensorRT-LLM, and Hugging Face. The trade-off is accuracy: while many models retain near-lossless performance after INT8 quantization, some sensitive tasks (like code generation or reasoning) may degrade. Therefore, calibration with representative datasets is crucial. INT8 is especially beneficial for deploying models on edge devices and for cloud inference where reducing memory bandwidth is critical. For large models, fitting a 70B model into memory requires quantization below 8 bits, so INT8 is often a stepping stone rather than the final solution.
q = round(x / s) where s = max(|x|) / 127INT8 quantization always loses accuracy; in fact, many LLMs retain over 99% of FP16 accuracy when properly calibrated.
Related terms
Concepts you'll usually encounter alongside this one.
FP8 is an 8-bit floating-point format with two variants (E4M3 and E5M2) designed for efficient AI inference and training on modern hardware like NVIDIA H100.
Q8_0 is an 8-bit integer quantization format in llama.cpp that balances high accuracy with good compression, offering near-lossless quality for many LLMs.
GGUF is a binary format for storing quantized LLM models, designed for efficient CPU and GPU inference, superseding GGML.
The rate at which a language model generates or processes tokens, commonly used to measure inference throughput.
Used in benchmarks
Workloads on MyAI Bench that involve INT8.
Mentioned in tutorials
Hands-on guides that put this concept to work.
Squeeze a 70-billion-parameter model onto a single RTX 4090 by quantizing weights to 4 bits. Quality stays high, VRAM usage drops to 24 GB.
What quantization actually does to a model, why Q4_K_M is the default sweet spot, and when to deviate. A practical reference for picking quants.
See how this term affects your memory budget.
Real numbers, real chips, every workload.
Picks for builders, by use case.
Stay Ahead of the AI Curve
Get weekly AI hardware news, benchmark updates, and deals in your inbox. Founding-subscriber list, be one of the first.