Efficient Inference Back to compression reports

Research arm 01 · Literature review

Activation Compression at LLM Inference

A grouped, cross-checked map of the field: what gets compressed (weights, activations, bytes in flight, KV state), where it happens, what it costs to deploy, what breaks it, and what you can use off the shelf today. Our own pipeline-wire quantization results sit in a clearly separated panel. Use the filters to slice the 116 entries by what is compressed, deployment cost, or entry type.

Compiled 2026-08-24 116 entries 9 groups

Six takeaways

  1. 8-bit activation compression is quality-free everywhere it has been measured. INT8/FP8/MXFP8 hold on compute (SmoothQuant to the FP8 formats study), in shipped frontier checkpoints, and on the pipeline wire in our own experiments at every depth and model size tested.
  2. At 4 bits, scale granularity, not bit width, decides survival. Per-token INT4 collapses; microscaled blocks hold (MXFP4: 32 values per E8M0 scale; NVFP4: 16 values per E4M3 scale plus a global). The rotation literature (MR-GPTQ, BRQ, PeRQ), the format benchmarks (M2XFP, the MX PTQ benchmark), a recursive-model study, and our own wire experiments all converge on this.
  3. No mainstream framework quantizes the pipeline-parallel wire. vLLM, SGLang and TensorRT-LLM all send stage-boundary activations at native dtype; SGLang's own 2026 communication quantization roadmap omits PP point-to-point. The only shipped quantized wires are TP/EP collectives, vLLM's SP all-gather, and Petals' opt-in 8-bit WAN path.
  4. Error accumulation across decode steps is almost never measured. The verified core survey found zero decode-horizon sweeps in the field. Our probes fill that gap: wire error does not accumulate over decode steps at any format, depth or size tested; boundary count is the only accumulation axis, and only under too-coarse scales.
  5. Frontier checkpoints already ship compression natively, and their exclusion lists are a map of what resists it. DeepSeek ships FP8 (and FP4 experts in V4), Kimi K3 ships MXFP4 weights with MXFP8 activations via QAT, Qwen ships FP8 repos. All of them exclude routers, and the hybrid models exclude every module touching the linear-attention recurrent state.
  6. Hardware decides what is free. FP8 is native from Ada up; microscaled FP4 exists only on Blackwell (sm_100/sm_120, including the RTX 5090). Wire compression pays most on PCIe-only consumer boxes and least inside NVLink domains, where an NVL72 rack makes a PP hop nearly free.

How this page was built. The 10 core wire-compression records carry over from a field-by-field verified survey (each field re-checked against the paper PDF by an independent verifier, with escalation; completed 2026-08-22). The other entries were researched and then adversarially fact-checked by an independent agent per topic on 2026-08-24: every arXiv id fetched and title-matched, every repository link resolved, hardware and framework claims checked against official documentation and source code. 45 verifier corrections are applied in the text; each card's details note whether it was confirmed or corrected. Entries the screening pass surfaced but did not profile are listed in the appendix, so coverage limits are visible rather than silent.

The nine groups

Ordered as a reading path that runs from the site of our own work outward. Group 1 opens at the wire: what has ever been compressed in flight, and the documented fact that no mainstream framework quantizes the pipeline hop. Groups 2 to 4 supply the vocabulary those results are written in: weight-only quantization as the control, the granularity ladder from W8A8 smoothing to microscaled FP4, and the rotation line, whose FP4-era finding (transform support must match the scale block) is the literature's explanation for our granularity result. Group 5 covers the non-quantization alternatives, group 6 the failure science, group 7 the modern-architecture question for DeepSeek, Kimi and Qwen, group 8 the practitioner layer of frameworks, hardware and tools, and group 9 marks the KV-cache boundary.

Compressed
Needs Type

1 Compressing activations on the wire 15

Everything that changes the bytes of an activation tensor in flight between devices, the site our codec targets. The verified survey records cluster on slow links: internet-scale pipeline hops (Petals, VcLLM's video codecs), single-split edge/cloud systems, and TP/SP collectives where quantization pays only when the interconnect is slow. The framework subgroup documents the gap our work fills: vLLM and SGLang send PP-stage activations in native dtype, SGLang's 2026 communication-quantization roadmap omits PP point-to-point, and the only shipped quantized wires are TP/EP collectives plus vLLM's SP all-gather. Lossless codecs (BloomBee, UCCL-Zip) bound zero-risk wire compression near 1.5x.

Pipeline hops and edge/cloud splits (lossy)

VcLLM: Video Codecs are Secretly Tensor Codecs (published as LLM.265, MICRO 2025)

PaperMICRO 2025IN-PPField-verified record

3.5 bits/value from FP16 = 4.5x volume reduction on inter-stage activations, reported as 4.5x communication reduction; activations alone +5% perplexity (RTN 4-bit: +13%). With KV at 2.9 bits: WikiText-2 ppl 7.28→7.77 (+7%), PIQA 81.5%→80.7% (-1%). No wall-clock inference latency measured.

Verified record
Mechanism
Two-stage: channel-wise RTN quantization of the runtime tensor to INT8, then H.265/HEVC encoding to a fractional target bitrate (3.5 bits/value inter-stage). Hardware video codec as tensor codec (NVENC/NVDEC); chunks fed in as 8-bit Luma-only frames; intra-frame prediction, DCT, CTU partitioning, CABAC; inter-frame prediction disabled. Fractional/variable bit-width, CTU-level mixed precision.
Topology
pp_stage_boundary (group: multi-device pipeline hop), hidden activations crossing each of the 4 PP stage boundaries of LLaMA-3-70B
Headline result
3.5 bits/value from FP16 = 4.5x volume reduction on inter-stage activations, reported as 4.5x communication reduction; activations alone +5% perplexity (RTN 4-bit: +13%). With KV at 2.9 bits: WikiText-2 ppl 7.28→7.77 (+7%), PIQA 81.5%→80.7% (-1%). No wall-clock inference latency measured.
Accumulation over decode
not_measured - reports WikiText-2 perplexity and zero-shot PIQA/commonsense accuracy (likelihood scoring); no decode-step horizon and no drift over generation.
Failure mode
Hardware codec throughput ceiling: NVENC ~900MB/s and NVDEC ~1100MB/s cap end-to-end bandwidth at 900MB/s, called insufficient for tensor volumes in distributed inference.

arXiv:2407.00467 every field re-verified against the paper PDF in the source survey

Distributed Inference and Fine-tuning of Large Language Models Over The Internet

PaperNeurIPS 2023IN-PPField-verified record

Compression's own claim is 2x ('halves the bandwidth requirements'), with bit width, block size and baseline precision never stated; quality 'without any noticeable effect' is attributed to Ryabinin et al. 2023, not measured here. System-level measured win: >=10x faster autoregressive generation than local offloading.

Verified record
Mechanism
Dynamic blockwise quantization (Dettmers et al., 2022b) applied to hidden states before pipeline-parallel communication, to send less data between stages. Plus 8-bit mixed matrix decomposition (LLM.int8()): hidden states and weights split into ~0.1% 16-bit outlier values and 99.9% 8-bit regular values.
Topology
pp_stage_boundary; single_device_intra_layer; other (group: multi-device pipeline hop), geo-distributed stages, plus a client-side activation cache for failover
Headline result
Compression's own claim is 2x ('halves the bandwidth requirements'), with bit width, block size and baseline precision never stated; quality 'without any noticeable effect' is attributed to Ryabinin et al. 2023, not measured here. System-level measured win: >=10x faster autoregressive generation than local offloading.
Accumulation over decode
not_measured - no per-step drift study at any horizon; the paper's own quality evidence is zero-shot accuracy for 8-bit weights (Table 4) plus steps/s at 128 and 2048 tokens
Failure mode
absence confirmed - not stated

arXiv:2312.08361 every field re-verified against the paper PDF in the source survey

Petals + hivemind BLOCKWISE_8BIT: PP-boundary activation compression in a shipped system

Repo2023int8 blockwise, block size 4096 (bitsandbytes quantize_blockwise)Training-free

Petals is the one open serving system that quantizes activations on the pipeline-stage wire: hivemind's BlockwiseQuantization compresses hidden states to 8 bits before inter-server pipeline-parallel transfer, halving bandwidth. It targets decentralized internet serving, not a datacenter framework.

Details
Mechanism
hivemind.compression.BlockwiseQuantization (compression_type = runtime_pb2.BLOCKWISE_8BIT) calls bitsandbytes quantize_blockwise during tensor serialization on the RPC path between consecutive Petals servers, and dequantizes on receipt. Selected per-server through the --compression flag, plumbed as getattr(CompressionType, compression_type).
Key numbers
_BLOCKWISE_QUANTIZATION_BLOCKSIZE = 4096. Paper: "we apply dynamic blockwise quantization to the hidden states before pipeline-parallel communication, which halves the bandwidth requirements without any noticeable effect on generation quality". Petals --compression defaults to 'NONE', so it is opt-in.
Ecosystem
The closest prior art to PP wire quantization, worth citing honestly rather than claiming the idea is untouched. But the design targets slow WAN links rather than NVLink/IB, stops at 8 bits, and its 4096-element block is 128-256x coarser than the microscaled blocks (32 for MXFP4, 16 for NVFP4) our results indicate are needed to hold 4-bit at depth. No depth study, no 4-bit wire path.

arXiv:2312.08361 · Code · Source adversarially re-checked: confirmed

FourierCompress: Layer-Aware Spectral Activation Compression for Efficient and Accurate Collaborative LLM Inference

PaperarXiv 2025IN-PP (escalated)Field-verified record

Avg 7.6x activation-size reduction (per-dataset 5.8x-10.3x) within 0.3% of the uncompressed baseline across all four models and ten datasets; 10.3x still under the 0.3% near-lossless threshold, while the most sensitive dataset tolerates only 5.8x. PIQA 74.6% at Layer 1.

Verified record
Mechanism
2D FFT of the whole first-layer activation matrix (tokens x hidden size) into the frequency domain, a spectral transform, not a quantizer; low-frequency retention keeping only the top-left K_S x K_D block; conjugate-symmetry-aware reconstruction by zero-padding plus 2D IFFT on the server; layer-aware split at layer 1; no quantization or entropy coding of kept coefficients.
Topology
pp_stage_boundary (re-verified). Group: edge/cloud split (pp token forced), the survey flags this as an enum-forced mapping; reader: 'no device/server topology token'
Headline result
Avg 7.6x activation-size reduction (per-dataset 5.8x-10.3x) within 0.3% of the uncompressed baseline across all four models and ten datasets; 10.3x still under the 0.3% near-lossless threshold, while the most sensitive dataset tolerates only 5.8x. PIQA 74.6% at Layer 1.
Accumulation over decode
not_measured (re-verified) - no decode-step drift experiment; reports one accuracy number per dataset (Tables II/III) plus average client response time, and argues only that bandwidth grows with output length
Failure mode
Deeper split layers: at the same ratio PIQA accuracy falls from 74.6% at Layer 1 to 48% at Layer 15; deep activations are high-entropy and resist compression

arXiv:2510.16418 every field re-verified against the paper PDF in the source survey

Memory- and Latency-Constrained Inference of Large Language Models via Adaptive Split Computing

PaperarXiv 2025IN-PP (escalated)Field-verified record

At Q-bar_a=4, tau=5 (outliers lossless via CSR): 70.77 HS / 74.43 BoolQ / 76.33 PIQA vs Atom 69.67/68.47/75.46; at 3 bits 69.22 HS vs Atom 55.26. Full pipeline mostly within 0.5 pt of baseline, worst drop 2.70 pts (Mistral-Nemo BoolQ). 1.49x speedup (abstract only, absent from body).

Verified record
Mechanism
Threshold splitting (TS): magnitude-thresholded outlier/dense split, |T|>=tau kept lossless in CSR form. TAB-Q: token-wise asymmetric integer quantization of the sub-threshold remainder, bit-width lowered iteratively until distortion exceeds tolerance Delta. Sign-magnitude decomposition; lossless rANS coding (DietGPU); OPSC weight quantization fixing front/back activation budgets.
Topology
pp_stage_boundary (re-verified). Group: edge/cloud split (pp token forced), verifier found zero parallelism vocabulary in the paper; two-device wireless edge/cloud split at layer l=20
Headline result
At Q-bar_a=4, tau=5 (outliers lossless via CSR): 70.77 HS / 74.43 BoolQ / 76.33 PIQA vs Atom 69.67/68.47/75.46; at 3 bits 69.22 HS vs Atom 55.26. Full pipeline mostly within 0.5 pt of baseline, worst drop 2.70 pts (Mistral-Nemo BoolQ). 1.49x speedup (abstract only, absent from body).
Accumulation over decode
partial (re-verified) - single horizon only: Table 2 accuracy with compression active at W-bar = 50 edge-generated tokens; no accuracy-vs-decode-step curve; Fig 6 varies token length but reports data size only
Failure mode
TAB-Q without TS collapses quality: 13B HellaSwag 77.31 → 45.26, ARC-e 79.12 → 33.68, PIQA 78.89 → 55.60; also tau = 1 gives a poor compression ratio (Fig 7)

arXiv:2511.04002 every field re-verified against the paper PDF in the source survey

Understanding Rate-Distortion Performance in Distributed Transformer Inference

PaperarXiv 2026IN-TRANSFORMField-verified record

150 bits/token vs 12,288 uncompressed = 98.8% compression at the same perplexity as uncompressed; best tabulated point 155.94 BPT, ppl 20.64 vs 20.71, LAMBADA 0.2713 vs 0.2961. Rate 206 BPT = 1.67% of raw; GPU coding 2.25 uSPT, wall-to-wall 4.31 vs 122.88 uSPT at an assumed 100 Mbps.

Verified record
Mechanism
Learned neural codec on the intermediate representation: rate-constrained analysis (the transformer's own first module) + quantization + learned entropy model + arithmetic coding. Integer rounding of Y and hyper-prior W with straight-through gradients; hyper-prior bottleneck 768→24 channels sent as side information; three entropy models compared; Lagrangian RD optimization (Eq. 10); rANS coder.
Topology
pp_stage_boundary. Group: edge/cloud split (pp token forced), reader notes pp_stage_boundary is 'a term it never uses'; split points 3/6/9 of GPT-2 Small's 12 blocks
Headline result
150 bits/token vs 12,288 uncompressed = 98.8% compression at the same perplexity as uncompressed; best tabulated point 155.94 BPT, ppl 20.64 vs 20.71, LAMBADA 0.2713 vs 0.2961. Rate 206 BPT = 1.67% of raw; GPU coding 2.25 uSPT, wall-to-wall 4.31 vs 122.88 uSPT at an assumed 100 Mbps.
Accumulation over decode
not_measured - reports validation perplexity and LAMBADA accuracy over fixed 1,024-token teacher-forced context windows; no multi-step decode horizon or drift is reported
Failure mode
RD degrades with split depth: ~156 BPT gives perplexity 20.64 at split 3, while split 9 needs 432.86 BPT for a worse 20.97 (GPT-2 Small, deep factorized)

arXiv:2601.22002 every field re-verified against the paper PDF in the source survey

TP and SP collectives

Communication Compression for Tensor Parallel LLM Inference

PaperarXiv 2024BR-TPSPField-verified record

TTFT speed-up 1.2x-2x (best 2.08x, Llama 2 70b on 8xL4, 1.07s→0.52s at 4.25 effective bits); activations compressed 3.5-4.5x. Wikitext2 perplexity +0.48% to +3.22% relative vs FP16 at 4.2-5.2 effective bits; at 3.2 bits (lowest tested) +19.67% / +31.07% / +5.50%.

Verified record
Mechanism
Fine-grained block-wise low-bit quantization (OCP microscaling / MX) of the communicated activation, decompressed before the reduction. Grid of low-bit dtypes (FP5 E3M1/E2M2/E1M3, FP4 E2M1/E1M2, FP2 E1M1, INT3/4/5), block sizes 8/16/32, scale dtypes E8M0-E4M0; shared-exponent block encoding. Baselines at the same site: channel-wise INT quantization and TopK sparsification.
Topology
tp_collective (group: TP / SP collective), partial-result activations output by each row-wise TP linear layer, on the all_gather that precedes the reduction
Headline result
TTFT speed-up 1.2x-2x (best 2.08x, Llama 2 70b on 8xL4, 1.07s→0.52s at 4.25 effective bits); activations compressed 3.5-4.5x. Wikitext2 perplexity +0.48% to +3.22% relative vs FP16 at 4.2-5.2 effective bits; at 3.2 bits (lowest tested) +19.67% / +31.07% / +5.50%.
Accumulation over decode
not_measured - reports only prefill TTFT (median of 32 model forward passes) and Wikitext2 perplexity; no multi-step decode or error-accumulation experiment
Failure mode
Fast interconnect / low TP degree: on 4xA100 (600GB/s) and 2xL4 the quantization overhead exceeds the communication saving, so TTFT speedup falls to 0.56x-1.03x (net slowdown)

arXiv:2411.09510 every field re-verified against the paper PDF in the source survey

ASTRA: Communication-Efficient Acceleration for Multi-Device Transformer Inference

PaperarXiv 2025BR-TPSP (escalated)Field-verified record

Up to 2.64x end-to-end latency speedup over single-device inference and 15.25x over the best prior multi-device method at bandwidth as low as 10 Mbps. 1638.4x compression (640 bits/token) at PPL 5.81→7.73; 51.2x gives 5.8118→7.4360; ViT-Base within 3.58% top-1 even at 2457.6x.

Verified record
Mechanism
Vector quantization: each token embedding mapped by nearest-neighbour codebook lookup to one index, only log2 K bits transmitted (K=1024 gives 10 bits) instead of rD bits. Mixed-Precision Attention concatenates full-precision local K/V with code-derived non-local K/V inside one softmax. Grouped VQ (G in {1,16,32}); Distributed Class Tokens; a separate VQ codebook per block.
Topology
sp (re-verified). Group: TP / SP collective, per-token hidden-state embedding X exchanged all-to-all at the input of every Transformer block's self-attention
Headline result
Up to 2.64x end-to-end latency speedup over single-device inference and 15.25x over the best prior multi-device method at bandwidth as low as 10 Mbps. 1638.4x compression (640 bits/token) at PPL 5.81→7.73; 51.2x gives 5.8118→7.4360; ViT-Base within 3.58% top-1 even at 2457.6x.
Accumulation over decode
not_measured (re-verified) - no decode-step horizon: for LMs ASTRA compresses only prefill and decode is uncompressed on one device; reports perplexity, downstream accuracy and prefill/TTFT latency instead
Failure mode
Zero-shot / out-of-distribution generalization: GPT2-M zero-shot Wikitext-103 PPL 43.22 → 62.29 at G=32, attributed to reduced diversity of the discrete embedding space

arXiv:2505.19342 every field re-verified against the paper PDF in the source survey

vLLM SequenceParallelismPass: FP8/NVFP4 all-gather (a real quantized TP wire)

Framework2026FP8 e4m3 static per-tensor; NVFP4 E2M1 with a separately all-gathered block-scale tensorHardware / kernels

CRITICAL FIND: vLLM's SequenceParallelismPass rewrites the graph to reduce_scatter → rms_norm → quant → all_gather, so the all-gather leg genuinely carries FP8 or NVFP4 bytes across the tensor-parallel wire. The reduce-scatter leg stays in the unquantized input dtype.

Details
Mechanism
A torch.compile pattern matcher replaces all_reduce+RMSNorm(+quant) with the sequence-parallel form. In FirstAllReduceRMSNormStaticFP8Pattern.replacement the quant matcher runs on the RMSNorm output and the result is passed to _all_gather(quant). The NVFP4 variant calls scaled_fp4_quant then all-gathers the packed E2M1 data and its block-scale tensor as two separate collectives.
Key numbers
enable_sp: off by default (pinned via IS_DENSE=False, vllm 25689); requires FULL-graph compilation (inductor graph partition or empty splitting_ops; piecewise is NOT supported). Gated to compute capability 90 (H100) and 100/103 (datacenter Blackwell) at hidden_size >= 8192, plus XPU at 4096, above an autoconfigured token threshold. fuse_allreduce_rms: on at -O2 for Hopper/Blackwell with TP>1 plus FlashInfer.
Ecosystem
Important nuance for our framing: upstream vLLM does compress activations on the TP/SP wire, but only as a by-product of fusing the next layer's quantization epilogue, and only on the all-gather (pure data-movement) leg. The plain fuse_allreduce_rms pattern (AllReduce → RMSNorm → quant) reduces in high precision and quantizes afterwards, so it is not wire compression. Neither path applies to PP.

Code · Source adversarially re-checked: corrected here

SGLang merged communication-quantization paths (Ascend TP, DeepEP FP8, ROCm fused all-reduce)

Framework2026FP8 e4m3, per-group and per-token; Ascend-specific TP compressionHardware / kernels

Three merged SGLang PRs do compress activations on a parallelism wire, but each is hardware- or model-specific: Ascend NPU TP compression for Qwen3, DeepEP low-latency FP8 dispatch for W4A8, and a ROCm fused all-reduce+RMSNorm+per-group-FP8 kernel.

Details
Mechanism
The Ascend path compresses TP collective payloads for Qwen3 on NPU. DeepEP dispatches expert-parallel tokens as FP8 (data, scale_factors) tuples while combining expert outputs in BF16. The ROCm kernel fuses the all-reduce epilogue with RMSNorm and per-group FP8 quantization so the next GEMM's input is produced in place, rather than compressing the reduction itself.
Key numbers
Merged: PR 20520 2026-05 (Ascend TP, Qwen3); PR 22316 2026-04 (DeepEP low-latency dispatch FP8, DeepSeek-R1 W4A8; the dispatcher now also supports NVFP4 and INT8 dispatch dtypes); PR 24651 2026-07 (AMD fused all-reduce + RMSNorm + per-group FP8, Qwen3.5). Open: PR 29723 (per-token FP8/MXFP4), PR 32479 (SM120 PCIe FP8 DMA ring). PR 17262 (ROCm AITER) closed unmerged.
Modern architectures
The EP dispatch/combine path is MoE-specific and is where most shipped comm quantization lives, because expert routing moves tokens without reducing them.
Ecosystem
None of these touch the PP stage boundary; all are TP or EP collectives. DeepEP's asymmetry (FP8 dispatch, BF16 combine) matches the general pattern that reductions resist low precision while pure data movement tolerates it. SGLang's own flashinfer_comm_fusion.py uses only kAllReduce and kARResidualRMSNorm patterns with no quant epilogue, so the CUDA fusion path is unquantized.

Source adversarially re-checked: corrected here

Lossless controls

Distributed Generative Inference of LLM at Internet Scales with Multi-Dimensional Communication Optimization (BloomBee)

PaperBR-DISAGG (gate: BR-DISAGG passed)Field-verified record

46% of raw size (~2.2x) vs ZSTD 69% / ZipNN 71%, 300 ms to compress 76.5 MiB; in-system only 416.4→312.6 KB per hop (~1.33x). Compression alone +18.4% throughput in E5 (20 Mbps), NIC-to-NIC 269→217 ms; whole system up to 1.76x throughput, -43.20% latency. Quality delta 0 by construction.

Verified record
Mechanism
Lossless byte-split (byte-lane) layout transform on serialized FP16 activations, then ZSTD entropy coding; explicitly no quantization. New bit-separation: high byte = sign + 5-bit exponent + top 2 mantissa bits, low byte = low 8 mantissa bits. Plus learned-classifier pruning of draft-tree candidate token states before the internet hop and padding-free packing.
Topology
pp_stage_boundary (group: multi-device pipeline hop), stage output activation compressed host-side in a CPU staging buffer, sent over the internet
Headline result
46% of raw size (~2.2x) vs ZSTD 69% / ZipNN 71%, 300 ms to compress 76.5 MiB; in-system only 416.4→312.6 KB per hop (~1.33x). Compression alone +18.4% throughput in E5 (20 Mbps), NIC-to-NIC 269→217 ms; whole system up to 1.76x throughput, -43.20% latency. Quality delta 0 by construction.
Accumulation over decode
not_measured - codec is lossless so no drift can accumulate; paper reports throughput, NIC-to-NIC transfer time, compressed size, and SD acceptance rate over runs of 128 output tokens
Failure mode
At high bandwidth the codec's cost exceeds its saving: NIC-to-NIC unchanged in E1 (4→4 ms) and E2 (7→7 ms), so the planner disables compression in those environments

arXiv:2604.21072 every field re-verified against the paper PDF in the source survey

UCCL-Zip: Lossless Compression Supercharged GPU Communication

PaperarXiv (Apr 2026)lossless compression of communication buffers - no precision lossTraining-free

Puts lossless compression inside the GPU communication primitives themselves, so the wire gets narrower with no numerical change at all. The lossless bound against which lossy wire quantization should be measured.

Details
Mechanism
ANS entropy coding over floating-point exponent fields, extending DietGPU into the communication layer: Uzip-P2P for point-to-point transfers with a split-send pipeline overlapping compression with transmission, and Uzip-NCCL integrating compression into NCCL's persistent kernels (NCCL 2.23.4). Numerical correctness is preserved exactly; no application changes.
Key numbers
Accelerates RL weight synchronization by up to 47.5%; cuts vLLM end-to-end inference latency by up to 10%. Measured lossless ratios: 0.679 for BF16 activations (~1.47x), 0.675 BF16 weights, 0.848 FP32 gradients. That 1.47x is the hard zero-risk control number any lossy wire codec must beat.
Modern architectures
The essential control for our contribution: it shows what the wire buys you with zero quality risk (~10% end-to-end), which is the number lossy wire quantization must beat to justify any accuracy exposure. Also note the ceiling - lossless ratios on activation tensors are far below the 2-4x that int8/fp8/mxfp8 achieve.
Ecosystem
Part of the UCCL stack and integrated into NCCL and vLLM, with Berkeley/AWS-affiliated authors, so closer to deployable infrastructure than most items here.

arXiv:2604.17172 · Code adversarially re-checked: corrected here

The PP gap in shipped frameworks

The PP-boundary gap: send_tensor_dict/recv_tensor_dict transmit native dtype (vLLM and SGLang)

Framework2026n/a

Both vLLM and SGLang send pipeline-parallel stage activations with torch.distributed.isend in their original dtype, with no quantization, casting, or compression hook on the path. As of 2026-08 no mainstream serving framework quantizes PP-boundary activations upstream.

Details
Mechanism
send_tensor_dict splits the dict into a metadata list plus a tensor list and isends each tensor as-is. TensorMetadata carries the source dtype, and the receiver allocates torch.empty(value.size, dtype=value.dtype, device=value.device) to match exactly. No scale is computed, transmitted, or applied anywhere on the stage boundary.
Key numbers
Zero quantization call sites in the PP transfer of vllm/distributed/parallel_state.py; identical in sglang srt/distributed/parallel_state.py (send_tensor_dict at line 1685, torch.distributed.isend/send on native-dtype tensors). PP-quantization issue searches return zero hits in vllm, sglang and TensorRT-LLM.
Ecosystem
The gap our work targets. Corroborating: SGLang roadmap #31783 Section 4 lists TP, EP, CP, all-gather, reduce-scatter, all-reduce and disaggregated KV transfer as the axes needing a wire format, omitting PP P2P; TensorRT-LLM's quantization page covers FP4/FP8/NVFP4 weights, activations and KV cache but never mentions communication precision. The only low-precision wire paths upstream are vLLM's SP all-gather and SGLang's TP/EP collectives.

Code · Source adversarially re-checked: confirmed

SGLang Quantization 2026 H2 roadmap, Section 4 "Communication Quantization"

Doc2026n/a

The live SGLang quantization roadmap has a dedicated Communication Quantization section whose open item enumerates every wire axis it intends to define a format for: TP, EP, CP, all-gather, reduce-scatter, all-reduce, and disaggregated KV transfer. Pipeline-parallel P2P is absent.

Details
Mechanism
The section tracks per-path comm quantization as merged PRs plus two unowned generalization items: "Generalize communication quantization beyond individual Qwen3, DeepEP, AITER, and hardware-specific paths" and "Define scale ownership and wire format for TP, EP, CP, all-gather, reduce-scatter, all-reduce, and disaggregated KV transfer."
Key numbers
Issue #31783, opened 2026-07-20, updated 2026-07-29, open. Section 4 holds 3 merged PRs, 3 open PRs and 2 unowned generalization items. Section 3 separately notes: "Add quantized KV transfer for disaggregated serving. No dedicated implementation PR is currently tracked."
Ecosystem
Primary documentary evidence for the PP gap: SGLang treats communication quantization as a first-class 2026 objective, yet never lists the pipeline-stage P2P boundary among the axes needing a wire format or scale-ownership rule. The predecessor roadmap (#8180, opened 2025-07-20, now closed) carried "Communication Quantization" as a single unchecked box.

Source adversarially re-checked: confirmed

SGLang chunked pipeline parallelism

BlogLMSYS Org blog, 2026-01-15n/a

SGLang's PP redesign cuts inter-stage communication by architecture (chunked prefill, async P2P, dynamic chunking) rather than by reducing the precision of the hidden states crossing the boundary.

Details
Mechanism
Replaces collective-heavy patterns with point-to-point stage transfers overlapped against compute, and dynamically sizes chunks to keep the pipeline full. Communication volume falls because fewer and better-scheduled tensors move; the payload dtype stays the model's activation dtype.
Key numbers
Flags: --pp-size, --chunked-prefill-size, --enable-dynamic-chunking, SGLANG_DYNAMIC_CHUNKING_SMOOTH_FACTOR (default 0.75), SGLANG_PP_LAYER_PARTITION. "the activation precision is FP8 (1 byte)" appears only as an assumption inside the analytical comm-volume formula, not as an implemented wire dtype.
Ecosystem
Useful negative evidence: the most recent and most heavily engineered upstream PP work in either major framework reduces bytes on the stage boundary without touching precision. That leaves wire quantization orthogonal to, and composable with, the state of the art in PP scheduling.

Source extracted from local verified reports

What the field measures, and what it does not

Where compression sits: only 2 of 10 records put a compressed activation on a multi-device pipeline hop during autoregressive serving, both over slow links not datacenter interconnects, VcLLM/LLM.265 (4-device PP, ~3.5 bits/value via hardware video codecs) and Distributed Inference over the Internet (geo-distributed stages, blockwise quantization; evidence is one implementation sentence, quality claim a citation, and its client-side cache strains the no-retention clause, unadjudicated). BloomBee's PP-hop codec is lossless and its planner disables it when bandwidth is high. Three more pp_stage_boundary columns are enum-forced: FourierCompress, Adaptive Split Computing and Rate-Distortion are single-split edge/cloud systems, two never using parallelism vocabulary. The rest: TP collective, SP boundary, single device. Nothing measures a compressed inter-stage path in a conventional multi-GPU, single-datacenter deployment: the IN-PP centre holds edge-offloading systems and one video-codec repurposing. Accumulation over decode is measured by nobody: not_measured in nine records, partial in one (Adaptive Split Computing, one 50-token horizon, no drift curve). All ~59 operating points score quality by teacher-forced perplexity or likelihood-scored multiple choice; verifiers grep-confirmed no decode-horizon sweep in seven records. Both learned codecs sit off the decode path: ASTRA compresses prefill only (decode uncompressed on one device), Rate-Distortion is teacher-forced over fixed 1,024-token windows. Massive Activations too; its verifier objected the "during autoregressive generation" clause is unmet. The field reports compressed activations tolerable per forward pass and never asks whether error compounds token over token. Other gaps: error_compensation is "none" in all ten (IN-ERRCOMP has zero instances; its one dedicated candidate died at the BR-ARCH gate). Low-rank projection, named in scope and a scout angle, never appears: no rank truncation, rank branch never used. The sole BR-W8A8 record, LLM.int8(), does not deliver its admitting clause (no ablation varies activation bits with weights fixed), so modern activation quantization (ten scout-confirmed admits cut by the cap) is unrepresented, not refuted. Efficiency is topology-bound: quantized TP collectives net-slow on fast interconnects (0.56-0.88x on A100s), BloomBee disables its codec above low bandwidth; compression pays only where the link is slow, where no accumulation question is asked.

Our results on the wire

We built PP-boundary wire quantization in SGLang. Stock SGLang ships pipeline inter-stage activations as raw model-dtype (bf16) bytes unconditionally; a repo-wide sweep found no option or code path that compresses the PP wire. The new codec (python/sglang/srt/managers/scheduler_pp_mixin.py, branch research/pp-activation-int8, activated by SGLANG_PP_ACTIVATION_WIRE_QUANT=int8|fp8|int4|mxfp8|mxfp4|nvfp4 with --pp-size >= 2) quantizes exactly the two boundary tensors, hidden_states and residual ([tokens, hidden_size]), just before send_tensor_dict and rebuilds bf16 immediately after receive, so the model, CUDA graphs, and all math still see bf16; only the bytes in flight change. Layer-internal activations, GEMM inputs, and the output ring (token ids, logprobs) are untouched. This is deliberately the opposite site from MXFP8/NVFP4 GEMM work: that quantizes what tensor cores compute, we quantize what the interconnect carries. Evaluated on Qwen3.6-35B-A3B (hybrid MoE, 30 gated-delta-net recurrent + 10 full-attention layers, H=2,048) at 1/3/7 boundaries (pp2/tp2, pp4/tp1, pp8/tp1) and Qwen3.5-122B-A10B-FP8 (H=3,072, 1.5x payload) at 3 and 7 boundaries, on 4x and 8x RTX 5090 (PCIe, no NVLink), SGLang dev @ c1ff73797. Metrics: WikiText-2 teacher-forced NLL (24 x 1,024-token windows), GSM8K exact match (n=100, greedy, thinking disabled, numeric grading), a positionwise probe (256 and 1,024 steps, teacher-forced on frozen bf16 greedy trajectories) and bench_serving. Conclusions in the reports' own terms: 8-bit is quality-free at every tested depth and both sizes; per-token INT4 "fails multiplicatively with pipeline depth"; "microscaling rescues 4-bit completely; granularity, not bit-width, was the operative variable"; the two microscaled 4-bit formats separate at scale, so the 4-bit recommendation is specifically nvfp4; and wire error does not accumulate over decode steps at any format, depth, or model size tested. Boundary count is the only accumulation axis, and only when scale granularity is too coarse for the activation outlier structure.

Headline results (14 rows)
ConfigurationResult
Qwen3.6-35B-A3B, INT8 wire, 1 / 3 / 7 boundaries (pp2/tp2, pp4/tp1, pp8/tp1)NLL +0.11% / +0.03% / +0.29% vs each topology's own BF16 control; GSM8K 97% / 96% / 99% (BF16 97/97/96). Quality-free at every tested depth for a full 2.00x wire cut (4,104 vs 8,192 B per token per boundary).
Qwen3.6-35B-A3B, MXFP8 (E4M3 + one E8M0 scale per 32 values), 1 / 3 / 7 boundariesNLL +0.02% / +0.03% / +0.08%; GSM8K 97% / 95% / 96%. Smallest seven-boundary NLL penalty of any tested 8-bit format, but its scale metadata makes it 4,224 B (1.94x) against INT8's 4,104 B (2.00x).
Qwen3.6-35B-A3B, FP8 E4M3 per-token, 1 and 3 boundaries (not run at 7)NLL -0.00% / +0.06%; GSM8K 96% / 94%. Quality-safe in the four-GPU grid, but with no seven-boundary point and overlapping GSM8K Wilson intervals at n=100 the report declines to name a universal 8-bit winner.
Qwen3.6-35B-A3B, per-token INT4 (one FP32 scale across all 2,048 values), 1 / 3 / 7 boundariesNLL +11.04% / +59.26% / +189.63% (perplexity 6.64 to 240); GSM8K 64% / 3% / 0%. Damage per hop accelerates: 0.21 → 0.37 → 0.51 nats per boundary, the signature of error re-injected and amplified, not averaged away.
Qwen3.5-122B-A10B-FP8, per-token INT4, 3 and 7 boundaries (pp4/tp2, pp8/tp1)NLL +421.20% / +495.31%, GSM8K 0% at both depths. The collapse is worse than on the 35B and saturates earlier.
Qwen3.6-35B-A3B, MXFP4 (E8M0/32) and NVFP4 (E4M3/16 + token global) at 1 / 3 / 7 boundariesMXFP4 +0.19% / +0.53% / +1.66% NLL with GSM8K 96/99/98%; NVFP4 +0.11% / +0.05% / +0.43% with 97/97/95%. Same 4-bit value width as the failing INT4, yet statistically indistinguishable from INT8 at 3.76x and 3.54x.
Granularity vs bit-width: per-token INT4 against NVFP4, identical 4-bit values, 35B at 7 boundaries+189.63% NLL and 0% GSM8K versus +0.43% and 95%. One token-wide scale lets a single outlier channel crush the other 2,047 values at 15 levels; a 16-value block sacrifices only its own block. Granularity, not bit-width, is the operative variable.
Qwen3.5-122B-A10B-FP8, MXFP4 (E8M0/32) vs NVFP4 (E4M3/16), 3 and 7 boundariesMXFP4 +2.56% / +6.65% NLL and 97% / 89% GSM8K; NVFP4 +0.75% / +1.86% and 96% / 98%. The sharpest new result of the scale-up: the two microscaled 4-bit formats, interchangeable on the 35B, separate at depth and cost MXFP4 8 GSM8K points.
Qwen3.5-122B-A10B-FP8, INT8, 3 and 7 boundariesNLL +0.59% / +1.17%, GSM8K flat at 96% / 96% (BF16 96% / 97%). 8-bit stays free at the larger size too; nothing in the study makes 8-bit look risky at any reachable depth or size.
Model-size sensitivity: every shared usable format at 7 boundaries, 35B vs 122B-FP8NLL penalties are roughly 4x larger on the 122B: INT8 +0.29% → +1.17%, NVFP4 +0.43% → +1.86%, MXFP4 +1.66% → +6.65%. H 2,048 → 3,072 is a 1.5x payload, but size and FP8 weights are confounded, so this is a sensitivity result, not a scaling law.
Temporal probe: 1,024 decode steps at 7 boundaries, 35B, teacher-forced on frozen BF16 trajectoriesSegment-mean top-1 agreement, first → last of eight 128-step segments: BF16 0.988 → 0.993, INT8 0.973 → 0.986, NVFP4 0.973 → 0.983, MXFP4 0.946 → 0.970, INT4 0.230 → 0.293. Every trend flat or slightly positive, even for destroyed INT4.
Temporal probe at other horizons: 256 steps across the pp2/pp4 grid, 1,024 steps at pp4, plus 122B probespp4 1,024-step: INT8 0.979-0.991, NVFP4 0.977-0.991, MXFP4 0.965-0.981 against BF16 self-agreement 0.988-0.993; 122B INT8 0.944 → 0.986, NVFP4 0.923 → 0.973. No accumulation at any format, depth, or horizon tested.
TTFT, 35B, bench_serving with 48 prompts, 1,024 in / 256 out, concurrency 16INT8 cuts median TTFT about 23% at 1 boundary (406 → 312 ms) and 21% at 3 (297 → 234 ms), p99 TTFT down 56-58%. At 7 boundaries every config lands at 181-193 ms: the prefill win disappears as fixed per-hop costs dominate.
Inter-token latency change vs the matching BF16 run, 1 / 3 / 7 boundariesINT8 +3.5% / +3.3% / +6.3% on a fused Triton path; MXFP8 +9.0 / +6.0 / +9.7%; MXFP4 +37.8 / +37.1 / +22.7%; NVFP4 +10.3 / +11.7 / +24.2%. The 4-bit tax is eager PyTorch e2m1 emulation, not intrinsic wire cost.

Recommendations. Use INT8 when the goal is a practical 2x wire cut today: safest current choice, quality-free in every metric measured, fused Triton path, large TTFT gains. MXFP8 is equally deployable at 2x (lowest 7-boundary penalty, +0.08% NLL) but metadata makes it 1.94x, so INT8 stays the practical reference. For ~3.5x, prototype a fused NVFP4 wire path: it alone preserved INT8-grade quality at every depth and both model sizes. The 4-bit recommendation is specifically nvfp4, not "any microscaled format" - block size is a real design variable, not a detail. Do not use per-token INT4 at any depth. Upstreaming wants quantization gated to extend/prefill mode (decode transfers are too small to amortize the kernels), a fused dequant writing straight into graph buffers, row-wise slicing inside send_tensor_dict, and a producer-declared per-key wire policy.

Implementation: SGLANG_PP_ACTIVATION_WIRE_QUANT on the research/pp-activation-int8 branch of our SGLang fork (research PR). The full engineering reports (results, implementation notes, and the verified survey this page builds on) are separate documents and are deliberately not merged into this review.

2 Weight-only quantization: the control group 2

GPTQ and AWQ quantize weights to 3 or 4 bits while activations stay FP16, making them the controls that isolate the activation problem: any W4A4 loss beyond a W4A16 baseline is attributable to the activation side. Both are one-shot, calibration-based, and ubiquitous as checkpoint formats across vLLM, SGLang and HF. They do nothing for a stage-boundary wire or for activation-bound compute, which is why the rest of this review exists. The rotation line's weight-only origin (QuIP#) is filed with the transforms group to keep that lineage intact.

GPTQ

PaperICLR 2023W3/W4A16 weight-only, per-channel or group-wise; 2-bit/ternary in the extreme regimeCalibration data

One-shot second-order weight-only PTQ: layer-wise error compensation using approximate Hessian information, at 3-4 bits per weight. The weight-only reference point for everything in this section.

Details
Mechanism
Per-layer, quantize weight columns in sequence and update the not-yet-quantized columns to compensate the induced error, using a Cholesky-factorized approximation of the layer Hessian from a small calibration set. No gradient training; one pass over the calibration data. Activations untouched.
Key numbers
175B params quantized in ~4 GPU hours to 3-4 bits with negligible degradation; first 175B model in a single GPU for generative inference; ~3.25x end-to-end speedup vs FP16 on A100, 4.5x on A6000.
Modern architectures
Still the algorithmic core of 2026 FP4 work: MR-GPTQ (arXiv:2509.23202) is GPTQ specialized to MXFP4/NVFP4 with block-wise Hadamard transforms, and the 2026 NVFP4 scale-search papers use GPTQ-style reconstruction objectives.
Ecosystem
Official repo github.com/IST-DASLab/gptq; GPTQModel is listed among vLLM's supported quantization methods (verified in vLLM docs), and GPTQ checkpoints are a de facto Hugging Face standard.

arXiv:2210.17323 · Code adversarially re-checked: confirmed

AWQ

PaperMLSys 2024 (Best Paper)W4A16 / W3A16 weight-only, group-wise (typically g128); activations stay FP16Calibration data

Weight-only counterpoint to the joint line: keeps activations in FP16 but uses the activation distribution to decide which weight channels to protect, then scales them up. Included here as the weight-only contrast.

Details
Mechanism
Salient weight channels are identified by activation magnitude, not weight magnitude; protecting ~1% of channels captures most of the error. Rather than mixed precision, AWQ derives that scaling up those channels reduces quantization error, and applies an equivalent per-channel scale determined from offline activation statistics. No backprop or reconstruction, so it generalizes off the calibration set.
Key numbers
TinyChat gives >3x speedup over the HF FP16 implementation on desktop and mobile GPUs; runs 70B Llama-2 on mobile GPUs; strong on instruction-tuned and multimodal LMs.
Modern architectures
Because activations are untouched, AWQ is the baseline that isolates how much of the accuracy loss in W4A4/W4A8 is attributable to activations rather than weights, useful framing for a wire-compression result where only the activation side moves.
Ecosystem
Official repo github.com/mit-han-lab/llm-awq plus TinyChat; AWQ is a supported method in vLLM and SGLang, and AWQ checkpoints are ubiquitous on Hugging Face. Note the upstream AutoAWQ package is archived (May 2025); llm-compressor and GPTQModel are the maintained producers.

arXiv:2306.00978 · Code adversarially re-checked: confirmed

3 Joint weight and activation quantization for compute 18

Methods that quantize activations for compute, feeding low-bit GEMMs, usually jointly with weights. The through-line is scale granularity: per-tensor and per-token scaling holds at 8 bits (SmoothQuant, ZeroQuant, the FP8 formats study), group-128 systems reach W4A8 in serving (Atom, QServe), and 4-bit activations only become robust with microscaled 16- or 32-value blocks (AMXFP4, ARCQuant, the MX benchmark) or explicit outlier handling (PrefixQuant evicts tokens, OSC separates channels, DynamicPTQ escapes layers to 8-bit). BitNet a4.8 and NVFP4 distillation mark where PTQ ends and training-side recovery begins. None of these touch a wire; this is the format toolbox our codec borrows.

The W8A8 line: smoothing and decomposition

SmoothQuant

PaperICML 2023W8A8 INT8; per-tensor static/dynamic or per-token acts, per-tensor/per-channel weightsCalibration data

Training-free W8A8 PTQ that migrates activation quantization difficulty into the weights with a per-input-channel smoothing scale folded offline into the preceding op. The canonical outlier-smoothing baseline.

Details
Mechanism
Per-channel scale s_j = max|X_j|^a / max|W_j|^(1-a) (a=0.5 default) divides activations and multiplies the corresponding weight rows, a mathematically equivalent transform absorbed into the previous LayerNorm/linear, so no runtime cost. Three efficiency levels: O1 per-token dynamic activations, O2 per-tensor dynamic, O3 per-tensor static. All GEMMs (QKV, O, FFN) run INT8.
Key numbers
Up to 1.56x speedup and 2x memory reduction with negligible accuracy loss; enables serving a 530B model (MT-NLG) within a single node; validated on OPT, BLOOM, GLM, Llama-1/2, Falcon, Mistral, Mixtral.
Modern architectures
Later versions add Llama-1/2, Falcon, Mistral, Mixtral. Known weakness on GLU-based FFNs, where activation spikes are token-local rather than channel-persistent, so channel smoothing does not catch them (arXiv:2405.14428 shows SmoothQuant failing to control these); also weak against massive activations on start/delimiter tokens.
Ecosystem
Official repo github.com/mit-han-lab/smoothquant. vLLM's quantization docs (verified) list LLM Compressor INT8 W8A8 and FP8 W8A8 paths; smoothing-style preprocessing is standard for those W8A8 recipes and is also present in TensorRT-LLM and Atom's pipeline.

arXiv:2211.10438 · Code adversarially re-checked: confirmed

Outlier Suppression+ (OS+)

PaperEMNLP 2023 (main)W8A8 and W6A6 INT (also 4-bit BERT); per-channel shift+scale, per-tensor actsCalibration data

Adds a channel-wise shift to the smoothing line, on the observation that activation outliers are not just concentrated in specific channels but asymmetric across them. Shift plus scale, both migrated into later modules.

Details
Mechanism
Two equivalent per-channel operations before the GEMM: a shift that removes the channel-wise asymmetry (recentering each channel) and a scale that removes concentration. Both are absorbed into subsequent weights/bias so inference cost is unchanged. Scale/shift chosen to minimize a quantization-error objective rather than the heuristic max-ratio of SmoothQuant.
Key numbers
Near-floating-point accuracy at 8-bit and 6-bit on BERT, OPT, BLOOM, BLOOMZ and LLaMA; +15.5% for 4-bit BERT over prior work.
Modern architectures
Evaluated on pre-GLU-era and early Llama models; the shift term is what later work generalizes into per-block scale/offset asymmetry, which is exactly what AMXFP4 (arXiv:2411.09909) re-derives inside microscaling blocks.
Ecosystem
Official repo github.com/ModelTC/Outlier_Suppression_Plus, from the ModelTC group that also maintains LightLLM; the shift+scale pair is a common building block in later PTQ toolkits.

arXiv:2304.09145 · Code adversarially re-checked: confirmed

LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

PaperNeurIPS 2022BR-W8A8Field-verified record

Int8 with at most 7 outlier feature dims (~0.1%) in FP16: about 50% memory reduction vs 16-bit, BLOOM-176B footprint 1.96x smaller; C4 validation ppl 12.45 at 13B, equal to the 32-bit baseline; OPT mean zeroshot matches 16-bit from 125M to 175B. Plain 8-bit vector-wise degrades to 16.48 at 13B.

Verified record
Mechanism
Vector-wise absmax Int8 quantization: one scaling constant per row of hidden state X and per column of W, dequantized by their outer product. Mixed-precision decomposition: feature dimensions of X holding any value above threshold alpha=6.0 are multiplied in FP16, the other >99.9% in Int8. Zeropoint Int8 studied as a baseline; analysis-only hard-zeroing of outlier dims.
Topology
single_device_intra_layer (group: single device), hidden state at the attention projection and feed-forward GEMM inputs; attention function and cached K/V stay FP16
Headline result
Int8 with at most 7 outlier feature dims (~0.1%) in FP16: about 50% memory reduction vs 16-bit, BLOOM-176B footprint 1.96x smaller; C4 validation ppl 12.45 at 13B, equal to the 32-bit baseline; OPT mean zeroshot matches 16-bit from 125M to 175B. Plain 8-bit vector-wise degrades to 16.48 at 13B.
Accumulation over decode
not_measured - no decode-step horizon is reported; quality comes from C4 validation perplexity on held-out text and OPT zeroshot accuracy, and Sec 4.2 isolates layers to avoid cascading errors
Failure mode
Without decomposition Int8 collapses once outliers emerge at 6.7B: 13B C4 ppl 16.48 vs 12.45 FP32, worse than 8-bit 6.7B; LLM.int8() itself slows models under 6.7B (0.14-0.86x)
Ecosystem
Shipped in bitsandbytes (Linear8bitLt) and exposed through HF Transformers BitsAndBytesConfig(load_in_8bit=True); requires NVIDIA Turing or newer. Its dynamic outlier split is slow on modern tensor cores, which is why 2026 work (OSC) revives the dual-path idea with dense outlier sub-tensors sized for microscaling GEMMs.

arXiv:2208.07339 every field re-verified against the paper PDF in the source survey

ZeroQuant

PaperNeurIPS 2022 (Spotlight)W8A8 INT8 (group-wise W, per-token A); W4/8A8 with LKDTraining-free

The first end-to-end W8A8 PTQ-plus-kernels pipeline for transformers, pairing group-wise weight quantization with token-wise dynamic activation quantization. Establishes the granularity axis the rest of the field walks down.

Details
Mechanism
Three parts: (1) fine-grained hardware-friendly scheme, group-wise quantization for weights, token-wise dynamic quantization for activations, so no calibration of activation ranges is needed; (2) layer-by-layer knowledge distillation (LKD) that recovers INT4 FFN weights without original training data; (3) an optimized backend that fuses quant/dequant to remove the conversion overhead.
Key numbers
INT8 W8A8 essentially cost-free for BERT and GPT-3-style models: up to 5.19x/4.16x speedup vs FP16. W4(FFN)/W8(attn)/A8 gives 3x memory reduction but needs LKD layer-by-layer distillation (so that path is training, not training-free). Applied to GPT-J-6B and GPT-NeoX-20B with up to 5.2x better efficiency.
Modern architectures
Per-token dynamic activation scaling introduced here is still the default in W8A8 serving; note that per-token granularity is exactly what breaks down at 4 bits (see PrefixQuant on token-wise outliers and the microscaling papers).
Ecosystem
Landed in DeepSpeed as DeepSpeed-Inference/Compression; the follow-ups ZeroQuant-V2 and ZeroQuant-FP (arXiv:2307.09782, W4A8 with FP8 activations) extend the same line.

arXiv:2206.01861 adversarially re-checked: corrected here

RPTQ

PaperarXivINT weights with per-cluster (reordered-channel) activation quantization, down to 3-bit activationsCalibration data

Reframes the activation problem as varying dynamic range across channels rather than isolated outliers, and fixes it by reordering channels into clusters that share a quantizer. First demonstration of 3-bit activations in an LLM.

Details
Mechanism
Channels are permuted and grouped into clusters of similar range; each cluster gets its own activation scale, so a wide channel no longer sets the scale for narrow ones. The permutation is folded into the LayerNorm parameters and the following linear weights, so no runtime reorder kernel is needed.
Key numbers
First reported 3-bit activations in LLMs; up to 80% memory reduction when quantizing OPT-175B.
Modern architectures
The clustering assumption, outliers sit in fixed channels across tokens, holds for channel-persistent outliers but not for the token-local activation spikes of GLU FFNs. OSC (arXiv:2604.12782) re-validates the token-persistent channel clustering on Qwen3 in 2026, so the assumption survives into modern dense/MoE models for most tensors.

arXiv:2304.01089 · Code adversarially re-checked: confirmed

Efficient Post-training Quantization with FP8 Formats

PaperMLSys 2024W8A8 FP8 (E5M2 / E4M3 / E3M4); per-tensor or per-channel scalingCalibration data

The broad empirical case for FP8 W8A8 over INT8: 75 architectures, three FP8 variants, and a generalizable PTQ workflow. The reference for why FP8 became the default 8-bit serving format.

Details
Mechanism
Systematic PTQ study of E5M2, E4M3 and E3M4 across tasks, trading dynamic range against precision, with a standardized workflow (format choice per operator type, scale calibration, expanded operator coverage including non-GEMM ops). Weights and activations both go FP8; the wider exponent removes the need for aggressive outlier handling that INT8 requires.
Key numbers
FP8 beats INT8 on workload coverage 92.64% vs 65.87% across 75 architectures, and on accuracy and operator suitability; E4M3 best for NLP, E3M4 marginally better for vision.
Modern architectures
FP8 W8A8 is now the standard lossless-quality serving point on Hopper/Blackwell for dense and MoE models, which matches wire-quantization results where int8/fp8 are quality-neutral. The study's own recommendation is E4M3 for NLP; E3M4 was marginally better on vision tasks.
Ecosystem
Code in Intel Neural Compressor (github.com/intel/neural-compressor). vLLM docs (verified) list FP8 W8A8 via LLM Compressor plus NVIDIA Model Optimizer, AMD Quark and INC as supported paths.

arXiv:2309.14592 · Code adversarially re-checked: corrected here

To 4-bit: serving systems and outlier handling

Atom

PaperMLSys 2024W4A4 INT4, group-128, mixed-precision outlier channels, INT4 KV cacheCalibration data

The first serving-oriented W4A4 system: mixed-precision plus fine-grained group quantization plus dynamic activation quantization and INT4 KV cache, with co-designed CUDA kernels for batched throughput.

Details
Mechanism
Combines four things: outlier channels kept at higher precision while the rest go INT4; fine-grained group-wise (group-128) quantization for both weights and activations; activation scales computed dynamically per group at runtime; and an INT4 asymmetric KV cache. Kernels fuse quantization/dequantization into the GEMM so the INT4 tensor cores are actually reachable in a batched serving loop.
Key numbers
Up to 7.7x end-to-end throughput (token/s) over FP16 and 2.5x over INT8 at matched latency (repo reports 7.73x / 2.53x), with negligible accuracy loss.
Modern architectures
Targets Ada-generation INT4 tensor cores (kernels optimized for RTX 4090, sm_89) on dense Llama-family models; predates GQA-heavy and MoE architectures and predates hardware microscaling, so its group-128 scheme is coarser than MXFP4 (32) or NVFP4 (16). Direct ancestor of the group-granularity choice in QoQ and COMET.
Ecosystem
Official repo github.com/efeslab/Atom (verified), which reuses code from SmoothQuant, GPTQ and FlashInfer; includes accuracy eval, kernel benchmarks and end-to-end serving evaluation.

arXiv:2310.19102 · Code adversarially re-checked: corrected here

QServe / QoQ (W4A8KV4)

PaperMLSys 2025W4A8KV4: INT4 weights (progressive, per-channel + g128), per-token INT8 activations, INT4 KVCalibration data

Argues W4A4 does not pay off in cloud serving because dequantization runs on low-throughput CUDA cores, and lands on W4A8KV4 instead. The strongest evidence that 8-bit activations are the practical sweet spot at scale.

Details
Mechanism
QoQ uses progressive two-level weight quantization (INT4 group scales nested inside INT8 per-channel scales) so W4A8 GEMM dequantizes with cheap INT8 arithmetic; activations are per-token dynamic INT8; SmoothAttention migrates KV outliers so the KV cache can go INT4. The QServe runtime adds compute-aware weight reordering, register-level parallelism, and a fused attention kernel made memory-bound by KV4.
Key numbers
Existing INT4 methods carry 20-90% dequantization runtime overhead. QServe raises max throughput 1.2x (A100) / 1.4x (L40S) on Llama-3-8B and 2.4x / 3.5x on Qwen1.5-72B vs TensorRT-LLM; L40S beats TensorRT-LLM on A100; ~3x lower dollar cost.
Modern architectures
The dequantization-overhead argument is architecture-independent and still frames the W4A4-vs-W4A8 debate on Blackwell; LiquidGEMM (arXiv:2509.01229) pushes W4A8 kernels a further 2.9x. Supports Llama, Qwen, Mistral, Yi in the released engine.
Ecosystem
Code at github.com/mit-han-lab/omniserve (verified): a unified engine merging QServe and LServe, supporting W4A8KV4/KV8, W8A8KV4/KV8, per-channel or g128, paged attention and in-flight batching.

arXiv:2405.04532 · Code adversarially re-checked: confirmed

PrefixQuant

PaperarXiv (v2 Jan 2025)W4A4KV4 and W4A8KV4 INT; works under static per-tensor as well as dynamic per-token activationsTraining-free

Isolates token-wise (not channel-wise) activation outliers by pinning the offending outlier tokens as a prefix in the KV cache, which makes coarse static per-tensor activation quantization competitive with dynamic per-token.

Details
Mechanism
Identifies the small set of tokens that carry extreme activations and prefixes them into the KV cache so they never appear in the quantized activation tensor; this is training-free and takes about a minute even for Llama-3-70B. Optional block-wise trainable parameters then compensate residual quantization error.
Key numbers
+3.08 and +2.85 average points over SpinQuant on five zero-shot reasoning tasks for W4A4KV4 Llama-3-8B (dynamic and static settings); outlier-token prefixing itself is training-free and takes about 1 minute for Llama-3-70B (optional block-wise trained compensation improves it further); up to 2.74x prefill and 2.16x decode speedup at W4A4.
Modern architectures
Most relevant item for anyone whose per-token 4-bit activation quantization degrades: it shows the failure is driven by a few token positions (start/delimiter tokens, the massive-activation phenomenon), and that removing those tokens from the quantized path recovers accuracy without rotation. Compares against rotation baselines but is not itself a rotation method.
Ecosystem
Code at github.com/ChenMnZ/PrefixQuant, from the OmniQuant authors. Closely related to CushionCache (arXiv:2406.12016), which also prefixes attention-sink tokens to mitigate activation outliers.

arXiv:2410.05265 · Code adversarially re-checked: confirmed

OSC: Hardware Efficient W4A4 Quantization via Outlier Separation in Channel Dimension

PaperarXiv (Apr 2026)W4A4 with a 16-bit outlier-channel path (dual-path mixed precision)Calibration data

Finds that activation outliers occupy the same channels across different tokens, so those channels can be identified offline once and routed to a high-precision path at run time.

Details
Mechanism
Establishes that outlier channels are largely predictable and token-invariant, then builds a dual-path design: a 4-bit path for the bulk of channels and a 16-bit path for the offline-identified outlier channels, extracted during inference. For down-projection inputs, where channel clustering is less pronounced, it falls back to FP8, making the design effectively three-tier. Because the channel set is static, routing stays hardware-friendly.
Key numbers
Accuracy drops of 2.19 and 1.12 points on Qwen3 models; up to 1.78x speedup over the W8A8 GEMM baseline on a modern AI accelerator.
Modern architectures
The offline channel-invariance claim is the practical alternative to grouping: rather than a per-group scale absorbing the outlier, you remove the outlier channels entirely. Directly comparable to our nvfp4 result and a useful ablation axis - channel separation vs microscaling as two answers to one problem.

arXiv:2604.12782 adversarially re-checked: corrected here

DynamicPTQ: Mitigating Activation Quantization Collapse via Residual-Stream Dynamics

PaperarXiv (Jun 2026)W4A4KV4 baseline with per-layer 8-bit escapes (mixed precision)Calibration data

Uses residual-stream dynamics to find the layers where activation quantization actually breaks, and spends 8-bit only there while the rest of the model stays at 4-bit.

Details
Mechanism
Starts from the observation that massive activations with extreme values dominate the quantization range and that static smoothing methods (SmoothQuant-style) cannot fully resolve them. Instead of a global transform, it analyses residual-stream dynamics to identify quantization-sensitive layers, then assigns those layers 8-bit while keeping 4-bit elsewhere - mixed precision allocated by measured sensitivity rather than a fixed heuristic.
Key numbers
Improved perplexity and downstream performance under W4A4KV4 on LLaMA models, with 1.05-1.07x throughput improvement at modest memory (not compute) overhead. The 8-bit escapes are activation-only; weights and KV stay 4-bit. Sensitivity is detected via two metrics, Jump Ratio and Historical Feature SNR, and it composes with rotation methods (QuaRot/SpinQuant/FlatQuant).
Modern architectures
The layer-heterogeneity result matters for pipeline work: if sensitivity is concentrated in identifiable layers, a stage boundary landing on a sensitive layer will behave much worse than one that does not. Suggests boundary placement, not just boundary datatype, is a tunable.

arXiv:2606.12487 adversarially re-checked: corrected here

Microscaled FP4/FP8 format science

LLM-FP4

PaperEMNLP 2023 (main)W4A4 FP4 (searched E/M split, e.g. E2M1/E1M2), per-channel activation scalesCalibration data

First post-training W4A4 in floating point rather than integer, searching exponent-bit allocation and clipping range, with per-channel activation scales reparameterized as weight exponent biases so they are free at runtime.

Details
Mechanism
Builds a strong FP-PTQ baseline by jointly searching the exponent/mantissa split and the clipping range per tensor. Observing high inter-channel and low intra-channel variance in activations, it applies per-channel activation quantization and then absorbs those extra scales into the weights as exponential biases, so the GEMM stays a plain FP4 matmul.
Key numbers
LLaMA-13B W4A4 averages 63.1 on common-sense zero-shot reasoning, 5.8 below full precision and 12.7 points above the previous SOTA.
Modern architectures
Pre-microscaling: its per-channel FP4 scales are the coarse-grained alternative that hardware MXFP4/NVFP4 replaced with per-block shared scales. The inter-channel/intra-channel variance observation it reports across LLMs, BERT and ViTs is the empirical justification for block scaling.
Ecosystem
Official repo github.com/nbasyl/LLM-FP4; simulation-only (no FP4 tensor cores existed in 2023), so numbers are accuracy rather than measured speedup.

arXiv:2310.16836 · Code adversarially re-checked: confirmed

AMXFP4

PaperarXiv (v2 May 2025)4-bit asymmetric microscaling FP (block of 32, FP8 E5M2 shared scale in the released config)Training-free

Names the core tradeoff of microscaling FP4, block scaling suppresses outliers but increases group-wise asymmetry, and fixes it with asymmetric shared scales, calibration-free. Beats MXFP4 and even rotation methods.

Details
Mechanism
Replaces the single shared scale of an MX block with an asymmetric pair, so positive and negative tails of a 4-bit group are scaled independently. Pure direct-cast: no calibration set, no rotation matrices, no multi-hour preprocessing. A custom MAC engine handles the asymmetric scales at negligible hardware cost.
Key numbers
Outperforms MXFP4 by 3% on VQA and exceeds rotation-based INT4 methods by 1.6% on CSQA; surpasses deployed commercial MXFP4 variants. Notes rotation-based INT4 adds multi-hour calibration and leaves key ops in full precision.
Modern architectures
The asymmetry-vs-outlier-suppression tradeoff is the mechanism-level reason microscaled FP4 rescues 4-bit where per-token INT4 fails, and why the scale representation (FP8 vs power-of-two) matters, the same axis MR-GPTQ later quantifies for MXFP4 vs NVFP4.
Ecosystem
Code at github.com/aiha-lab/MX-QLLM (verified): an MX-format LLM inference framework built on Microsoft's microxcaling, with PoT and FP8 scale modes and an AMXFP4-FP8 config (fp4_e2m1_asym elements, E5M2 shared scale).

arXiv:2411.09909 · Code adversarially re-checked: confirmed

FGMP

PaperarXiv (NVIDIA Research, cs.AR)NVFP4 (low) + FP8 (high), per-block mixed precision, both weights and activationsHardware / kernels

Fine-grained mixed precision at block granularity for both weights and activations, using Fisher-weighted perturbation to decide which NVFP4 blocks must stay FP8, with hardware for on-the-fly activation block assignment.

Details
Mechanism
Scores each weight/activation block by its quantization perturbation weighted by Fisher information, keeping high-impact blocks in FP8 and the rest in NVFP4, plus sensitivity-weighted clipping for blocks that do go low. Hardware adds a block-granularity mixed-precision datapath and a runtime unit that assigns activation blocks to high or low precision on the fly with minimal energy overhead.
Key numbers
<1% Wikitext-103 perplexity degradation for Llama-2-7B relative to an all-FP8 baseline, with 14% lower inference energy and 30% less weight memory.
Modern architectures
Prototyped on NVFP4/FP8, i.e. the actual Blackwell datatype pair; the per-block activation decision made at runtime is the design point for architectures whose outlier location is input-dependent (GLU FFNs, MoE experts) rather than fixed by channel. Requires datapath support, so it is not deployable on stock GPUs today.
Ecosystem
No public code released. Complements FGMP-free approaches like ARCQuant that deliberately keep a strictly unified format to stay on standard GEMM kernels.

arXiv:2504.14152 adversarially re-checked: confirmed

ARCQuant

PaperACL 2026 (Main), pp. 8609-8623Unified NVFP4 W4A4 (block 16, FP8 scale) with augmented residual channelsCalibration data

2026 non-rotation NVFP4 state of the art: compensates 4-bit error by appending quantized residual channels to the activation matrix along the reduction dimension, keeping a strictly unified NVFP4 format and standard GEMM kernels.

Details
Mechanism
Explicitly rejects the three existing families for NVFP4, rotation breaks fine-grained block isolation, smoothing cannot absorb 4-bit error, mixed precision violates unified-precision hardware constraints. Instead it augments the activation matrix with extra quantized residual channels so error compensation happens inside the matmul's reduction dimension (dual-stage quantization), leaving the GEMM shape and format untouched.
Key numbers
Worst-case error bound of the dual-stage NVFP4 scheme is comparable to 8-bit formats such as MXFP8; accuracy comparable to full precision in perplexity and downstream tasks on LLaMA and Qwen; up to 3x speedup over FP16 on RTX 5090 and RTX PRO 6000.
Modern architectures
Evaluated on current LLaMA and Qwen models on Blackwell-generation consumer/workstation GPUs. The 'error bound comparable to MXFP8' result is the cleanest theoretical statement that a properly compensated 4-bit microscaled format can reach 8-bit-class fidelity.
Ecosystem
Code at github.com/actypedef/ARCQuant. Same group's follow-up SharQ (arXiv:2606.26587) combines N:M activation sparsity with FP4 and reports NVFP4/HiF4/MXFP4 coverage on Qwen3-30B-A3B and Qwen3-VL-8B.

arXiv:2601.07475 · Code adversarially re-checked: confirmed

Benchmarking Post-Training Quantization of LLMs under Microscaling Floating Point Formats

PaperarXiv, Jan 2026MXFP8 E4M3 and MXFP4 E2M1, block 32; W8/W4, W8A8/W4A8/W4A4, W4A8KV8Calibration data

Systematic PTQ benchmark under MXFP formats: MXFP8 W8A8 is near-lossless while MXFP4 degrades sharply, and the block scale factor itself is a dominant error source.

Details
Mechanism
Sweeps 7 PTQ algorithms x 15 benchmarks x 3 model families under MXFP8 (E4M3) and MXFP4 (E2M1) with block size 32, in weight-only, weight-activation and KV-cache configurations. Identifies scale-factor quantization as a critical error source and proposes a pre-scale (multiply inputs by 3/4 before quantizing) to reduce MXFP4 clipping bias.
Key numbers
MXFP8 W8A8 ~99-100% accuracy recovery. MXFP4: W4A8 95.44-98.83%, W4A4 86.37-96.79%. Pre-scale lifts one worst case from 52.39% to 56.76% recovery.
Modern architectures
Independent confirmation of the mxfp8-lossless / mxfp4-fragile split, and it localizes the 4-bit failure to the block scale rather than the mantissa - exactly the axis NVFP4 changes (E4M3 scale per 16 values instead of E8M0 per 32). Caveat: only 7-8B dense and VL models, no MoE, no hybrid linear attention, and no NVFP4 arm, so frontier scale and depth are untouched.
Ecosystem
Models evaluated: Llama-3.1-8B-Instruct, openPangu-Embedded-7B-V1.1, openPangu-VL-7B, Qwen2.5-VL-7B. Authors explicitly flag missing 30B+ scale and missing NVFP variants as limitations.

arXiv:2601.09555 adversarially re-checked: confirmed

Training-side recovery

BitNet a4.8

PaperarXiv (Microsoft Research)W1.58 ternary weights, A4 (INT4/FP4) at attention/FFN inputs, sparse+8-bit intermediates, 3-bit KVTraining / finetuning

The QAT extreme of the joint setting: 1.58-bit weights with 4-bit activations, using hybrid quantization plus sparsification so outlier-heavy tensors are sparsified-then-8-bit rather than quantized to 4 bits.

Details
Mechanism
Different treatment per tensor position: inputs to attention and FFN go INT4/FP4, while the intermediate states (post-GLU FFN activations and attention output projection input, where outliers concentrate) are sparsified and then quantized to 8 bits. Trained by continuing from a BitNet b1.58 recipe, so it needs training, not calibration.
Key numbers
Matches BitNet b1.58 quality at equivalent training cost while enabling 4-bit kernels; activates only 55% of parameters and supports a 3-bit KV cache.
Modern architectures
The positional split is the key transferable lesson: in GLU-based FFNs the down-projection input is the tensor that resists 4 bits, consistent with the GLU activation-spike literature and with per-tensor-position findings in FP4 PTQ work. Applies to a from-scratch 1-bit model family, not off-the-shelf checkpoints.
Ecosystem
No official code released with the paper; the surrounding BitNet family ships inference kernels via microsoft/BitNet (bitnet.cpp), but that is not verified here as containing a4.8 support.

arXiv:2411.04965 adversarially re-checked: confirmed

Quantization-Aware Distillation for NVFP4

PaperarXiv technical report (NVIDIA)NVFP4 W4A4 (block 16, FP8 E4M3 scale + FP32 global), LLMs and VLMsTraining / finetuning

NVIDIA's practical recipe for recovering NVFP4 accuracy by distilling a full-precision teacher into the quantized student with a KL loss, presented as more stable than QAT for models built by multi-stage post-training.

Details
Mechanism
Quantization-aware distillation: the NVFP4-quantized student is trained against the FP teacher's output distribution under KL divergence, rather than re-running task-loss QAT. Reported to be markedly more stable than QAT for checkpoints that went through SFT, RL and model merging, and robust to calibration/distillation data quality and coverage, so full training data is not required.
Key numbers
Positioned as accuracy recovery for NVFP4 LLMs/VLMs; the headline claims are stability on multi-stage post-trained models where QAT is unstable, and robustness to data quality rather than a single speedup number.
Modern architectures
Directly addresses today's checkpoints, instruction-tuned, RL-trained, merged LLMs and VLMs, where naive PTQ or QAT breaks. This is the training-side counterpart to the PTQ items and the practical answer when NVFP4 PTQ alone leaves a quality gap.
Ecosystem
No code URL in the paper; the surrounding NVFP4 tooling is NVIDIA TensorRT Model Optimizer, which vLLM's docs list as a supported quantization path (verified). Large NVIDIA author list including Song Han and Tijmen Blankevoort.

arXiv:2601.20088 adversarially re-checked: confirmed

Also verified, not profiled: COMET W4A4KV4 (2410.12168), LiquidGEMM W4A8 kernels (2509.01229), SOAR (2605.12245) and ScaleSweep (2606.07618) on NVFP4 scale optimization, ZeroQuant-FP (2307.09782), CushionCache (2406.12016), Outlier-Safe Pre-Training (2506.19697).

4 Rotations and equivalent transforms 15

Kept separate from joint quantization because the line has its own arc and its FP4-era results explain our headline finding. The arc: incoherence processing on weights (QuIP#), invariance extended to activations and KV (QuaRot), learned and statistics-derived transforms (SpinQuant, DuQuant, FlatQuant, OSTQuant, DartQuant, with OmniQuant as the diagonal baseline), subspace and side-branch variants (ResQ, SVDQuant), then the limits. BASE-Q names what rotation cannot fix, PeRQ proves blockwise l1 balance bounds suppression, and MR-GPTQ, BRQ and DuQuant++ show global rotations are neutralized or harmful once scales live on 16/32-value blocks: transform support must match scale granularity.

Origins: incoherence and invariance

QuIP# (and QuIP)

PaperICML 2024 (QuIP: NeurIPS 2023)2/3/4-bit weight-only (A16)Calibration data

The origin of incoherence processing: random orthogonal conditioning makes weights and Hessians incoherent so 2-bit weight quantization becomes viable. QuIP# swaps in the randomized Hadamard transform plus E8-lattice vector quantization.

Details
Mechanism
QuIP (arXiv:2307.13304, verified) pre/post-multiplies weights by random orthogonal matrices to bound incoherence, then adaptively rounds against a Hessian proxy. QuIP# replaces those with the randomized Hadamard transform (faster, better theoretical coherence mu=1/sqrt(n)), vector-quantizes the resulting ball-shaped weights with E8-lattice codebooks, and optionally fine-tunes.
Key numbers
First method where 3-bit models scale better than theoretically lossless 4-bit. CUDA kernels on RTX6000 ADA at 2-bit: 176 tok/s for 7B, 21.9 tok/s for 70B. Fine-tuning is optional (--ft_epochs 0 reproduces the no-FT result).
Modern architectures
Weight-only: activations stay 16-bit, so it does nothing for a stage-boundary wire or for compute-bound prefill. Included because every later activation-rotation method inherits its incoherence argument, and the randomized Hadamard transform it introduced is exactly the transform QuaRot and SpinQuant later fuse into weights.
Ecosystem
llm-compressor ships a QuIPModifier (transform_type 'hadamard' via Sylvester construction) alongside SpinQuantModifier; its docs note input rotations (v) are on by default while output rotations (u) are off because they are not performant.

arXiv:2402.04396 · Code adversarially re-checked: confirmed

QuaRot

PaperNeurIPS 2024W4A4KV4 INT4; W6A6/W8A8 lossless with RTNCalibration data

The reference rotation method: randomized Hadamard rotations make an LLM outlier-free so weights, activations and KV cache all quantize to 4 bits with no channels kept in higher precision.

Details
Mechanism
Computational invariance y=Wx=(WQ^T)(Qx). A global randomized Hadamard Q is fused offline into embedding and residual-adjacent weights; head-wise Hadamards fold into v_proj/o_proj; online (unfused) Hadamards run before FFN down_proj, on post-RoPE K/Q, and across heads before o_proj. Weight rounding via GPTQ (needs calibration) or RTN (calibration-free at 6/8 bit).
Key numbers
LLaMA2-70B W4A4KV4: <=0.47 WikiText-2 PPL loss, ~99% of zero-shot retained. 6/8-bit lossless via RTN with zero calibration data. RTX 3090 kernels: 1.97-2.16x prefill at 7B, up to 3.33x at 70B, 3.89x decode-stage memory saving.
Modern architectures
Evaluated on Llama-2 7/13/70B, Llama-3 8/70B, Phi-3-mini; no MoE model in the paper, and the official repo covers Llama-family only. The rotation graph is derived for RMSNorm+GQA decoders, so MoE (per-expert down_proj) and MLA (compressed latent KV, decoupled RoPE) need the invariance argument re-derived per projection.
Ecosystem
Reference CUDA kernels; depends on Dao-AILab/fast-hadamard-transform. QuaRot/SpinQuant-style transforms are reimplemented in vLLM's llm-compressor as SpinQuantModifier and QuIPModifier, with hadacore Hadamard kernels providing accelerated inference in vLLM. 532 stars, Apache-2.0.

arXiv:2404.00456 · Code adversarially re-checked: confirmed

Learned and statistics-derived transforms

OmniQuant

PaperICLR 2024 (Spotlight)W4A4, W6A6 joint, plus weight-only W4A16/W3A16/W2A16Calibration data

The pre-rotation transform baseline: instead of an orthogonal rotation it learns per-channel scaling and shifting that pushes activation difficulty into weights, plus learnable weight clipping.

Details
Mechanism
Two learnable components optimized by differentiable block-wise reconstruction-error minimization. LWC (Learnable Weight Clipping) tunes weight clipping thresholds; LET (Learnable Equivalent Transformation) learns per-channel scales and shifts that are folded into adjacent weights and biases, so activations are flattened with zero runtime cost. Non-orthogonal and diagonal-only; calibration data and a few GPU-hours, no full finetuning.
Key numbers
Llama-2 7B-70B quantized on a single A100-40G in 1-16 hours with 128 calibration samples; SOTA at the time across W4A4/W6A6/W4A16/W3A16/W2A16.
Modern architectures
Its W4A4 gap is precisely what motivated the rotation line: diagonal scaling cannot remove the massive down_proj/residual outliers that a dense rotation can. LET has zero online cost because it folds entirely into weights, making it the cheapest possible transform for a wire, but the weakest at 4-bit activations. The learnable-scale idea is the direct ancestor of the 2026 NVFP4 scale-optimization papers.
Ecosystem
Official repo github.com/OpenGVLab/OmniQuant (907 stars, MIT). The authors ship a demo Android/iOS app built by compiling OmniQuant W3A16/W2A16 Llama-2 checkpoints through MLC-LLM; no commercial deployment is claimed.

arXiv:2308.13137 · Code adversarially re-checked: corrected here

SpinQuant

PaperICLR 2025W4A4KV4 INT4; also W4A8KV8Training / finetuning

Shows the rotation you pick matters enormously (up to 13 points of downstream accuracy between random rotations) and therefore learns the rotation matrices instead of sampling them.

Details
Mechanism
Identifies four rotation slots in a Llama-style block: R1 (residual/embedding), R2 (head-wise value), R3 (post-RoPE K/Q), R4 (FFN down_proj input). R1/R2 merge into weights offline; R3/R4 stay as online Hadamards. R1/R2 are optimized on the Stiefel manifold with Cayley SGD on a small calibration set to minimize the quantized network's loss.
Key numbers
LLaMA-2 7B W4A4KV4: 2.9-point zero-shot gap to FP16, beating LLM-QAT by 19.1 and SmoothQuant by 25.0 points. LLaMA-3 8B: closes up to 45.1% of the gap QuaRot leaves. Spread between random rotation seeds: up to 13 points.
Modern architectures
Rotation learning needs the whole model resident for backprop (the complaint BASE-Q and DartQuant target); KurTail reports >=4x H100 80GB for Llama3-70B. Slots are defined for Llama-style blocks, so an MoE needs an R4 per expert and MLA needs R3 redefined around the decoupled-RoPE key path.
Ecosystem
Meta's official quantized Llama 3.2 1B/3B release (Oct 2024) ships a SpinQuant PTQ variant alongside a QAT+LoRA variant, reporting up to 2-4x inference speedup, ~56% smaller models and ~41% lower memory on mobile CPUs (Arm/MediaTek/Qualcomm). llm-compressor's SpinQuantModifier reproduces R1-R4, with R4 (down_proj) added in a 2025 release.

arXiv:2405.16406 · Code adversarially re-checked: confirmed

DuQuant

PaperNeurIPS 2024 (Oral)W4A4 INT4 (also W6A6, W4A8)Calibration data

Builds the rotation from calibration statistics instead of using a data-agnostic Hadamard, then adds a channel permutation so no block is left holding all the outlier mass.

Details
Mechanism
Block-diagonal rotation matrices constructed greedily from identified outlier dimensions redistribute 'massive' outliers (concentrated at the FFN down_proj input) into adjacent channels; a zigzag channel permutation equalizes outlier mass across blocks, reducing block-wise variance; a second rotation smooths the result. Transforms fold into weights where the graph allows.
Key numbers
NeurIPS 2024 Oral; SOTA W4A4 perplexity and zero-shot accuracy at publication across LLaMA-1/2/3, Vicuna-v1.5 and Mistral at 7B-70B. Pipeline needs a one-off rotation build (get_rot.py) plus per-model activation scale/shift calibration.
Modern architectures
Official repo lists LLaMA-1/2/3, Vicuna-v1.5 and Mistral only, no Mixtral/MoE. Its central diagnosis (massive outliers localized to the down_proj input, distinct from ordinary per-channel outliers) is the mechanism that recurs inside MoE expert FFNs, and DuQuant++ later re-targets the same construction at MXFP4 blocks.

arXiv:2406.01721 · Code adversarially re-checked: confirmed

FlatQuant

PaperICML 2025W4A4KV4 INT4; also W4A8, KV4Training / finetuning

Abandons orthogonality: learns a per-linear-layer invertible affine transform chosen to make weights and activations flat, Kronecker-factored so the online transform stays nearly free.

Details
Mechanism
Each linear layer gets a learnable affine transform (not restricted to Hadamard/orthogonal), fitted by a lightweight gradient objective in hours. Observing that Hadamard-rotated tensors are still steep and dispersed, it optimizes flatness directly. The transform is factored as a Kronecker product of two small matrices, and transform plus quantization are fused into one Triton kernel (the INT4 GEMM itself stays a separate CUTLASS kernel).
Key numbers
LLaMA-3-70B W4A4: under 1% accuracy drop, +7.5% over SpinQuant. 2.3x prefill and 1.7x decode speedup vs FP16. End-to-end transform overhead is 0.07x of runtime for FlatQuant's five learned transforms, vs 0.26x for QuaRot's three online Hadamards.
Modern architectures
Per-layer transforms imply per-expert transforms on an MoE: parameter count, calibration cost and online matmuls all scale with expert count. Learned affine transforms give the strongest 4-bit accuracy in this list but are the least hardware-neutral, they only pay off with the fused kernel (kron_matmul/block_matmul), and the transform cannot be folded away entirely.

arXiv:2410.09426 · Code adversarially re-checked: corrected here

OSTQuant

PaperICLR 2025W4A4KV4 INT4; also W4-only / W4A16Training / finetuning

Introduces Quantization Space Utilization Rate (QSUR) as the objective and learns an orthogonal transform paired with a diagonal scaling per linear layer to maximize it.

Details
Mechanism
Every fully-connected layer gets a learnable (orthogonal, scaling) transformation pair: the orthogonal part rotates away outliers, the scaling part stretches the distribution to fill the quantization grid, both guided by the QSUR metric derived analytically. Trained with a KL-Top loss over the FP model's top logits to extract more signal from the small PTQ calibration set.
Key numbers
W4-only: retains 99.5% of floating-point accuracy. W4A4KV4 LLaMA-3-8B: closes 32% of the gap left by prior state-of-the-art. BASE-Q later reports closing a further 29.2% of the remaining FP gap over OSTQuant.
Modern architectures
Per-FC transform pairs mean the parameter and calibration cost multiplies by expert count on an MoE, and the learned rotation shares SpinQuant's full-model-backprop memory problem. QSUR is useful independently of the method as a cheap diagnostic for how much of the grid an activation tensor actually occupies before you quantize it.

arXiv:2501.13987 · Code adversarially re-checked: confirmed

DartQuant

PaperNeurIPS 2025W4A4 INT4 with KV left at 16-bit (W4A4KV16)Training / finetuning

Makes learning the rotation affordable at scale by supervising the post-rotation activation distribution instead of an end-to-end task loss, with a QR-based orthogonal parameterization replacing alternating optimization.

Details
Mechanism
Distribution-aware rotational calibration: constrain the shape of activations after rotation rather than fine-tuning end-to-end, which cuts both compute and overfitting to the calibration task. QR-Orth keeps the matrix orthogonal via a QR parameterization instead of expensive alternating/Cayley optimization, so the rotation can be fitted layer-locally.
Key numbers
47x faster and 10x less memory for rotation optimization on a 70B model; first rotational calibration of a 70B model on a single RTX 3090. Llama-3-70B W4A4KV16: 7.99 PPL / 69.39 zero-shot vs SpinQuant 9.61 / 66.06 and OSTQuant 7.67 / 67.94.
Modern architectures
The practical answer to the memory wall that blocks learned rotations on very large models. One of the few rotation papers with MoE datapoints: Mixtral-8x7B and DeepSeek-MoE are evaluated alongside Llama-2 7/13/70B and Llama-3 8/70B, so it is the best available evidence that learned rotations transfer to expert FFNs.

arXiv:2511.04063 · Code adversarially re-checked: confirmed

Subspaces and side branches

ResQ

PaperICML 2025Mixed INT4/INT8: ~1/8 of channels at 8-bit, remainder 4-bit (W/A/KV)Calibration data

Mixed-precision rotation: keep a PCA-identified high-variance subspace (about 1/8 of hidden dim) at 8 bits, rotate and quantize the rest to 4 bits, with a proof that this split minimizes error.

Details
Mechanism
PCA over calibration activations finds the low-rank subspace where activation variance concentrates. Coefficients in that subspace stay at 8-bit while the complementary subspace goes to 4-bit; an invariant random rotation is applied within each subspace to suppress residual outliers. Most projections fold into adjacent weights, but the down_proj input transform runs at runtime (like QuaRot's R4), and further transforms act inside attention (v_proj/o_proj and query/key).
Key numbers
Up to 33% lower WikiText perplexity than SpinQuant on Llama and Qwen2.5 families; up to 3x speedup over the 16-bit baseline. Claimed provably optimal mixed-precision split under its error model.
Modern architectures
The 'keep a rank-r slice in high precision, quantize the rest hard' recipe is the closest published analogue to a mixed-precision activation wire format, and it acts on the residual stream rather than attention internals, which makes it among the easiest here to port to MLA or MoE. Cost is a per-model PCA over calibration data.

arXiv:2412.14363 · Code adversarially re-checked: corrected here

SVDQuant

PaperICLR 2025 (Spotlight)W4A4: INT4 on Ada, NVFP4 on BlackwellCalibration data

Absorbs outliers into a 16-bit low-rank branch rather than redistributing them: smooth activations into weights, SVD off the weight outliers, then quantize only the residual to 4 bits.

Details
Mechanism
Step 1 shifts outliers from activations into weights (smoothing). Step 2 splits W into a high-precision low-rank branch obtained by SVD plus a low-bit residual branch, so both sides see easier distributions. The Nunchaku engine fuses the low-rank branch's kernels into the low-bit kernels to remove the extra activation memory traffic that would otherwise cancel the speedup; off-the-shelf LoRAs plug in without re-quantization.
Key numbers
SDXL, PixArt-Sigma, FLUX.1. 12B FLUX.1: 3.5x memory reduction and 3.0x speedup over the W4A16 baseline on a 16GB laptop 4090 (INT4); 3.1x over W4A16 on RTX 5090 using NVFP4.
Modern architectures
Diffusion transformers rather than LLMs, but the cleanest demonstration that a rank-r high-precision side channel plus a 4-bit main path beats pure transform/smoothing methods at 4-bit activations, and one of the first published NVFP4 activation results. Fusing the side branch into the low-bit kernel is what makes the rank-r channel free.
Ecosystem
Quantizer: nunchaku-ai/deepcompressor; runtime: nunchaku-ai/nunchaku (renamed from mit-han-lab, 3.9k stars, Apache-2.0). Heavily deployed in ComfyUI/Diffusers workflows, making it arguably the most battle-tested 4-bit weight+activation stack outside LLM serving, and a working reference for NVFP4 activation kernels.

arXiv:2411.05007 · Code adversarially re-checked: corrected here

Limits and the microscaling rework

BASE-Q

PaperarXiv (v2 Aug 2025)INT4 weight+activation (W4A4)Training / finetuning

Names two things rotation cannot fix, it does not align channel means, and it Gaussianizes activations so clipping costs more energy, and repairs both with bias correction plus asymmetric scaling.

Details
Mechanism
Adds (i) bias correction so nonzero post-rotation channel means no longer inflate the symmetric quantization range, and (ii) asymmetric per-channel scaling to trade rounding against clipping error. Both are optimizable blockwise, removing the need for SpinQuant/OSTQuant-style full-model backprop caused by rotation parameter sharing across the residual stream.
Key numbers
Narrows the accuracy gap to full precision by 50.5%, 42.9% and 29.2% relative to QuaRot, SpinQuant and OSTQuant respectively. Blockwise optimization only, no full-model backprop. Official code released (MIT); its example runs W4A4KV4.
Modern architectures
The Gaussianization point matters most at very low bit width: a rotation lightens the tail but widens the bulk, so clipping choice becomes the binding constraint rather than outliers. This is the published mechanism closest to explaining why a single per-token int4 scale degrades while a microscaled format with per-16/32 scales does not.

arXiv:2506.15689 · Code adversarially re-checked: corrected here

PeRQ (Pushing the Limits of Block Rotations in PTQ)

PaperarXiv (v2 May 2026)INT4 with small rotation blocks (evaluated at block size 16)Calibration data

First non-asymptotic theory of how much a block Hadamard rotation can suppress outliers: the limit is set by how evenly pre-rotation l1 mass is spread across blocks, so permute before you rotate.

Details
Mechanism
Analysis shows block-rotation outlier suppression is bounded by input-vector geometry, minimized when blockwise l1 norms are equal. PeRQ = Permute, Rotate, then Quantize: a greedy mass-diffusion algorithm finds a channel permutation equalizing blockwise l1 norms, and the permutation is merged into weights before deployment so inference cost is unchanged.
Key numbers
Llama3-1B INT4 with rotation block size 16: PeRQ recovers up to 90% of the perplexity achievable with full-vector rotation, versus 46% without permutations. Author group affiliated with AMD/Brevitas.
Modern architectures
Explains both DuQuant's zigzag permutation and why small-group formats constrain what rotation can achieve, the studied block size 16 is exactly NVFP4's group size. Permutation is the cheapest preconditioner available for a wire because it folds entirely into weights and costs nothing at runtime, unlike an online Hadamard.

arXiv:2601.22347 adversarially re-checked: confirmed

MR-GPTQ (Micro-Rotated-GPTQ) / FP-Quant

PaperICLR 2026MXFP4 (E8M0 scale, group 32) and NVFP4 (group 16), weight-only and W4A4Calibration data

The FP4-era rewrite of the rotation recipe: NVFP4's 16-element groups provably neutralize classic outlier mitigation and MXFP4's power-of-two scales inject their own error, so rotation must become block-wise and format-specific.

Details
Mechanism
A GPTQ variant specialized to microscaling FP4: block-wise Hadamard transforms sized to the format's scaling group plus format-specific scale handling, instead of a global rotation. Rotations are fused into weights where possible and computed online for activations by fast QuTLASS kernels, so the transform adds negligible overhead.
Key numbers
Up to 3.6x layer-wise and 2.2x end-to-end vs FP16 on NVIDIA B200; 6x layer-wise and 4x end-to-end on RTX 5090. Lifts MXFP4 accuracy to within 1-2% of NVFP4. First comprehensive MXFP4-vs-NVFP4 PTQ study.
Modern architectures
Paper title: 'Bridging the Gap Between Promise and Performance for Microscaling FP4 Quantization'. Its headline conclusion is that FP4 is not an automatic upgrade over INT4 and that SOTA PTQ methods struggle with it. Two findings dominate: NVFP4's 16-element group size provably neutralizes traditional outlier mitigation (so rotation buys less there), and MXFP4's power-of-two scale quantization is the dominant error term. Read it as the strongest evidence that FP4 needs format-specialized PTQ, and that NVFP4 is the more robust of the two formats. Repo supports Llama and Qwen3; kernels need Blackwell.
Ecosystem
Kernels released as QuTLASS (github.com/IST-DASLab/qutlass): CUTLASS-based MXFP4/NVFP4/MXFP8 microscaling GEMMs for sm_100a (B200) and sm_120a (RTX 5090), CUDA 12.8+, with FlashInfer integration. Runtime via the fp_quant PyTorch package; HF Transformers exposes an FP-Quant backend; vLLM support merged 2025-10 (PR 24440).

arXiv:2509.23202 · Code adversarially re-checked: confirmed

Block Rotation is All You Need for MXFP4 Quantization (BRQ)

PaperarXiv (Nov 2025)MXFP4 W4A4, rotation block size 32 (= MX group size)Calibration data

Benchmarks PTQ under MXFP4 and finds that the global rotations used by nearly all SOTA methods are actively incompatible with it; confining rotation to within the 32-element microscaling block fixes it.

Details
Mechanism
Root cause analysis: MXFP4's power-of-two shared block scale reconstructs large values poorly (error grows sharply with magnitude), while a global rotation spreads outlier energy into otherwise-benign blocks and inflates their scales. Fix: apply independent rotations inside each 32-channel block so the transform's support matches the scale granularity.
Key numbers
MXFP4 W4A4, block vs global rotation: LLaMA-3.2-1B PPL 12.78→11.95 and 48.83→49.87% avg accuracy; Qwen2.5-1.5B 12.80→12.15 and 53.50→54.83%; LLaMA-3-8B 7.68→7.14 and 61.57→63.54%. GPTQ stays strong under MXFP4; global-rotation methods do not.
Modern architectures
The single most directly relevant result for microscaled wire formats: the transform's support must match the scaling group, and a globally-rotated tensor can be strictly worse than an unrotated one once scales are power-of-two. Models span LLaMA-2/3, Mistral, Qwen from 1B to 70B; MXFP4 only, NVFP4 not covered.

arXiv:2511.04214 adversarially re-checked: confirmed

DuQuant++

PaperarXiv (Apr 2026)MXFP4 W4A4, rotation block B=32Calibration data

2026 successor that aligns DuQuant's outlier-aware rotation block size with MXFP4's 32-element group, which makes the original dual rotation and zigzag permutation unnecessary.

Details
Mechanism
A single outlier-aware fine-grained rotation with block size B=32 matched to the microscaling group. Because each MX group carries its own scale, the cross-block variance problem that forced DuQuant's second rotation plus zigzag permutation disappears, so one rotation replaces the whole pipeline, halving online rotation cost while also smoothing the weight distribution.
Key numbers
LLaMA3-8B MXFP4 W4A4: 6.88 WikiText2 PPL / 67.1% zero-shot vs 7.29 / 66.1% for MR-GPTQ (FP16 6.14). LLaMA3.2-3B: 8.63 vs 8.79; >50% relative gain over QuaRot (17.95→8.87). LLaMA3.1-8B-Instruct 7.89 vs FP16 7.21. Beats QuaRot, FlatQuant and MR-GPTQ across settings.
Modern architectures
Argues explicitly that data-agnostic rotations (randomized Hadamard, learned global rotations) are insufficient for microscaled FP4 because they cannot target the channels where outliers actually concentrate, outlier-aware, statistics-derived rotations are needed. LLaMA-3 family only; the paper does not address MoE models or NVFP4.

arXiv:2604.17789 · Code adversarially re-checked: confirmed

Also verified in this pass, not profiled: ReSpinQuant (2604.11080, ICML 2026), ParoQuant (2511.10645, ICLR 2026), ButterflyQuant (2509.09679), KurTail (2503.01483), GSR (2505.03810), SmoothRot (2506.05413), HadaCore (2412.08832, tensor-core FWHT kernels), RotaryQuant (2608.08081, 3-bit KV on 26-120B MoE). Gap flagged by the researcher: no paper derives the rotation invariance for MLA.

5 Sparsity, low-rank, and alternative representations 9

Ways to shrink an activation tensor other than a fixed low-bit format: magnitude sparsity (TEAL, CATS, ProSparse), low-rank projection (ESPACE, D-com), bit-plane and variable-length group formats (SPARQLe, Anda, M2XFP), and SharQ's bridge that uses an N:M sparse backbone to rescue NVFP4 activations. Costs differ sharply: TEAL and CATS are training-free, ProSparse and ESPACE need pretraining-scale training per the verifier, and D-com, Anda, M2XFP and SPARQLe need custom hardware. Low-rank at a pipeline boundary remains unpublished; the rank axis composes with quantization in principle but nobody has measured the composition.

Activation sparsity

TEAL: Training-Free Activation Sparsity in Large Language Models

PaperICLR 2025 (Spotlight)unstructured activation sparsity 40-50%; surviving values stay FP16Training-free

Magnitude-thresholds hidden states model-wide to reach 40-50% activation sparsity with no training, and converts that sparsity into real decode speedup with custom Triton kernels.

Details
Mechanism
Exploits the observation that activation distributions in LLaMA-architecture models are zero-mean and unimodal, so low-magnitude entries are non-salient and can be zeroed. Per-layer thresholds are fit on a small calibration set (uniform, or block-wise greedy allocation). Zeros let the kernel skip corresponding weight columns/rows, so the saving is in GEMM work and weight fetch, not in a narrower datatype.
Key numbers
40-50% model-wide sparsity with minimal degradation; 1.53x decode speedup at 40%, 1.8x at 50%; Llama-2, Llama-3, Mistral at 7B-70B; composes with weight quantization.
Modern architectures
Explicitly targets non-ReLU (SwiGLU/GELU) models, which is why it supersedes ReLU-era sparsity assumptions. Sparsity is input-dependent per token, so it is orthogonal to (and composable with) a fixed wire datatype at a stage boundary.
Ecosystem
Repo (FasterDecoding/TEAL): FP16-only Triton kernels described by the authors as a proof of concept; quantized sparse kernels are unsupported, so composition with weight quantization is accuracy-level, not a measured speedup.

arXiv:2408.14690 · Code adversarially re-checked: confirmed

CATS: Contextually-Aware Thresholding for Sparsity in Large Language Models

PaperCOLM 2024unstructured MLP activation sparsity, ~50%; FP16 values retainedTraining-free

Replaces the MLP gate nonlinearity with a thresholding activation that zeroes low-magnitude entries, giving 50% activation sparsity with a 1-2% quality drop and no finetuning.

Details
Mechanism
Introduces a new non-linear activation function (a cutoff applied to the SwiGLU gate output) whose threshold is set from the empirical activation-magnitude CDF to hit a target sparsity. Downstream up/down projections then skip the masked channels in a custom kernel. Optional parameter-efficient finetuning of ~1% of parameters improves convergence and accuracy over competing sparsification methods.
Key numbers
Within 1-2% of the base model at 50% activation sparsity with no finetuning; ~15% wall-clock generation improvement from the custom kernel (7B models); Mistral-7B, Llama2-7B/13B. Optional LoRA finetuning of ~1% of parameters improves accuracy further.
Modern architectures
Confined to the MLP/gate path rather than model-wide, which is the main axis on which TEAL improves on it; both are gating/thresholding methods rather than datatype methods.
Ecosystem
Repo fetched and confirmed (ScalingIntelligence/CATS): custom GPU kernel, reproduction script, and a README note about an in-progress HuggingFace integration framework.

arXiv:2404.08763 · Code adversarially re-checked: confirmed

ProSparse: Introducing and Enhancing Intrinsic Activation Sparsity within LLMs

PaperarXiv (latest revision Jan 2025)intrinsic ReLU-induced activation sparsity ~88-89%Training / finetuning

Converts SwiGLU/GELU models back to ReLU and then pushes sparsity up with progressive regularization, reaching ~89% activation sparsity at comparable quality. The finetuning-required counterpoint to TEAL and CATS.

Details
Mechanism
Two stages: substitute ReLU for the original activation function, then apply progressive sparsity regularization with a penalty factor increasing smoothly along multi-stage sine curves, so the activation distribution shifts gradually instead of abruptly. A trained predictor anticipates which neurons will be active, letting the runtime skip them.
Key numbers
89.32% sparsity on LLaMA2-7B, 88.80% on LLaMA2-13B, 87.89% on MiniCPM-1B, at quality comparable to the original Swish versions. Speedup depends on the runtime: up to 4.52x via PowerInfer's predictor-based approximate path (vs llama.cpp), 2.44x with the predictor-free accurate custom kernels.
Modern architectures
Requires retraining the activation function itself, so it is a model-production method, not a deployment-time knob. Useful as the boundary marker for how much sparsity is reachable if you are willing to pay training cost.
Ecosystem
Sparsity predictors and converted checkpoints are distributed on HuggingFace under the SparseLLM org (e.g. prosparse-llama-2-7b-predictor), seen in search results rather than fetched.

arXiv:2402.13516 adversarially re-checked: corrected here

SharQ: Bridging Activation Sparsity and FP4 Quantization for LLM Inference

PaperarXiv (Jun 2026)NVFP4 activations plus input-adaptive N:M sparse backboneTraining-free

Unifies the sparsity and low-bit families: an online sparse-dense split pulls the outlier-dominated part of each activation tensor into an N:M sparse backbone so the remaining dense residual quantizes cleanly to FP4.

Details
Mechanism
Diagnoses NVFP4 activation loss as input-dependent outliers dominating each block's scale factor. For every activation tensor it generates an input-adaptive N:M mask (4:8 in-pairs for NVFP4; 2:4 evaluated with HiF4) to extract an outlier-heavy sparse backbone, quantizes that to FP4, then defines a dense residual relative to the quantized backbone and quantizes it too, so two FP4 passes compensate each other's error. Generalizes across NVFP4, HiF4 and MXFP4. No calibration data, retraining, or per-model tuning.
Key numbers
Recovers 43-63% of the NVFP4-vs-FP16 accuracy gap; 2.2-2.4x latency reduction vs FP16 on RTX 5090; 1.2-1.4x throughput over FP8; up to 1.58x on video generation.
Modern architectures
Directly relevant to our nvfp4 result: it independently identifies per-block scale contamination by outliers as the binding constraint on 4-bit activations, and treats sparsity as the tool for removing that contamination rather than as a separate compression family.
Ecosystem
Evaluated on Llama-3.1-8B, Qwen2.5-7B, Qwen3-30B-A3B and Qwen3-VL-8B, so it covers dense, MoE and VL variants. Speedups measured on Blackwell consumer silicon (RTX 5090) with native FP4.

arXiv:2606.26587 · Code adversarially re-checked: corrected here

Low-rank projection

ESPACE: Dimensionality Reduction of Activations for Model Compression

PaperNeurIPS 2024low-rank activation projection onto principal components (not a datatype change)Training / finetuning

Projects activations onto a pre-calibrated set of principal components instead of decomposing weights, so the tensor crossing each layer is genuinely lower-dimensional rather than merely lower-precision.

Details
Mechanism
Builds a calibration-derived projection matrix per activation site and projects the activation into that subspace; because the projection can be fused into the adjacent weight matrix, the GEMM itself shrinks. Framed as model compression achieved through activation dimensionality reduction, which the authors argue is better-posed than weight matrix factorization because the projection is fit to the data distribution actually seen.
Key numbers
50% model compression with 0.18 perplexity increase on GPT3-22B, but reaching that requires pre-training-scale retraining to heal projection error (330B tokens for GPT3, 200B for Llama2, 275B for Nemotron4-15B); only ~20% compression is iso-accurate untrained. The latency win is prefill/TTFT-only; end-to-end throughput is explicitly out of scope.
Modern architectures
The rank axis is orthogonal to the bit axis, so ESPACE-style projection could in principle compose with wire quantization: reduce the dimension first, then quantize the smaller tensor. But the verifier reclassifies ESPACE as a model-production method (retraining at pre-training scale), so the composition is far costlier than it first appears, and nobody has published it at a pipeline boundary.

arXiv:2410.05437 adversarially re-checked: corrected here

D-com: Accelerating Iterative Processing to Enable Low-rank Decomposition of Activations

PaperarXiv cs.AR (Oct 2025)runtime low-rank (Lanczos / progressive) activation decompositionHardware / kernels

Argues activation low-rank decomposition is dismissed as impractical only because the iterative decomposition is slow, and builds a co-accelerator that makes it viable at inference time.

Details
Mechanism
Combines progressive and Lanczos decomposition algorithms in a dedicated co-accelerator. Two key techniques: a compute replication methodology that parallelizes the inherently iterative decomposition for a 6.2x speedup, and an output shape-preserving scheme that removes reconstruction cost across consecutive layers so decompositions can be chained without re-materializing full-rank tensors.
Key numbers
6.2x speedup from compute replication; 22% end-to-end latency improvement vs A100 GPU, at modest model quality loss. 12 pages, 13 figures.
Modern architectures
Establishes that the blocker for low-rank activation compression is decomposition latency, not representational quality. That is the key contrast with quantization, where the transform is essentially free and the cost is representational.
Ecosystem
Hardware-architecture paper (cs.AR/cs.PF), so the result is an accelerator design and simulation rather than a deployable kernel; no drop-in GPU path.

arXiv:2510.13147 adversarially re-checked: confirmed

Bit-level and adaptive group formats

Anda: Unlocking Efficient LLM Inference with a Variable-Length Grouped Activation Data Format

PaperHPCA 2025group-shared exponent with dynamic per-group mantissa allocation (variable-length)Hardware / kernels

Notes that weight-only quantization just moves the bottleneck onto floating-point activations, and answers with a grouped format using shared exponents and per-group variable mantissa width.

Details
Mechanism
Each activation group gets a shared exponent and a dynamically allocated mantissa bit budget, so precision follows the group's actual dynamic range. An iterative post-training adaptive precision search assigns bit-widths per LLM module to trade accuracy against energy and speed. Bit-plane memory organization and specialized processing units make variable-length groups actually cheaper, not just smaller.
Key numbers
2.4x speedup, 4.0x area efficiency, 3.1x energy efficiency vs baseline across popular LLMs.
Modern architectures
A contemporaneous generalization of MX-style group-shared exponents (the OCP Microscaling spec v1.0 predates it by 14 months) to variable per-group mantissa budgets. It is the cleanest statement of why grouping matters: a group-shared exponent is what stops a single outlier from consuming the whole tensor's range, which is precisely the mechanism behind mxfp4/nvfp4 rescuing 4-bit where per-token int4 fails.

arXiv:2411.15982 adversarially re-checked: corrected here

M2XFP: A Metadata-Augmented Microscaling Data Format for Efficient Low-bit Quantization

PaperASPLOS 2026metadata-augmented microscaling FP4 (compared against MXFP4 and NVFP4)Hardware / kernels

Adds a small metadata side-channel to microscaling formats to recover the accuracy that MXFP4 and NVFP4 still leave on the table, with matching accelerator support.

Details
Mechanism
Identifies residual accuracy loss in fixed microscaling formats and adds minimal metadata to correct it: element-level for activations (2 extra mantissa bits on the top-1 element per 8-value subgroup, group 32) and subgroup-level for weights, paired with algorithm-hardware co-design so the extra metadata does not erase the bandwidth win. Covers both weight and activation quantization.
Key numbers
70.63% reduction in accuracy loss vs MXFP4 and 37.30% vs NVFP4 on LLM benchmarks (algorithmic result). The 1.91x speedup and 1.75x energy saving are SIMULATED (Verilog synthesis, TSMC 28nm) against a state-of-the-art MX accelerator, not measured silicon.
Modern architectures
The most load-bearing external datapoint for our format claim: it independently confirms the MXFP4 < NVFP4 ordering we observe, and quantifies the gap. It also shows NVFP4 is not the end of the line, so our nvfp4-as-robust-choice conclusion should be stated as the best currently-deployable option rather than an optimum.

arXiv:2601.19213 · Code adversarially re-checked: corrected here

SPARQLe: Sub-Precision Activation Representation for Quantized LLM Inference

PaperarXiv (Jun 2026)sub-precision split via precision bitmaps (bit-level, not value-level, sparsity)Hardware / kernels

Exploits the fact that most activations cluster near zero, so their high-order bits are redundant, and splits each tensor into dense and sparse parts that run on narrower datapaths.

Details
Mechanism
Observes that a significant fraction of activations concentrate around zero, which makes the higher-order bits sparse rather than the values themselves. Hardware-software co-design splits each activation tensor into dense and sparse components using precision bitmaps, so common near-zero values are computed on a lower-bit datapath while rare wide-range values retain precision.
Key numbers
Prefill latency reduced 16-24.3% and decode latency 13.5-23.4% across BitNet 3B, Llama2 7B and Llama3 8B.
Modern architectures
A third axis distinct from both quantization and value sparsity: bit-plane sparsity within the activation. Worth noting as evidence that the FP16 activation tensor is redundant in more than one way at once.
Ecosystem
Industry/academic co-design (Intel and Purdue affiliations among the authors); the win depends on datapath support for the bitmap split, so it is not a drop-in GPU kernel.

arXiv:2606.00365 adversarially re-checked: confirmed

Also verified, not profiled: mit-han-lab/fouroversix (adaptive block scaling for NVFP4, Apr 2026) and IST-DASLab/FP-Quant.

6 Outlier structure and error propagation 8

Diagnosis rather than compressors: where activation outliers come from and how perturbations propagate. Massive Activations and the GLU spike study locate the few positions that cannot be touched, Quantizable Transformers supplies the no-op attention mechanism behind them, and Rethinking the Outlier Distribution separates massive from channel-persistent outliers. The propagation half covers weight-side failure modes (degradation vs collapse), soft-error injection (reliability, not quantization), the per-tensor INT4 collapse in weight-tied recursive models that mirrors our depth result, and Mix-Quant's prefill/decode asymmetry. Our decode-horizon probes answer this group.

Where activation outliers come from

Massive Activations in Large Language Models

PaperICML 2024IN-PERTURBField-verified record

No rate/bits/rank: 4 of ~40,000 activations (~0.01%) overwritten. Zeroing → ppl 5.47/7.85/8.57 to inf and zero-shot 68.95%→36.75% (near chance); mean-substitution → ppl 5.47/7.86/8.59, zero-shot 68.95%→68.94% (no loss). efficiency_win: absence confirmed / not stated.

Verified record
Mechanism
Intervention on hidden states, not a compressor: massive activations set to zero (destructive sparsification of 2-4 scalar positions), or replaced by their empirical mean (constant/bias substitution). Selectivity control: an equal number of median-magnitude activations zeroed at the same hidden state.
Topology
single_device_intra_layer (group: single device), unattested: describes only the site (residual-sum output h_l at layer 2 in 7B / layer 4 in 13B); no device or parallelism config named
Headline result
No rate/bits/rank: 4 of ~40,000 activations (~0.01%) overwritten. Zeroing → ppl 5.47/7.85/8.57 to inf and zero-shot 68.95%→36.75% (near chance); mean-substitution → ppl 5.47/7.86/8.59, zero-shot 68.95%→68.94% (no loss). efficiency_win: absence confirmed / not stated.
Accumulation over decode
not_measured - reports single-forward-pass perplexity (WikiText/C4/PG-19) and 5-task zero-shot accuracy, plus per-layer magnitude traces; no decode-step horizon reported
Failure mode
Zeroing 2-4 massive activations at one layer collapses the model (ppl inf, near-chance acc); zeroing equally many median-magnitude activations causes no drop - tolerance is position-selective

arXiv:2402.17762 every field re-verified against the paper PDF in the source survey

Quantizable Transformers (clipped softmax / gated attention)

PaperNeurIPS 2023Enables full INT8 activation quantization with no extra machinery; W8A8Training / finetuning

The mechanistic explanation for activation outliers: attention heads that want to do nothing must drive softmax inputs to extremes to get exact zeros, and that pressure creates outliers elsewhere. Two architecture tweaks remove them.

Details
Mechanism
Traces strong outliers to heads learning a 'no-op' or partial residual update; achieving the near-zero attention weights that requires pushes pre-softmax logits ever larger during training. Two independent fixes make the no-op cheap: clipped softmax (allows exact zeros without extreme logits) and gated attention (an explicit gate for skipping the update). Applied during pre-training.
Key numbers
Models pre-trained with either modification learn significantly smaller outliers while matching or improving FP task performance, and then quantize to full INT8 activations with no additional effort. Shown on BERT, OPT and ViTs.
Modern architectures
The 'attention wants a no-op' account is the root-cause story behind attention sinks and massive activations, and predicts where activation magnitude concentrates in any residual transformer, including modern GQA/MLA and MoE stacks. Gated attention has since reappeared in production architectures.
Ecosystem
Qualcomm AI Research; no official code URL on the abstract page. Its successor in spirit is Outlier-Safe Pre-Training (arXiv:2506.19697), which prevents outliers via the Muon optimizer, Single-Scale RMSNorm and a learnable embedding projection.

arXiv:2306.12929 adversarially re-checked: confirmed

Activation Spikes in GLU-Based LLMs (QFeM / QFeP)

PaperarXivINT8 W8A8, especially coarse-grained (per-tensor) activation schemesCalibration data

Identifies a second, token-local outlier class specific to GLU feed-forward networks, activation spikes in early and late layers, confined to a couple of tokens, and shows SmoothQuant fails to control them.

Details
Mechanism
Two empirical mitigations that exclude the spiking computation from quantization rather than rescaling it: Quantization-free Module (QFeM) leaves the specific FFN linear layers where spikes occur in higher precision, and Quantization-free Prefix (QFeP) pins the spike-carrying prefix tokens so the remaining tokens quantize cleanly. Both are calibration-driven and training-free, and stack on top of existing smoothing.
Key numbers
Spikes localize to the FFN of specific early and late layers and to a couple of tokens rather than being spread over the sequence; the methods improve coarse-grained activation quantization on Llama-2/3, Mistral, Mixtral, SOLAR and Gemma, including cases where SmoothQuant fails.
Modern architectures
The most directly relevant outlier science for current architectures, since GLU/SwiGLU FFNs are universal in Llama, Mistral, Mixtral, Qwen and Gemma. Layer-position dependence (early and late layers worst) is a concrete prediction for any depth-dependent activation compression scheme, including per-stage pipeline boundaries.
Ecosystem
Code at github.com/onnoo/activation-spikes. Complements the channel-persistent outlier picture of SmoothQuant/RPTQ: spikes are token-local, so channel-wise scaling cannot see them.

arXiv:2405.14428 · Code adversarially re-checked: confirmed

Rethinking the Outlier Distribution in Large Language Models: An In-depth Study

PaperarXiv (May 2025)n/a - diagnostic study of activation outlier structure, enabling low-bit activationsn/a

Investigates why massive activations and channel-wise outliers arise in the first place, and proposes ways to remove them rather than merely tolerate them.

Details
Mechanism
Separates the two distinct outlier phenomena that break activation quantization - massive activations (a few tokens/dimensions with enormous magnitude) and channel-wise outliers (persistent high-magnitude channels) - then investigates the underlying mechanisms producing each. Proposes mitigation strategies to eliminate them while preserving accuracy, so downstream quantization sees a better-conditioned tensor.
Key numbers
Study paper; contribution is the mechanistic account and mitigation rather than a headline speedup or perplexity number.
Modern architectures
The channel-wise vs per-token distinction it draws is the crux of our own finding: per-token int4 scaling cannot see a persistent channel outlier, which is why grouping (mxfp4/nvfp4) or channel separation is required. Pair it with OSC, which operationalizes the channel-persistence observation.

arXiv:2505.21670 adversarially re-checked: confirmed

How errors propagate and where quantization fails

From Signal Degradation to Computation Collapse: Two Failure Modes of LLM Quantization

PaperACL 2026 Findingsweight-only PTQ at 2/3/4/8-bit, group size 128n/a

Explains the 2-bit performance cliff as two mechanistically distinct regimes: cumulative noise that degrades an intact computation, versus outright breakdown of key components. Caveat: the study is weight-only PTQ.

Details
Mechanism
Mode I, Signal Degradation (~4-bit): computational patterns stay intact and quantization error acts as cumulative noise impairing precision, which targeted repair fixes without retraining. Mode II, Computation Collapse (~2-bit): key components stop functioning - attention loses focus (entropy >0.8), FFN gates flip sign >30% of the time, and representational structure collapses in early layers, which compensation cannot repair.
Key numbers
GPTQ at 2/3/4/8-bit primary, AWQ for validation, calibrated on 128 C4 sequences; Llama-3.1-8B primary, validated on Qwen3-8B, Mistral-7B-Instruct-v0.3, Gemma-2-9B-it. Collapse markers: attention entropy >0.8, >30% FFN gate sign flips.
Modern architectures
SCOPE CORRECTION: weight-side, not activation-side. Still the most useful conceptual import for our work - the degradation/collapse dichotomy is exactly the shape of our per-token int4 failure at depth, where error stops being cumulative noise and becomes structural. Use as mechanism analogy, not evidence.
Ecosystem
Verified against the full HTML: the experimental setup states weight-only PTQ explicitly. The abstract alone is ambiguous on this point, which is how it can be mistaken for an activation-quantization paper.

arXiv:2604.19884 adversarially re-checked: confirmed

Not All Errors Are Equal: A Systematic Study of Error Propagation in LLM Inference

PaperICS 2026n/a - single-bit soft-error injection, not a compression formatn/a

Fault-injection study of how single perturbations propagate through LLM inference, using the LLMFI framework across thirteen tasks. Important caveat: it studies hardware SOFT ERRORS, not quantization error.

Details
Mechanism
Builds LLMFI, a configurable and deterministic fault-injection framework, and injects soft errors across multiple models and thirteen representative tasks spanning reasoning, multilingual, mathematical and coding domains. Distills 17 findings about which perturbations are absorbed and which propagate to output corruption, then proposes four software-only reliability mitigations.
Key numbers
17 key findings on error propagation; 4 software-only reliability improvements; thirteen tasks across reasoning, multilingual, math and code.
Modern architectures
SCOPE CORRECTION for the review: this is reliability/soft-error science and contains no quantization. It is legitimate support for the general claim that activation perturbations are unequally consequential, but must not be cited as a quantization result.
Ecosystem
Fault targets are stated: bit flips injected into intermediate ACTIVATIONS (forward hooks), stored WEIGHTS (pre-hooks) and the KV cache, at submodule/layer/transformer-block granularity, on Phi-3.5-mini, DeepSeek-llm-7b-chat and Gemma-7b. Block-granularity activation fault injection is a close analogue to perturbing a pipeline-stage boundary.

arXiv:2606.02430 adversarially re-checked: corrected here

Quantizing Recursive Reasoning Models

PaperarXiv (2026)MXInt4 blockwise integer activations vs per-tensor INT4Training-free

Shows that in weight-tied recursive models, where one block is applied repeatedly, per-tensor 4-bit activations collapse completely and blockwise MXInt4 fully restores accuracy. The collapse is attributed to scaling granularity, not bit-width.

Details
Mechanism
Because weight-tied blocks are reused every recursion step, quantization error is incurred at each step and accumulates with unrolling depth. The authors isolate the cause by holding bit-width and number format fixed while varying scaling granularity: per-tensor 4-bit activation scaling collapses, and MXInt4 (blockwise integer activations with per-block scales) completely restores the accuracy transition.
Key numbers
Per-tensor 4-bit collapses Sudoku exact-solution accuracy from 84.1% to 0.0%; MXInt4 completely restores it. Robust across recursive architectures including equilibrium models, and on open-ended ARC-AGI.
Modern architectures
The closest external corroboration of our central result, in a different geometry: repeated application of one weight-tied block rather than depth across pipeline stages. Their conclusion that collapse is caused by activation-scaling GRANULARITY rather than bit-width or number format restates our per-token-int4-fails-at-depth finding. Caveat that must ship alongside it: the subjects are ~7M-parameter recursive puzzle solvers (TRM, equilibrium models), not LLMs. They also find activation-side sensitivity dominates while weight-only 4-bit stays benign.

arXiv:2607.16237 adversarially re-checked: corrected here

Mix-Quant: Quantized Prefilling, Precise Decoding for Agentic LLMs

PaperarXiv (May 2026)NVFP4 prefill / BF16 decode (phase-dependent precision)Training-free

Finds that prefill tolerates aggressive FP4 quantization while decode does not, and exploits the asymmetry by running prefill in FP4 and decode in BF16.

Details
Mechanism
Shows that quantizing the whole inference pipeline degrades agentic performance, but the degradation is concentrated in decode; prefill absorbs FP4 with little loss. Mix-Quant is therefore phase-aware: low-precision FP4 during prefilling, BF16 retained for decoding. This decouples the acceleration target from the accuracy target in multi-turn agent workflows involving planning, tool use and memory retrieval.
Key numbers
Up to 3x prefill speedup while preserving task performance on long-context and agentic benchmarks.
Modern architectures
Strongly relevant to depth findings: decode is the phase that cannot absorb coarse 4-bit. Note the paper's own explanation is that prefilling exhibits substantial quantization redundancy; attributing the asymmetry to autoregressive error compounding in decode is our reading, not the paper's claim.

arXiv:2605.20315 adversarially re-checked: corrected here

7 Modern architectures: what frontier MoE models ship and resist 13

What DeepSeek, Kimi and Qwen actually ship, and the methods targeting their components. Frontier checkpoints already carry compression natively: FP8 with UE8M0 scales (DeepSeek V3.x), FP4 expert weights (V4), INT4 weight-only QAT (K2-Thinking), MXFP4 weights with MXFP8 activations (K3), and NVIDIA's NVFP4 re-quantizations scoped to expert linears at group size 16. The exclusion lists are the evidence: routers, MLA latents and every GDN state module stay high precision. EAQuant, MxMoE, SnapMLA, the GDN inversion paper and Quamba2 explain why: expert-conditional statistics, RoPE-carrying latent dims and persistent recurrent state resist generic per-token activation quantizers.

Native compression in frontier checkpoints

DeepSeek-V3 / V3.1 / V3.2 (MLA + DeepSeekMoE, native FP8)

Model family2024-2025FP8 e4m3 weights, dynamic FP8 activations, 128x128 blocks; UE8M0 scales from V3.1Hardware / kernels

671B/37B MoE whose attention (MLA) is itself a learned KV compressor and whose released checkpoints are natively FP8. V3.1 onward switch the FP8 scale to UE8M0, and V3.2 adds sparse attention with an FP8 indexer.

Details
Mechanism
MLA compresses K/V into a 512-dim per-token latent (kv_lora_rank=512, q_lora_rank=1536), so the cached tensor is already a learned low-rank code. config.json ships quantization_config = {quant_method fp8, fmt e4m3, weight_block_size [128,128], activation_scheme 'dynamic'}; V3.1/V3.2 add scale_fmt 'ue8m0' (power-of-two E8M0 scales, the microscaling convention). V3.2 adds a 64-head/128-dim lightning indexer selecting top-2048 tokens.
Key numbers
V3 (arXiv 2412.19437): 671B total / 37B active, 61 layers, 256 routed experts top-8 + 1 shared, kv_lora_rank 512, 163,840 ctx. V3.2 (arXiv 2512.02556) indexer: 64 heads, head_dim 128, index_topk 2048.
Modern architectures
MLA's latent is a pre-compressed state, so generic per-token KV quantization has little redundancy left to exploit and the RoPE-carrying dims need protection. The base checkpoint is already FP8 with power-of-two (UE8M0) scales, so any further activation or wire quantizer is a second quantization of an FP8 tensor; E8M0-scaled mxfp8 composes cleanly with it, per-tensor int8 does not. Top-8 routing makes activation statistics expert-conditional.
Ecosystem
Weights on HF, served by SGLang/vLLM. The DSA lightning indexer is the one component the V3.2 paper explicitly designates FP8. UE8M0 was publicly framed (Aug 2025) as targeting next-generation domestic Chinese accelerators.

arXiv:2412.19437 · Source adversarially re-checked: corrected here

DeepSeek-V4-Pro / V4-Flash (FP4 experts + FP8 elsewhere)

Model family2026FP4 MoE expert weights + FP8 e4m3 (UE8M0 scales, 128x128) elsewhereHardware / kernels

DeepSeek's newest series ships MoE expert weights natively in FP4 with most other weights in FP8, behind a hybrid Compressed Sparse Attention + Heavily Compressed Attention design at 1M context.

Details
Mechanism
Model card states: 'FP4 + FP8 Mixed: MoE expert parameters use FP4 precision; most other parameters use FP8.' config.json sets expert_dtype='fp4' plus quantization_config {fp8, e4m3, weight_block_size [128,128], scale_fmt 'ue8m0'}. V4-Pro safetensors census: 1.573T params packed as I8 (FP4 containers), 23.2B F8_E4M3, 2.8B BF16, 87.8M F32 scales. Attention uses head_dim 512 with 1 KV head; per-layer compress_ratios alternate 128 and 4.
Key numbers
V4-Pro 1.6T total / 49B active, 61 layers, 384 experts top-6 + 1 shared; V4-Flash 284B / 13B, 43 layers, 256 experts. Both 1M ctx, 32T pretrain tokens. At 1M context V4-Pro needs 27% of V3.2's single-token FLOPs and 10% of its KV cache.
Modern architectures
First open frontier model whose default weight format is 4-bit, so activation-side compression becomes the marginal cost rather than the headline. CSA/HCA already cut the KV read to ~10% of V3.2, leaving KV quantization less to win; the surviving traffic is expert dispatch/combine plus the FP8 non-expert path, i.e. exactly the wire tensors. Any further activation quantizer stacks on a 4-bit weight path.
Ecosystem
Preview release, MIT license, weights on HF and ModelScope. Report: arXiv 2606.19348, 'DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence' (Apr 2026), which carries the 1.6T/49B, 284B/13B, 32T-token and 27%-FLOPs/10%-KV figures. Base variants (V4-Pro-Base, V4-Flash-Base) ship FP8-only for comparison.

arXiv:2606.19348 · Source adversarially re-checked: corrected here

Kimi K2 / K2-Thinking (1T MLA MoE, INT4 weight-only QAT)

Model family2025-2026INT4 weight-only on MoE experts (QAT); activations high precisionTraining / finetuning

Trillion-parameter MLA MoE (32B active, 384 experts) whose Thinking release applies INT4 weight-only QAT to the MoE components during post-training, leaving activations at high precision.

Details
Mechanism
Model card: 'Quantization-Aware Training (QAT) during the post-training phase, applying INT4 weight-only quantization to the MoE components.' All published benchmark numbers are measured at INT4. The quantized tensors are the expert GEMM weights; the MLA attention path and the rest of the model are untouched.
Key numbers
1T total / 32B activated, 384 experts with 8 selected per token, MLA attention. ~2x generation speedup at INT4; ~594 GB footprint reported for the INT4 checkpoint.
Modern architectures
A useful control: a trillion-scale MoE absorbs 4-bit weights via QAT with activations left alone, and it is Moonshot's own next model (K3) that moves activations to MXFP8. The card names long thinking traces as the failure mode for low-bit MoE - the same length/depth error-accumulation regime in which per-token int4 activations break down.
Ecosystem
Weights on HF. The base K2 report (arXiv 2507.20534) also specifies activation compression in storage: inputs of MoE up-projections and SwiGLU are compressed to FP8-E4M3 in 1x128 tiles with FP32 scales, without applying FP8 in computation. The INT4 QAT detail appears on the K2-Thinking model card; LMSYS's Jan 2026 INT4 RL rollout work builds on the same W4A16 scheme.

arXiv:2507.20534 · Source adversarially re-checked: corrected here

Kimi K3 (2.8T KDA + Gated MLA, MXFP4 weights / MXFP8 activations)

Model family2026MXFP4 weights (block 32, E8M0/uint8 scales) + MXFP8 activations, QATTraining / finetuning

2.8T-parameter KDA+MLA hybrid MoE that ships natively as MXFP4 weights with MXFP8 activations, quantization-aware trained from SFT onward. The strongest existing endorsement of microscaled formats for activations at frontier scale.

Details
Mechanism
Official README: 'Kimi K3 applies quantization-aware training from the SFT stage onward, using MXFP4 weights with MXFP8 activations for broad hardware compatibility.' config.json quantization_config: compressed-tensors 'mxfp4-pack-quantized', num_bits 4, group_size 32, scale_dtype torch.uint8 (E8M0). Ignore list: self_attn, shared_experts, dense mlp proj, lm_head, vision_tower, mm_projector - only routed-expert linears are 4-bit.
Key numbers
2.8T total / 104B active, 93 layers = 69 KDA + 24 Gated MLA, 896 experts top-16 + 2 shared, kv_lora_rank 512, 160K vocab, 1,048,576 ctx. MXFP4 group size 32; ~1.56 TB on disk vs ~5.6 TB BF16.
Modern architectures
Direct corroboration of the mxfp8-activation result: a frontier lab chose MXFP8 (block-32, E8M0 scales) for activations rather than per-token int8, and reached 4 bits only on weights and only via QAT. With 69 of 93 layers KDA, most intermediates feed a persistent recurrent state; those modules plus attention and shared experts are excluded from MXFP4. PTQ tuned for BF16 checkpoints does not transfer here.
Ecosystem
Kimi K3 does exist (verified via official GitHub README, HF model card, and config.json). Recommended engines: vLLM, SGLang, TokenSpeed. Weights under the Kimi K3 License; native multimodal (MoonViT-V2, 401M) and 1M context.

Code · Source adversarially re-checked: confirmed

Qwen3.5-122B-A10B / Qwen3.6-35B-A3B (hybrid Gated DeltaNet MoE)

Model family2026FP8 e4m3, 128x128 weight blocks, dynamic activation scaling; GDN state modules BF16Hardware / kernels

Alibaba's hybrid line interleaves Gated DeltaNet linear attention with gated full attention at 3:1 over a 256-expert MoE. The official FP8 repos quantize ordinary GEMMs but leave every module touching the recurrent state in BF16.

Details
Mechanism
Official FP8 configs: quant_method 'fp8', weight_block_size [128,128], activation_scheme 'dynamic'. The 122B FP8 repo excludes, per GDN layer, linear_attn.conv1d / in_proj_a / in_proj_b, plus every mlp.gate router, shared_expert_gate, lm_head, embed_tokens, the vision tower and the MTP head. The Qwen3.6-35B FP8 config (fmt 'e4m3') goes further, additionally excluding in_proj_ba, A_log, dt_bias, linear_attn.norm, q_norm/k_norm and layernorms. GDN out_proj and full-attention projections ARE quantized in both.
Key numbers
122B/10B: 48 layers = 36 linear_attention + 12 full_attention (interval 4), 256 experts 8 routed + 1 shared, 262,144 ctx extensible to ~1.01M. 35B/3B: 40 layers = 30 GDN + 10 gated attention, same MoE, expert dim 512, GDN 32 V heads / 16 QK heads, head dim 128, conv kernel 4.
Modern architectures
These exclusion lists are concrete evidence that a linear-attention state is not an ordinary activation: the GDN input projections, short conv, decay parameters (A_log, dt_bias) and state norm stay BF16 while neighbouring projections go FP8. Routers are always excluded because a small perturbation flips top-k and changes the computation path. Only the parts of the activation-quantization toolkit acting on transient projection outputs transfer.
Ecosystem
Base Qwen/Qwen3.5-122B-A10B and Qwen/Qwen3.6-35B-A3B repos are BF16; FP8 ships as separate official repos described as 'fine-grained fp8 quantization with block size of 128'. Community INT4/NVFP4/MXFP4 and int4+fp8 hybrid variants exist. Runs on transformers, vLLM, SGLang, KTransformers.

Source adversarially re-checked: corrected here

NVIDIA ModelOpt NVFP4 checkpoints (DeepSeek-V4-Pro, Qwen3.6-35B-A3B)

Doc2026NVFP4 (E2M1 values, E4M3 scale per 16 elements), weights + activations, experts onlyCalibration data

Official NVIDIA NVFP4 re-quantizations that scope 4-bit weight AND activation quantization to MoE expert linears only, leaving attention, routers and the linear-attention path alone, at near-parity accuracy.

Details
Mechanism
hf_quant_config.json for DeepSeek-V4-Pro-NVFP4 is quant_algo MIXED_PRECISION with per-layer entries 'layers.N.ffn.experts' → NVFP4, group_size 16; everything else remains FP8. Card: 'Only the weights and activations of the linear operators within transformer blocks in MoE are quantized.' Calibrated with cnn_dailymail plus Nemotron-Post-Training-Dataset-v2 using nvidia-modelopt v0.44.
Key numbers
DeepSeek-V4-Pro FP8→NVFP4: GPQA-D 89.49→89.33, AA-LCR 66.89→66.33, tau2-Bench Telecom 94.25→94.83, SciCode 51.08→53.45, IFBench 77.82→77.21. Qwen3.6-35B-A3B BF16→NVFP4: MMLU-Pro 85.6→85.0, GPQA-D 84.9→84.8, AIME25 89.2→88.8.
Modern architectures
Shows what vendors currently believe transfers to modern MoE: NVFP4's finer 16-element block scale is applied to expert activations and weights, but nobody quantizes the router, the MLA/attention projections, or GDN state modules. Group size 16 with an E4M3 scale (NVFP4) versus 32 with an E8M0 scale (MXFP4) is precisely the axis leaned on for 4-bit activation robustness.
Ecosystem
Verified serving on B200/GB300 with vLLM (--kv-cache-dtype fp8, TP4) and SGLang (TP8); SGLang integration merged 2026-06 (PR 25820), auto-detected from the checkpoint config.json quantization_config ('moe_quant_algo': 'NVFP4').

Code · Source adversarially re-checked: corrected here

MoE-aware quantization

EAQuant: Enhancing Post-Training Quantization for MoE Models via Expert-Aware Optimization

PaperarXiv, Jun 2025; final version Feb 2026W4A4, W3A4, W3A3, W2A4 (integer weight+activation)Calibration data

MoE-specific PTQ that attacks the three failure modes generic methods miss: expert-conditional activation outliers, routing flips after quantization, and calibration sets that barely touch rare experts.

Details
Mechanism
Three expert-aware components: smoothing aggregation to suppress activation outliers across experts sharing an input, routing consistency alignment so top-k expert selection survives quantization, and calibration data balance so sparsely activated experts receive enough samples to estimate scales.
Key numbers
1.15-13.81% accuracy improvement over prior PTQ across three MoE architectures, with the largest gains on reasoning tasks.
Modern architectures
This is the per-expert calibration problem stated precisely: in an MoE the activation statistics a quantizer observes are conditioned on the router, so a single global scale is wrong and a calibration set that never activates expert i gives it no scale at all. The routing-consistency term has no dense-model analogue - it is the only part of the activation-quantization toolkit that is MoE-only.
Ecosystem
Code released. Applies to the 256-896-expert regime of DeepSeek-V3/V4, Kimi K2/K3 and Qwen3.5/3.6, though the published evaluation uses smaller MoE architectures than those.

arXiv:2506.13329 · Code adversarially re-checked: corrected here

MxMoE: Mixed-precision Quantization for MoE with Accuracy and Performance Co-Design

PaperICML 2025Mixed-precision, e.g. 2.25-bit weight configs and 5-bit weight-activation configsCalibration data

Allocates bit-widths per MoE linear block using both quantization sensitivity and how often each expert is actually routed to, then generates mixed-precision GroupGEMM kernels so heterogeneous precisions still run fast.

Details
Mechanism
Formulates mixed-precision assignment over experts and linear blocks from two signals: differing per-block quantization sensitivity, and heterogeneous expert activation frequency. Emits fused GroupGEMM kernels that execute GEMMs of different precisions in parallel, so mixed precision is not paid back in kernel-launch overhead.
Key numbers
2.25-bit config beats GPTQ by 2.4 Wikitext-2 perplexity; 5-bit weight-activation setting reaches 3.4x speedup over full precision and 29.4% over uniform quantization at equal accuracy.
Modern architectures
Expert activation frequency is the MoE-specific lever: hot experts see many tokens per batch and dominate throughput while cold experts see few and dominate calibration error, so uniform precision is wrong in both directions. Ports cheaply to Qwen3.5/K3-scale expert counts, but the payoff is concentrated on weights rather than on the tensor crossing a stage or all-to-all boundary.
Ecosystem
Kernel-level co-design; the GroupGEMM approach is the same primitive production MoE engines use, so the mixed-precision assignment is realizable rather than simulation-only.

arXiv:2505.05799 · Code adversarially re-checked: confirmed

MLA, sparse attention, and recurrent state

Kimi Linear: An Expressive, Efficient Attention Architecture (KDA)

PaperarXiv, Oct 2025 (Moonshot AI / Kimi Team)n/a (architectural state compression, not numeric)Training / finetuning

Introduces Kimi Delta Attention, a Gated DeltaNet variant with channel-wise decay, interleaved 3:1 with MLA. This is the architecture that makes K3's intermediates mostly a persistent recurrent state rather than transient tensors.

Details
Mechanism
KDA is a Diagonal-Plus-Low-Rank linear attention with two dynamic gates - a per-channel forget gate and an update rate - giving a fixed-size recurrent memory; every fourth layer is full MLA to preserve global information flow. Decode carries the state forward instead of growing a KV cache.
Key numbers
48B total / 3B activated; 3:1 KDA:MLA layer ratio; up to 75% less KV cache and up to 6x decoding throughput at 1M context.
Modern architectures
The recurrent state is written once per step and read on every subsequent step, so a quantization error in it compounds across the whole generation rather than being consumed immediately like a pipeline-boundary activation. That is the mechanistic reason hybrid checkpoints keep state modules in BF16, and why per-token quantizers designed for transient tensors do not transfer to the state.
Ecosystem
Open kernels and 48B-A3B checkpoints released; the same KDA block scales up to Kimi K3 (69 of 93 layers). Qwen3-Next/Qwen3.5/3.6 use Gated DeltaNet at the same 3:1 ratio, so the state-persistence argument covers both families.

arXiv:2510.26692 · Code adversarially re-checked: confirmed

DeepSeek-V3.2: Pushing the Frontier of Open Large Language Models (DSA)

PaperarXiv, Dec 2025 (DeepSeek-AI)FP8 for the lightning indexer; sparse top-k token selectionTraining / finetuning

The DeepSeek Sparse Attention report: a lightning indexer plus fine-grained token selection cuts attention from quadratic to linear, and the paper states the indexer can be implemented in FP8.

Details
Mechanism
A lightweight lightning indexer scores past tokens and a fine-grained selector keeps top-k, reducing attention cost from O(L^2) to O(Lk). The paper: 'Given that the lightning indexer has a small number of heads and can be implemented in FP8, its computational efficiency is remarkable.'
Key numbers
Released config: index_n_heads 64, index_head_dim 128, index_topk 2048 (V3.2); the same indexer appears in V4-Pro with topk 1024 and V4-Flash with topk 512.
Modern architectures
Sparse attention is a different axis from numeric compression but interacts with it twice. The indexer is the one component explicitly designated FP8, and it is a scoring head whose errors change which tokens get read - a routing-like sensitivity closer to an MoE gate than a value projection. Token selection also removes the very redundancy a KV quantizer exploits, so the two do not stack multiplicatively.
Ecosystem
Reference implementation and kernels in deepseek-ai/DeepSeek-V3.2-Exp; DSA carries forward into the V4 series alongside CSA/HCA. Note: the paper's only precision statement is the FP8 indexer sentence - training precision is not discussed.

arXiv:2512.02556 · Code adversarially re-checked: confirmed

SnapMLA: Efficient Long-Context MLA Decoding via Hardware-Aware FP8 Quantized Pipelining

PaperarXiv, Feb 2026 (rev. Apr 2026)FP8 MLA latent KV (per-token) with RoPE part high precision; FP8 PV GEMMTraining-free

FP8 KV cache and FP8 PV compute for MLA decoding, with a RoPE-aware per-token quantizer that keeps the RoPE-carrying part of the latent in high precision.

Details
Mechanism
RoPE-Aware Per-Token KV Quantization splits the MLA latent so the RoPE component stays high precision while the compressed content dimensions go FP8, combined with FP8 P*V computation and a hardware-aware pipelined schedule. Training-free, aimed at long-output decode.
Key numbers
Up to 1.91x throughput on long-output decoding workloads versus BF16, with near-parity quality on reasoning and code-generation benchmarks.
Modern architectures
The concrete answer to how you quantize an MLA latent: you cannot treat it as one homogeneous vector, because the RoPE-carrying dimensions have different dynamics from the compressed content dimensions. That heterogeneity-inside-one-tensor problem is MLA's analogue of the outlier-channel problem, and it explains why a single per-token scale underperforms a split scheme.
Ecosystem
Code released (meituan-longcat/SGLang-FluentLLM; authors are Meituan LongCat). Directly relevant to DeepSeek-V3/V3.2/V4 and Kimi K2/K3, all of which carry MLA (K3 as Gated MLA on 24 of 93 layers).

arXiv:2602.10718 · Code adversarially re-checked: confirmed

When Good Enough Is Optimal: Multiplication-Only Matrix Inversion Approximation for Quantized Gated DeltaNet

PaperarXiv, Jun 2026Low-bit INT for the chunked delta-rule inversion path (hardware-friendly, NPU)Training-free

Replaces the triangular matrix inverse inside chunk-wise Gated DeltaNet with a truncated Neumann expansion of matmuls, then makes that path survive low-bit INT by controlling the dynamic-range expansion inversion causes.

Details
Mechanism
A MatMul-only algorithm for strictly lower-triangular inversion using truncated Neumann expansion with structural masking and parallel residual correction, extended to low-bit INT by mitigating dynamic range expansion. Evaluated on Qwen3.5-family models and targeted at NPUs without a fast inverse.
Key numbers
Up to 5x kernel-level speedup and roughly 20% reduction in decode-layer overhead while preserving accuracy, on Qwen3.5-family models.
Modern architectures
The clearest published account of why hybrid models resist activation quantization: the delta-rule chunk update needs a triangular matrix inverse, the repeated matrix-power terms of its Neumann approximation expand dynamic range, and the resulting intermediates are far harder to represent in low-bit INT than an ordinary projection output. The fix is to change the operator, not the scale, demonstrated on the exact Qwen3.5 GDN blocks that official FP8 checkpoints refuse to quantize.
Ecosystem
The only paper found that quantizes a Gated DeltaNet path specifically rather than Mamba/SSM generally. Complements the empirical evidence from Qwen's own FP8 exclusion lists.

arXiv:2606.06034 adversarially re-checked: corrected here

Quamba2: A Robust and Scalable Post-training Quantization Framework for Selective State Space Models

PaperICML 2025 (Quamba1: ICLR 2025)W8A8, W4A8, W4A16 integer (Mamba1 and Mamba2)Calibration data

W8A8/W4A8/W4A16 PTQ for selective SSMs that quantizes the inputs of the linear recurrence offline by sorting and clustering channels, with per-state-group scales for the input-dependent B and C.

Details
Mechanism
Head-to-toe quantization of Mamba1/Mamba2: inputs of the linear recurrence are quantized to 8-bit offline by sorting and clustering channels, weights are rearranged to match the clustering so SSM output stays compute-invariant, and B and C get per-state-group quantization.
Key numbers
1.3x prefill and 3x generation speedup, 4x memory reduction, 1.6% average accuracy drop. Predecessor Quamba reports naive 8-bit causing model collapse at all sizes, while self-attention layers tolerate the same error.
Modern architectures
The baseline result the hybrid era inherited: naive 8-bit on a recurrent state collapses the model while attention layers survive it - the same asymmetry the Qwen FP8 exclusion lists encode in production. Transfer to GDN/KDA is only partial, since those add data-dependent per-channel decay and delta-rule updates that Mamba's channel-order-preserving trick does not cover.
Ecosystem
Code under enyac-group/Quamba. Follow-ons include Quamba-SE (multi-scale activation quantizer for SSMs), MambaQuant (rotation methods, arXiv 2501.13484) and Ternary Mamba (W1.58A16 QAT).

arXiv:2503.22879 · Code adversarially re-checked: corrected here

Also verified, not profiled: FP8-Flow-MoE (2511.02302; casting-free FP8 across MoE dispatch/combine on a 671B model, +21% throughput, the closest analogue to MoE wire quantization), Nemotron 3 (2512.20856, hybrid Mamba MoE with NVFP4), VSRAQ (2606.05688), QUADS (2607.15810). Gap: no paper yet quantizes the KDA/GDN recurrent state itself at 4 bits.

8 Ecosystem: frameworks, hardware, and tools 34

The practical layer, split three ways. Frameworks: what --quantization and --kv-cache-dtype accept today in SGLang, vLLM and TensorRT-LLM, and how ModelOpt checkpoints flow in. Hardware: the datatype and interconnect matrix from RTX 4090 (FP8, no FP4, PCIe Gen4) through 5090 and RTX PRO 6000 (native NVFP4, PCIe only, no NVLink) to H100/H200 (FP8-native, NVLink, no microscaling) and B200/B300/NVL72 (native NVFP4 at 1.8 TB/s NVLink), which decides where wire compression pays at all. Tools: the producer toolchain from llm-compressor and Model Optimizer to torchao and Quark, with maintenance status flagged (AutoAWQ archived, optimum-quanto in maintenance mode, SpinQuant non-commercial).

Serving frameworks (SGLang, vLLM, TensorRT-LLM)

SGLang --quantization method matrix (2026)

Framework2026fp8 e4m3 (per-tensor and per-128x128 block), int8, mxfp8, mxfp4, nvfp4, int4 awq/gptqTraining-free

SGLang's runtime accepts 32 --quantization values (23 documented) spanning online fp8/mxfp8/int8 and offline awq/gptq/marlin/compressed-tensors/ModelOpt checkpoints. Blackwell NVFP4 is reachable online (MoE-only) and offline via modelopt_fp4.

Details
Mechanism
Quantized linear/MoE kernels are selected by a Config → Method → Scheme → Kernel dispatch. Online paths quantize weights at load and activations per-forward (per-token or per-block); offline paths load pre-quantized checkpoints. GEMM backend is chosen with --fp8-gemm-backend (deep_gemm, flashinfer_trtllm/cutlass/deepgemm, cutlass, triton, aiter) and --fp4-gemm-backend (flashinfer_cutlass/cudnn/cutedsl/trtllm, marlin).
Key numbers
Docs table lists 23 methods; server_args.py accepts 32 values (extensible), incl. fp8, w8a8_fp8, w8a8_int8, mxfp8, mxfp4, mxfp_w4a8, nvfp4_online, modelopt/_fp8/_fp4/_mixed, awq(_marlin), gptq(_marlin), compressed-tensors, quark variants, auto-round, petit_nvfp4, w4afp8, moe_wna16, gguf, bitsandbytes, modelslim, mlx_q4/q8. Gotcha: blockwise_int8 is documented and registered but not in the argparse choices list, so the flag is rejected.
Modern architectures
Strong MoE emphasis: separate MoE schemes for compressed-tensors, ModelSlim and Quark, plus a MoeRunner migration for W4A4 NVFP4 and the SM100 TRT-LLM MXFP4 MoE path.
Ecosystem
Mature for fp8/int8 W8A8 and awq/gptq. nvfp4_online is MoE-only and needs SM100+; modelopt_fp4 falls back to Marlin W4A16 on Ampere/Hopper; Marlin kernels are CUDA-only. Roadmap #31783 is mid-refactor toward Config→Method→Scheme→Kernel and intends to split --quantization (checkpoints) from --online-quantization (runtime). Nothing here touches parallelism-wire precision.

Source adversarially re-checked: corrected here

SGLang --kv-cache-dtype (fp8, mxfp8, and FP4 KV cache)

Framework2026fp8_e4m3 / fp8_e5m2, mxfp8, nvfp4 (E2M1 block-16), fp4_mx_block16, fp4_e2m1Training-free

SGLang upstream accepts fp8_e5m2, fp8_e4m3, mxfp8, nvfp4, fp4_mx_block16 and fp4_e2m1 as KV-cache storage dtypes, putting 4-bit KV cache in shipped upstream code. FP4 recipes require CUDA 12.8+ and PyTorch 2.8.0+.

Details
Mechanism
The KV pool is allocated in the low-precision dtype; K/V are quantized on write and either dequantized or consumed natively by the attention backend. mxfp8 is gated to the FA4 backend; nvfp4 is block-16 E2M1 with FP8 scales, fp4_mx_block16 is the MX-style block-16 E2M1 recipe. ServerArgs post-processing validates each recipe against the selected attention backend and SM level.
Key numbers
Nine accepted values in server_args.py: auto, fp8_e5m2, fp8_e4m3, mxfp8, bf16, bfloat16, nvfp4, fp4_mx_block16, fp4_e2m1. A separate --speculative-draft-kv-cache-dtype exists for draft models.
Ecosystem
The rendered docs table lists only 7 of the 9 values (mxfp8 and fp4_e2m1 appear in server_args.py but not the published table), so source is the better reference. FP4 KV is still tracked as an open roadmap thread (#29913) and backend coverage is uneven per recipe. Note the contrast: SGLang will store KV at 4 bits but sends PP activations at full width.

Source adversarially re-checked: confirmed

vLLM quantization methods, online flags, and Marlin/Machete kernels

Framework2026fp8_e4m3 (per-tensor/128x128 block/per-token), int8 per-channel+per-token, mxfp8, mxfp4 (e8m0 1x32), nvfp4 E2M1, int4Training-free

vLLM supports fp8 W8A8, int8 W8A8, awq/gptq int4, NVFP4/MXFP4, bitsandbytes, torchao and Quark, with calibration-free online paths under fp8_per_tensor / fp8_per_block / mxfp8 / mxfp4 flags. Mixed-input GEMMs run on Marlin (Ampere) or Machete (Hopper).

Details
Mechanism
A quantization-config registry picks a per-layer scheme and kernel at load time. Online quantization quantizes weights at load and activations per-forward at the declared granularity; pre-quantized checkpoints are parsed from config.json. Mixed-input W4A16/W8A16 GEMMs dispatch to Marlin or, on Hopper, to the CUTLASS-based Machete kernel.
Key numbers
Online flags: fp8_per_tensor, fp8_per_block (fp32 per-128x128 weight, per-1x128 activation scale), mxfp8, mxfp4; --quantization-config for per-layer control. FP8 needs CC>=8.9 (Ada/Hopper); INT8 needs CC>7.5 and is unsupported on Blackwell (CC>=10.0). mxfp8 W8A8 needs SM100+, else W8A16 fallback.
Ecosystem
The de-facto reference implementation with the broadest hardware matrix (Volta through Blackwell, AMD, Intel, CPU). Marlin (marlin_utils.py, marlin_utils_fp4.py, marlin_utils_fp8.py) and Machete (machete_utils.py) both live under vllm/model_executor/layers/quantization/utils; Machete is the Hopper/TMA successor to Marlin, and Marlin doubles as the W4A16 fallback when no native FP4 GEMM exists.

Source adversarially re-checked: confirmed

vLLM --kv-cache-dtype (FP8 KV cache)

Framework2026fp8_e4m3, fp8_e5m2 (per-tensor or per-attention-head scales)Training-free

vLLM quantizes the KV cache via --kv-cache-dtype: the docs cover the FP8 family, but the source accepts 17 values including nvfp4 and 3/4-bit turboquant recipes with real kernels. Per-attention-head FP8 scales are Flash-Attention-only.

Details
Mechanism
K and V are written to the paged cache in FP8 and consumed by the attention kernel. Two granularities: one scale per Q/K/V tensor, or per-head scales when the checkpoint carries them from llm-compressor and the Flash Attention backend is active. --kv-cache-dtype-skip-layers leaves sensitive layers (e.g. sliding_window) in full precision.
Key numbers
Docs values: auto, fp8, fp8_e4m3, fp8_e5m2 (fp8_e4m3 on CUDA 11.8+ and ROCm). Source (vllm/config/cache.py CacheDType) additionally ships nvfp4, nvfp4_4over6, int4/int8/fp8_per_token_head, fp8_ds_mla, fp8_inc and four turboquant 3/4-bit recipes, backed by dedicated CUDA kernels and the FlashInfer backend. kv_cache_dtype='fp8' alone pins all scales to 1.0 (the common footgun); --kv-cache-dtype-skip-layers exempts sensitive layers.
Ecosystem
Broader than the docs suggest, and at least as broad as SGLang on KV dtypes once the source is consulted. Calibrated scales come from llm-compressor checkpoints.

Source adversarially re-checked: corrected here

vLLM NVIDIA Model Optimizer integration (NVFP4 / MXFP8 on Blackwell)

Framework2026NVFP4 (E2M1 block-16, FP8 E4M3 scales), MXFP8, FP8 per-tensor / per-channel-per-token / block-scaledCalibration data

vLLM auto-detects ModelOpt checkpoints from hf_quant_config.json and serves FP8, NVFP4 and MXFP8 variants via --quantization modelopt / modelopt_fp4 / modelopt_mxfp8. Without a native FP4 GEMM it degrades to weight-only W4A16 on Marlin.

Details
Mechanism
The loader reads the ModelOpt quant config, selects an FP4/FP8 scheme, then picks a GEMM backend at load time from CUTLASS, FlashInfer or Marlin based on the detected SM level. FP8 variants cover per-tensor ("FP8"), per-channel weight with dynamic per-token activation ("FP8_PER_CHANNEL_PER_TOKEN"), and block-scaled weight-only ("FP8_PB_WO").
Key numbers
Flags: --quantization modelopt, modelopt_fp4, modelopt_mxfp8. MXFP8 on SM100 with BF16 activations wants --linear-backend flashinfer_trtllm. On GPUs without a supported native FP4 GEMM, vLLM warns and falls back to W4A16 via Marlin.
Ecosystem
The main production route to true 4-bit activation compute in vLLM, and Blackwell-gated in practice: the W4A16 Marlin fallback keeps activations at 16 bits on Ampere/Hopper, so the FP4 activation path really only exists on SM100+. Useful confirmation that microscaled FP4 (NVFP4 block-16 with FP8 scales) is the format the vendor stack converged on.

Source adversarially re-checked: confirmed

llm-compressor + compressed-tensors (vLLM's quantization path)

Repo2026W8A8 int8/fp8, W4A16, W8A16, W4AFP8, NVFP4, MXFP4, MXFP8, WNA4/8/16, fp8 and NVFP4 KV cacheCalibration data

llm-compressor is the Red Hat AI / vLLM-project library that produces quantized checkpoints, and compressed-tensors is the safetensors extension that stores them. Together they are the standard offline route into vLLM, and are also read by SGLang via --quantization compressed-tensors.

Details
Mechanism
llm-compressor applies modifiers (GPTQModifier, SmoothQuantModifier with smoothing_strength, AWQ, AutoRound, rotation-based SpinQuant/QuIP, REAP expert pruning) to a transformers model, then serializes to compressed-tensors. compressed-tensors encodes scheme, strategy (per-tensor, per-channel, per-token, per-group/block), format and ignore list in config.json so vLLM rebuilds the right kernel at load.
Key numbers
Recipe scheme strings include "FP8_DYNAMIC" (static per-channel weights, dynamic per-token activations) and "W8A8" (int8 W8A8-dynamic-per-token, typically SmoothQuant at smoothing_strength=0.8 plus GPTQ), both with targets="Linear" and ignore=["lm_head"]. compressed-tensors was at 0.18.1.dev0, Apache-2.0.
Modern architectures
Dedicated MoE schemes exist in vLLM for compressed-tensors W4A4 NVFP4/MXFP4, W4A8 fp8/int8, W8A8 fp8/int8/mxfp8 and wna16, including RDNA3 variants.
Ecosystem
Mature and the most widely adopted checkpoint format for quantized LLMs; it also carries rotation methods (SpinQuant, QuIP) into a serving-ready artifact. Canonical repo is now vllm-project/compressed-tensors (neuralmagic/compressed-tensors redirects). Everything it expresses is per-layer weight/activation/KV precision; the format has no concept of a parallelism-wire dtype.

Source adversarially re-checked: confirmed

TensorRT-LLM quantization recipes and hardware matrix

Framework2026NVFP4/FP4, FP8 per-tensor / block scaling / rowwise, W4A16 and W4A8 (AWQ, GPTQ), FP8 and NVFP4 KV cacheCalibration data

TensorRT-LLM ships FP4/NVFP4, three FP8 flavours (per-tensor, block scaling, rowwise), W4A16/W4A8 AWQ and GPTQ, plus FP8 and NVFP4 KV cache, gated by GPU architecture. Nothing in the quantization documentation addresses communication precision.

Details
Mechanism
Recipes are attached to the engine/LLM config and compiled into architecture-specific kernels. Per-arch support: Blackwell SM100/103 gets NVFP4 (incl. NVFP4 KV cache) and FP8 block scaling; SM120 gets NVFP4, MXFP4, FP8 per-tensor and FP8 KV; Hopper gets all FP8 variants (rowwise is Hopper-only) plus W4Ax; Ada gets FP8 per-tensor, FP8 KV cache and all four W4A8/W4A16 AWQ/GPTQ recipes; Ampere is limited to W4A16 AWQ/GPTQ plus FP8 KV cache.
Key numbers
Eleven listed recipes: FP4, MXFP4, FP8 Per Tensor, FP8 Block Scaling, FP8 Rowwise, FP8 KV Cache, NVFP4 KV Cache, W4A16 GPTQ, W4A8 GPTQ, W4A16 AWQ, W4A8 AWQ. KV cache set via KvCacheConfig(dtype='fp8') or 'nvfp4'.
Ecosystem
The most hardware-tuned of the three but the least flexible: recipes are largely pre-baked per architecture and the fastest paths assume Blackwell. Along with NVFP4 KV cache it is the clearest vendor endorsement of microscaled FP4 for inference. Verified absence of any communication/wire precision discussion on the quantization page, and an issue search for PP communication quantization returns nothing.

Source adversarially re-checked: corrected here

Hardware: datatypes and interconnect

NVIDIA GeForce RTX 5090 (consumer Blackwell, GB202, sm_120)

Hardware2025FP4 e2m1, FP6, FP8 e4m3/e5m2, INT8, FP16/BF16, TF32; block-scaled NVFP4/MXFP4/MXFP6/MXFP8Hardware / kernels

32 GB GDDR7 on a 512-bit bus at 1,792 GB/s, 575 W, PCIe Gen 5, and no NVLink. First consumer silicon with FP4 tensor cores, so 4-bit and 8-bit activation math is native while every inter-GPU byte still crosses the host bus.

Details
Mechanism
5th-gen tensor cores add FP4/FP6 to Hopper's FP8 Transformer Engine. Block-scaled MMA is the warp-level mma.sync path (.kind::mxf4nvf4 / .mxf8f6f4), not datacenter Blackwell's tcgen05 + Tensor Memory, so SM100 kernels are both binary- and algorithm-incompatible. GeForce also halves FP32-accumulate tensor rates: FP8 is 838 TFLOPS with FP16 accumulate but only 419 with FP32.
Key numbers
FP4 1676/3352 TFLOPS (dense/sparse); FP8 838/1676 (FP16 acc), 419/838 (FP32 acc); INT8 838/1676 TOPS; FP16 419/838 (FP16 acc). 21,760 CUDA cores, 680 TCs, 2.41 GHz. 32 GB GDDR7, 512-bit, 28 Gbps, 1,792 GB/s. PCIe Gen 5. NVLink: No. 575 W. NVIDIA headline: 3,352 AI TOPS.
Ecosystem
Cheapest silicon where NVFP4/MXFP4 GEMM and an fp8/mxfp8 wire codec are hardware-native rather than software-emulated. But no NVLink, and NVIDIA states P2P is unsupported on GeForce, so PP/TP activation traffic rides PCIe and can stage through host memory. This is exactly the regime where compressing stage-boundary activations buys wall-clock instead of nothing.

Source adversarially re-checked: confirmed

NVIDIA RTX PRO 6000 Blackwell (sm_120, 96 GB)

Hardware2025FP4 e2m1, FP6, FP8 e4m3/e5m2, INT8, FP16/BF16, TF32; block-scaled NVFP4/MXFP4/MXFP6/MXFP8Hardware / kernels

Same sm_120 tensor-core ISA as the RTX 5090 but 96 GB of GDDR7 with ECC at 1,792 GB/s. Still PCIe Gen 5 with no NVLink, so tripling capacity per card does not fix the interconnect.

Details
Mechanism
Identical narrow-precision set to GeForce Blackwell (FP4/FP6/FP8/INT8, block-scaled NVFP4/MXFP4 via mma.sync, no tcgen05 or Tensor Memory). The 600W Workstation Edition reaches FP4 2015.2/4030.4 TFLOPS (dense/sparse) and FP8/INT8 1007.6/2015.2; the 300W Max-Q Edition runs FP4 1755.7/3511.4 and FP8/INT8 877.9/1755.7. The 96 GB frame buffer is the practical reason to prefer it over a 5090 when sizing PP stages.
Key numbers
96 GB GDDR7 with ECC, 1,792 GB/s (Server Edition SKU: 1,597 GB/s), PCIe Gen 5, 4,000 AI TOPS headline (Workstation Edition), 5th-gen tensor cores.
Ecosystem
Unlike GeForce, the pro line does expose PCIe P2P; dual-card NCCL P2P hangs were reported (NVIDIA/nccl 1999, since closed) with NCCL_P2P_DISABLE=1 as the workaround. Either way the ceiling is PCIe Gen 5 at ~64 GB/s per direction, so activation wire compression still pays on these boxes.

Source adversarially re-checked: corrected here

NVIDIA GeForce RTX 4090 (Ada Lovelace, AD102, sm_89)

Hardware2022FP8 e4m3/e5m2, INT8, FP16/BF16, TF32; NO FP4, NO FP6, NO block-scaled MMAHardware / kernels

24 GB GDDR6X at 1,008 GB/s on PCIe Gen 4, with NVLink explicitly listed as No. FP8 tensor cores are real here (Ada carries Hopper's FP8 Transformer Engine), but NVIDIA's own table lists FP4 as N/A.

Details
Mechanism
sm_89 4th-gen tensor cores accelerate FP8 e4m3/e5m2 through warp-level mma.sync (mapping to the QMMA instruction), with no wgmma, no TMA, and no block-scaled MMA. INT8/FP16/BF16/TF32 are supported; FP4, FP6 and any microscaled format are absent and must be emulated in software. FP32-accumulate tensor rates are halved versus FP16 accumulate, as on Blackwell GeForce.
Key numbers
FP8 660.6/1321.2 TFLOPS (FP16 acc), 330.3/660.6 (FP32 acc); INT8 660.6/1321.2 TOPS; FP16 330.3/660.6 (FP16 acc), 165.2/330.4 (FP32 acc). FP4: N/A. 24 GB GDDR6X, 384-bit, 21 Gbps, 1,008 GB/s. PCIe Gen 4. NVLink: No. 450 W. NVIDIA headline: 1,321 AI TOPS.
Ecosystem
So int8 and fp8 wire codecs are free on the compute side, but per-token int4 and microscaled mxfp4/nvfp4 are pure software on Ada: eager pack/unpack with zero tensor-core payoff. Worst interconnect in this set - PCIe Gen 4 at ~32 GB/s per direction, no NVLink, and an NVIDIA moderator relayed that Engineering says P2P is not supported on the 4090.

Source adversarially re-checked: corrected here

NVIDIA H100 (Hopper, sm_90)

Hardware2022FP8 e4m3/e5m2, INT8, FP16/BF16, TF32, FP64; no FP4/FP6, no block-scaled MMAHardware / kernels

80 GB HBM3 at 3.35 TB/s (SXM) with 900 GB/s of NVLink 4 per GPU. FP8 is the floor of this generation: the Transformer Engine accelerates e4m3/e5m2 and INT8, and NVIDIA's spec table carries no FP4 or FP6 row at all.

Details
Mechanism
4th-gen tensor cores reach FP8/INT8 via wgmma (warpgroup async MMA) plus TMA, at 2x the FP16 rate, with full-rate FP32 accumulate unlike GeForce. There is no block-scaling hardware, so MXFP8/MXFP4/NVFP4 buffers must be dequantized in software before the GEMM. Sub-byte wmma integer paths (experimental u4/s4, and b1 with XOR) are deprecated at sm_90, so int4 activations get no supported tensor-core path either.
Key numbers
SXM: FP8 and INT8 3,958 TFLOPS/TOPS with sparsity (~1,979 dense), FP16/BF16 1,979 with sparsity (~990 dense), TF32 989 with sparsity (~495 dense), FP64 TC 67. 80 GB HBM3, 3.35 TB/s, NVLink 900 GB/s, PCIe Gen 5 128 GB/s. H100 NVL: 94 GB HBM3, 3.9 TB/s, NVLink 600 GB/s, FP8 3,341.
Ecosystem
The FP8-native, FP4-absent generation: fp8 weight+activation serving is free, everything microscaled is emulated exactly the way our eager wire codecs do it. NVLink 4 at 900 GB/s against PCIe Gen 5's 128 GB/s is a ~7x gap, so inside an NVLink island a bf16 PP hop is already cheap; across PCIe-attached NVL pairs or across nodes, wire compression matters again.

Source adversarially re-checked: corrected here

NVIDIA H200 (Hopper, sm_90)

Hardware2024FP8 e4m3/e5m2, INT8, FP16/BF16, TF32, FP64; no FP4/FP6, no block-scaled MMAHardware / kernels

Compute is byte-identical to H100 SXM - same FP8/INT8 numbers, still no FP4 row - but memory jumps to 141 GB HBM3e at 4.8 TB/s. A capacity and bandwidth upgrade, not a datatype upgrade.

Details
Mechanism
Same sm_90 4th-gen tensor cores and Transformer Engine as H100: FP8 and INT8 at 3,958 TFLOPS/TOPS with sparsity, FP16/BF16 1,979 and TF32 989 with sparsity (dense is half). No block-scaling hardware and no FP4/FP6. The delta is 141 GB HBM3e and 4.8 TB/s, which lifts KV-cache headroom and decode bandwidth without adding any new quantization format.
Key numbers
141 GB HBM3e, 4.8 TB/s, NVLink 900 GB/s, SXM up to 700 W; H200 NVL air-cooled PCIe dual-slot up to 600 W with FP8/INT8 3,341, FP16 1,671 (sparse), TF32 835 (sparse), FP64 TC 60. NVIDIA marks the table preliminary.
Ecosystem
For activation compression the important fact is negative: no native microscaling anywhere in Hopper, so mxfp8/nvfp4 wire codecs on H200 are software pack/unpack just as on H100. The 141 GB per GPU also reduces pressure to shard deep, which cuts the number of PP stage boundaries there are to compress in the first place.

Source adversarially re-checked: corrected here

NVIDIA B200 (datacenter Blackwell, sm_100)

Hardware2024NVFP4/MXFP4 (e2m1), MXFP6 (e2m3/e3m2), FP8/MXFP8 (e4m3/e5m2), INT8, FP16/BF16, TF32, FP64Hardware / kernels

Up to 192 GB HBM3E at 8 TB/s with 1.8 TB/s of NVLink 5 per GPU. First datacenter part where NVFP4 and the MX formats are handled in hardware - element grouping, dynamic scaling and 4-bit MMA all inside the tensor core.

Details
Mechanism
5th-gen tensor cores are driven by tcgen05.mma out of dedicated Tensor Memory. CUTLASS lists inputs e4m3/e5m2 (FP8), e2m3/e3m2 (FP6), e2m1 (FP4), plus block-scaled aggregates mx_float8_t/mx_float6_t/mx_float4_t/nv_float4_t with ue8m0 or ue4m3 scales. NVFP4 = 16-element blocks with an e4m3 scale and a per-tensor FP32 scale; MXFP4 = 32-element blocks with a power-of-two ue8m0 scale.
Key numbers
Per GPU: NVFP4 10|20 PFLOPS dense|sparse, FP8 5|10 PFLOPS, max 192 GB HBM3E, 8 TB/s, NVLink 1.8 TB/s (18x100 GB/s). DGX B200: 1,440 GB total (180 GB/GPU), 64 TB/s, 14.4 TB/s aggregate NVLink. HGX B200: FP4 144|72 PFLOPS, 1.4 TB total.
Modern architectures
Second-gen Transformer Engine applies micro-tensor scaling automatically, which is what lets MoE and long-context serving stacks run NVFP4 end to end without hand-written scale plumbing.
Ecosystem
Where a microscaled wire codec becomes genuinely free: the same nvfp4 or mxfp8 buffer you put on the wire is also a legal tensor-core operand, so quantize-once-use-twice works instead of dequantizing at every stage. Datatype list confirmed at docs.nvidia.com/cutlass/latest/media/docs/cpp/blackwell_functionality.html. Caveat: NVLink 5 makes intra-node PP hops so cheap that compression saves little inside the box.

Source adversarially re-checked: confirmed

NVIDIA B300 / Blackwell Ultra (sm_103)

Hardware2025NVFP4/MXFP4, MXFP6, FP8/MXFP8, INT8, FP16/BF16, TF32 (sm_103 target)Hardware / kernels

288 GB HBM3E per GPU at the same 8 TB/s and same 1.8 TB/s NVLink 5 as B200, with 1.5x dense NVFP4 and ~2x attention-exponential throughput. A capacity-and-FP4 refresh, not a new datatype set.

Details
Mechanism
Same 5th-gen tensor core datatypes as B200 (FP8/FP6/NVFP4, block-scaled MX) but a distinct compile target - compute capability 10.3 / sm_103 per CUDA arch tables - so cubins differ from sm_100. Dense NVFP4 rises 10 to 15 PFLOPS while FP8 is unchanged at 5|10 PFLOPS, making the uplift specifically 4-bit. SFU EX2 throughput goes 5 to 10.7 TeraExponentials/s, roughly doubling softmax/attention headroom.
Key numbers
288 GB HBM3E via 12-high stacks (vs B200's max 192 GB), 8 TB/s, NVLink 1.8 TB/s, ~1,400 W TDP. NVFP4 15|20 PFLOPS dense|sparse vs B200's 10|20; FP8 5|10 unchanged. SFU 10.7 vs 5 TeraExponentials/s. HGX B300: FP4 144|108 PFLOPS, 2.1 TB total memory.
Modern architectures
The 2x SFU exponential rate is aimed at attention and long reasoning traces; it shifts the bottleneck for long-context serving away from softmax and back onto memory and interconnect.
Ecosystem
The FP8-flat / FP4-up shape is a hardware bet that 4-bit is the serving format - the same regime as our per-token int4 failures and mxfp4/nvfp4 rescue. On this chip the microscaled 4-bit path is the fast path and plain per-token int4 is not a tensor-core citizen at all. 288 GB also means fewer PP stages per model, hence fewer boundaries to compress.

Source adversarially re-checked: confirmed

GB200 NVL72 / GB300 NVL72 (rack-scale NVLink domain)

Hardware2025NVFP4/MXFP4, MXFP6, FP8/MXFP8, INT8, FP16/BF16 (72x B200 or 72x B300)Hardware / kernels

72 Blackwell GPUs in one NVLink domain: 130 TB/s aggregate NVLink and 13.4 TB (GB200) or 20 TB (GB300) of HBM3E. Inside this domain a PP or TP hop is nearly a local memory access, which is precisely where wire compression stops paying.

Details
Mechanism
NVLink 5 switches make the whole rack one 72-GPU fabric at 1.8 TB/s per GPU, so tensor, expert and pipeline parallelism no longer have to respect an 8-GPU node boundary. NVFP4 is the headline inference datatype: GB200 NVL72 reports FP4 1,440|720 PFLOPS sparse|dense, GB300 NVL72 1,440|1,080 - matching 72x10 and 72x15 PFLOPS dense per GPU.
Key numbers
72 GPUs + 36 Grace CPUs. NVLink 5: 130 TB/s aggregate, 1.8 TB/s per GPU. GB200 NVL72: 13.4 TB HBM3E, FP4 1,440|720 PFLOPS, FP8 720 PFLOPS. GB300 NVL72: 20 TB HBM3E, up to 576 TB/s memory bandwidth, FP4 1,440|1,080 PFLOPS, FP8/FP6 720 PFLOPS.
Ecosystem
The rack is the counterexample to the wire-compression thesis: at 1.8 TB/s per GPU, bf16 activations on a stage boundary cost microseconds and squeezing them is noise. That asymmetry is the point - the same PP topology that is bandwidth-bound on a PCIe consumer box is compute-bound here, so wire-quantization results are only interpretable with the interconnect named.

Source adversarially re-checked: confirmed

PCIe vs NVLink asymmetry (interconnect regimes for wire compression)

Hardware2026n/a - interconnect bandwidth, not a datatypeHardware / kernels

Per-GPU interconnect spans ~64 GB/s bidirectional (PCIe Gen 4 x16) to 1,800 GB/s bidirectional (NVLink 5), a roughly 28x spread that decides whether activation wire compression is a first-order win or a rounding error.

Details
Mechanism
NVIDIA's own figures: NVLink 4 (Hopper) 900 GB/s per GPU over 18 links, NVLink 5 (Blackwell) 1,800 GB/s over 18x100 GB/s, NVLink 6 (Rubin) 3,600 GB/s over 36 links; NVSwitch NVL72 aggregate 130 TB/s. PCIe Gen 5 x16 is 128 GB/s bidirectional per NVIDIA's H100 page. NVIDIA states NVLink 6 delivers over 14x the bandwidth of PCIe Gen6.
Key numbers
NVLink 4: 900 GB/s. NVLink 5: 1,800 GB/s. NVLink 6: 3,600 GB/s. NVSwitch NVL72: 130 TB/s. PCIe Gen 5 x16: 128 GB/s bidir. PCIe Gen 4 x16: ~64 GB/s bidir. Ratios: NVLink5:PCIe5 ~14x, NVLink5:PCIe4 ~28x, NVLink4:PCIe5 ~7x.
Ecosystem
Implied rule: on NVLink islands the PP boundary is not the bottleneck and int8/fp8 wire codecs buy little; on PCIe-only boxes (5090, 4090, RTX PRO 6000) the same codec removes a first-order cost and 4-bit vs 8-bit on the wire is a real 2x. Consumer boards also often run slots at x8/x4, and GeForce P2P is disabled, so measured PCIe throughput usually sits well below the x16 spec.

Source adversarially re-checked: corrected here

Quantization toolchain

llm-compressor (vLLM project)

Repo2024-2026W4A16, W8A16, W8A8 int8, W8A8 FP8, W4A8/W4AFP8, NVFP4, MXFP4, MXFP8, FP8+NVFP4 KV cache, 2:4 sparseCalibration data

Transformers-compatible one-shot compression library and the default on-ramp for activation quantization in the open stack. Applies GPTQ/AWQ/SmoothQuant/AutoRound/RTN recipes plus Hadamard transforms and writes compressed-tensors checkpoints for vLLM and SGLang.

Details
Mechanism
Recipe-driven sequential pipeline over a HF model: forward hooks capture per-layer activation statistics on a calibration set, fit per-channel weight scales and per-token or per-block activation scales (static or dynamic), optionally rotate to kill outliers, then serialize quantization config plus packed payloads into safetensors.
Key numbers
3,714 stars; v0.13.0 released 2026-08-11; last push 2026-08-23; Apache-2.0; 3,190 commits
Modern architectures
Actively tracks MoE and hybrid models (Qwen3 MoE, DeepSeek-family, Nemotron hybrids); expert-wise and attention/KV-cache quantization schemes are first-class rather than bolt-ons.
Ecosystem
Output format is compressed-tensors, loaded natively by vLLM and SGLang and by HF Transformers. Calibration-free paths exist (RTN, dynamic-activation FP8), so not every scheme needs data. Docs: https://docs.vllm.ai/projects/llm-compressor. Red Hat AI publishes pre-quantized checkpoints from it claiming >99% baseline accuracy recovery.

Code · Source adversarially re-checked: confirmed

compressed-tensors

Repo2024-2026INT4/INT8, FP8, NVFP4, MXFP4, unstructured + 2:4 sparsity, Hadamard transform descriptorsn/a

A safetensors extension that defines the on-disk format for quantized and sparse checkpoints. It is the interchange layer between llm-compressor (producer) and vLLM/SGLang/Transformers (consumers), and the closest thing the field has to a standard for activation-quant metadata.

Details
Mechanism
Per-tensor QuantizationArgs record num_bits, dtype, granularity/strategy (per-tensor, per-channel, per-group, per-token, per-block), symmetry, and static-vs-dynamic. Weights ship packed (int4/int8/fp4) alongside scale and zero-point tensors; separate arg blocks describe input-activation, output-activation, KV-cache quantization, and Hadamard transform metadata.
Key numbers
315 stars; v0.18.0 released 2026-08-08; last push 2026-08-22; 575 commits; 42 open PRs
Ecosystem
Because it carries activation-quant args and rotation metadata in the checkpoint itself, a wire/activation scheme described here is portable across engines. Recent commits show a QuantizedKVCache wrapper and an fp4 rounding Triton kernel, i.e. activation/KV compression is where the format is currently growing.

Code · Source adversarially re-checked: confirmed

NVIDIA Model Optimizer (formerly TensorRT Model Optimizer)

Repo2024-2026FP8 per-tensor/per-block, INT8 SmoothQuant, INT4 AWQ, W4A8, NVFP4 weights+activations+KV, MXFP4/MXFP8Calibration data

NVIDIA's unified PTQ/QAT toolkit and the canonical producer of NVFP4 and FP8 checkpoints. Practitioner gotcha: the repo was renamed from NVIDIA/TensorRT-Model-Optimizer to NVIDIA/Model-Optimizer, though the pip package is still nvidia-modelopt.

Details
Mechanism
Wraps torch modules in quantizer modules, runs a forward calibration pass to collect amax/histogram statistics, then fits per-tensor, per-channel, or per-block scales. Supports SmoothQuant migration, AWQ weight scaling, double-level NVFP4 scaling, and quantization-aware training/distillation when PTQ loses too much.
Key numbers
3,470 stars; v0.46.0 released 2026-08-18; last push 2026-08-24; repo dates to 2024-04, first full Apache-2.0 OSS release (0.23.0) published 2025-01 with NVFP4 support; 1,160+ commits. README: compress model size by 2x-4x via PTQ.
Modern architectures
Ships recipes for MoE (per-expert scaling) and for MLA-style attention; also covers speculative decoding and pruning in the same toolkit, so a single config can stack quantization with other inference-time compression.
Ecosystem
Practitioner gotchas: the repo was renamed to NVIDIA/Model-Optimizer (old TensorRT-Model-Optimizer URL redirects) while the pip package stays nvidia-modelopt; the PTQ example lives at examples/hf_ptq, and --kv_cache_qformat defaults to fp8_cast. Checkpoints are consumed by TensorRT-LLM, TensorRT, vLLM, SGLang (modelopt_fp8 / modelopt_fp4) and Diffusers. This is the reference path to NVFP4 activations plus NVFP4 KV cache on Blackwell. The toolkit has no notion of quantizing tensors in flight between GPUs, so PP-wire precision is out of scope by construction.

Code · Source adversarially re-checked: confirmed

torchao

Repo2023-2026int4/int8/intx weight-only; int8-dynamic-act, fp8-dynamic-act, static variants; MX + NVFP4 dynamic-actTraining-free

PyTorch-native quantization for both training and inference, built around tensor subclasses that compose with torch.compile and FSDP2. The most convenient library for dynamic activation quantization, since scales are computed at runtime and no calibration set is required.

Details
Mechanism
quantize_(model, Config()) swaps linear weights for AffineQuantizedTensor subclasses whose torch-function dispatch calls a quantized kernel. Dynamic-activation configs quantize the incoming activation per token (or per microscale block) inside the op, so activation scales never need to be calibrated or stored. Static variants are the exception and do need calibration.
Key numbers
2,955 stars; v0.18.0 released 2026-08; last push 2026-08-24. Inference: int4 weight-only 1.73x speedup / 65% less memory (Gemma3-12b-it on H100). Training-side (not inference): float8 up to 1.5x at 405B/512-GPU pre-training scale, MXFP8 MoE prototype 1.45x on Llama4 Scout.
Modern architectures
MX/NVFP4 work is explicitly aimed at MoE layers and at edge (int8 activations + int4 weights running Qwen3-4B on an iPhone), which brackets the two regimes where activation traffic dominates.
Ecosystem
Config names verified in source: Int8DynamicActivationInt8WeightConfig, Float8DynamicActivationFloat8WeightConfig, Float8DynamicActivationInt4WeightConfig, and under prototype/mx_formats MXDynamicActivationMXWeightConfig and NVFP4DynamicActivationNVFP4WeightConfig (so treat 4-bit microscaled activations as pre-stable). Consumed by HF Transformers (TorchAoConfig), vLLM, SGLang, Diffusers, ExecuTorch, TorchTune/TorchTitan.

Code · Source adversarially re-checked: corrected here

GPTQModel

Repo2024-2026GPTQ v1/v2, AWQ (GEMM/GEMV/Marlin/BitBLAS), QQQ (W4A8), GPTAQ, FOEM, EXL3, FP8, GGUF; 2/3/4/8-bitCalibration data

The maintained successor to both AutoGPTQ and AutoAWQ for HF Transformers/Optimum/PEFT integration, covering an unusually wide set of algorithms and hardware backends. Mostly weight-only, with QQQ as its W4A8 activation-quant path.

Details
Mechanism
Layer-wise second-order error compensation (GPTQ) or activation-aware channel rescaling (AWQ) fitted on a calibration set, then repacks weights into a kernel-specific layout (Marlin, Machete, ExLlama V2/V3, BitBLAS, Triton, TorchFused) chosen per target device.
Key numbers
1,240 stars; v7.3.4 released 2026-08-19 (README cites 7.4.0, Aug 2026); last push 2026-08-23
Ecosystem
Checkpoints load in HF Transformers, Optimum, PEFT, vLLM and SGLang. Backends span NVIDIA Turing+, AMD ROCm 6.2+, Intel XPU/CPU, Huawei Ascend NPU, and Apple Silicon via MLX conversion. README states it has 'fully supplanted AutoGPTQ and AutoAWQ' for the HF integration; GGUF and FP8 paths are weight-only and skip calibration.

Code · Source adversarially re-checked: confirmed

AutoAWQ (archived / deprecated)

Repo2023-2025INT4 weight-only, group size 128 (W4A16)Calibration data

Historically the reference AWQ implementation, now officially deprecated. Worth citing only as the origin of the W4A16 AWQ workflow; a practitioner in 2026 should not start here.

Details
Mechanism
Activation-aware weight quantization: a calibration pass measures per-channel activation magnitude, salient weight channels are scaled up before INT4 group-wise rounding so their relative error shrinks, and the inverse scale is folded into the preceding op. Activations stay FP16 throughout.
Key numbers
2,349 stars; archived 2025-05-11; final release v0.2.9 on 2025-05-11; no commits since
Ecosystem
README states AutoAWQ 'is officially deprecated and will no longer be maintained' and points users to vllm-project/llm-compressor, plus MLX-LM for Mac. vLLM and SGLang still read its checkpoint format via awq / awq_marlin kernels, so old AutoAWQ artifacts remain servable even though the tool is dead.

Code · Source adversarially re-checked: confirmed

bitsandbytes

Repo2021-2026LLM.int8() W8A8 with mixed-precision outlier decomposition; 4-bit NF4/FP4 weight-only; 8-bit optimizersTraining-free

The most-used k-bit quantization library in the HF ecosystem, and notable for this review because LLM.int8() is genuine calibration-free activation quantization rather than weight-only. Convenience-first: great for loading, weaker on throughput than kernel-specialized paths.

Details
Mechanism
LLM.int8() does vector-wise (per-row/per-token) int8 quantization of both activations and weights, detects outlier feature dimensions at runtime, and routes just those columns through a 16-bit matmul, summing the two partial products. NF4/FP4 4-bit is block-wise weight-only quantization with a normal-distribution-optimal codebook plus double quantization of the scales.
Key numbers
8,433 stars; v0.50.1 released 2026-08-13; last push 2026-08-19; ~913 forks
Ecosystem
Consumed via HF Transformers BitsAndBytesConfig, PEFT/QLoRA, and vLLM's bitsandbytes loader. Multi-backend as of the recent releases: CUDA SM60+ (SM75+ recommended), AMD ROCm/CDNA, Intel Arc and Data Center GPU Max, CPU with AVX2/AVX512, and partial Apple Metal. optimum-quanto's own README recommends it as an alternative.

Code · Source adversarially re-checked: confirmed

Hugging Face optimum-quanto (maintenance mode)

Repo2023-2026Weights int2/int4/int8/float8; activations int8/float8Calibration data

A PyTorch quantization backend that quantizes both weights and activations with an explicit calibrate-then-freeze workflow. Now formally in maintenance mode, which matters if a review cites it as a live option.

Details
Mechanism
quantize() replaces modules with QTensor-backed equivalents holding float weights and dynamic activation quantizers. An optional Calibration context manager runs representative samples and records activation ranges with momentum-tracked min/max, turning activation quantization from dynamic into static. freeze() then bakes integer weights, and requantize() restores from safetensors.
Key numbers
1,052 stars; last functional release v0.2.7 on 2025-03-06; commits since are dependabot, CI-security, and docs only (latest 2026-08-03, 'docs: update maintenance references')
Ecosystem
README states: 'This project is currently in maintenance mode. We accept pull requests only for minor bug fixes, documentation improvements, and other maintenance tasks,' and recommends bitsandbytes or torchao instead. Its quantize/calibrate/tune/freeze/serialize API is still the clearest short illustration of a static activation-quant workflow.

Code · Source adversarially re-checked: confirmed

AMD Quark

Repo2024-2026int4/uint4/int8, fp8 e4m3fn+e5m2, OCP MXINT8/MXFP8/MXFP6/MXFP4, Block Floating Point, bf16/fp16Calibration data

AMD's cross-platform PTQ/QAT toolkit and the practical route to MXFP4/MXFP6 activation quantization on ROCm. It is the AMD-side analogue of NVIDIA Model Optimizer and is a first-class quantization method in both vLLM and SGLang.

Details
Mechanism
Wraps PyTorch or ONNX graphs with quantizer nodes, runs calibration to fit scales, and supports AWQ, GPTQ, SmoothQuant, and rotation (Hadamard) pre-processing to move activation outliers before quantizing. MX datatypes share one power-of-two scale per block of 32 values, static for weights and dynamic for activations.
Key numbers
156 stars on github.com/amd/Quark; v0.12 released 2026-07-03, last push 2026-07-15; docs site shows 0.12.post1; MIT; pip package amd-quark
Ecosystem
Exports JSON+safetensors, ONNX, and GGUF; vLLM documents a dedicated 'quark' quantization method that loads OCP-compliant MXFP4/MXFP6, and SGLang lists Quark among its offline formats. AMD publishes MXFP4 checkpoints (e.g. MiniMax-M2.1-MXFP4, GLM-5.2-MXFP4) on the Hub. Repo is source-complete but not accepting community contributions.

Code · Source adversarially re-checked: confirmed

Intel AutoRound

Repo2024-20262/3/4/8-bit weights; exports auto_round, auto_gptq, auto_awq, llm_compressor (MXFP4/NVFP4), GGUFCalibration data

A fast, actively developed PTQ algorithm that tunes rounding decisions by sign-gradient descent, and one of the few tools that exports straight into the llm_compressor format for MXFP4/NVFP4. Cheap enough to be a default: ~10 minutes for a 7B model.

Details
Mechanism
Instead of round-to-nearest, AutoRound learns a per-weight rounding perturbation and per-group clipping range by sign gradient descent against the layer's own output on a small calibration set, minimizing block-wise reconstruction error. A model-free mode trades accuracy for speed.
Key numbers
1,582 stars; v0.14.2 released 2026-07-13; last push 2026-08-24; defaults to 128 samples of NeelNanda/pile-10k, ~10 min for a 7B on one GPU
Ecosystem
Consumed by vLLM (CUDA, Intel GPU, CPU), SGLang (which lists an auto-round-INT8 online path plus offline auto-round loading), and HF Transformers. Also selectable as an algorithm inside llm-compressor, so the same recipe is reachable from either entry point.

Code · Source adversarially re-checked: confirmed

mit-han-lab/llm-awq (AWQ + TinyChat)

Repo2023-2025INT3/INT4 weight-only, group size 128 (W4A16)Calibration data

The original AWQ research repo (MLSys 2024 best paper) plus the TinyChat W4A16 inference kernels. Still a useful reference implementation, but the production AWQ path has moved to llm-compressor, GPTQModel, and vLLM's awq_marlin.

Details
Mechanism
AWQ search measures per-input-channel activation magnitude on calibration text and solves for a per-channel scaling factor that protects salient weight channels before INT4 group-wise (g=128) rounding; the reciprocal scale is folded into the previous layer, so activations stay FP16. TinyChat adds fused GEMM/GEMV kernels for prefill and decode.
Key numbers
3,619 stars; last push 2025-07-17; ~319 forks; reports 38 tok/s on NVIDIA Jetson Orin with the newer GEMM/GEMV kernels
Modern architectures
Covers instruction-tuned and multimodal LMs (VILA) and got DeepSeek-R1 and BF16 updates in 2025, so it is not strictly a 2023-era artifact.
Ecosystem
README itself points forward to QServe for large-batch serving. The group's quantization tooling has since consolidated into deepcompressor (now nunchaku-ai/deepcompressor, 800 stars, last push 2025-08-14). Useful for the review as the source of the activation-aware idea that later tools reimplement.

Code · Source adversarially re-checked: confirmed

QServe / OmniServe (mit-han-lab)

Repo2024-2025W4A8KV4 (INT4 weights, INT8 activations, INT4 KV cache)Calibration data

The strongest published open system for genuine low-bit activation serving: W4A8KV4 (4-bit weights, 8-bit activations, 4-bit KV cache) with a co-designed runtime. Frozen since early 2025, so cite it as a design reference rather than a live dependency.

Details
Mechanism
QoQ ('quattuor-octo-quattuor') uses progressive group quantization so INT4 weights dequantize into INT8 registers, keeping all GEMM math on INT8 tensor cores and eliminating the fp16 dequant path that makes naive W4A8 slow. SmoothAttention migrates KV outliers before 4-bit KV quantization; compute-aware weight reordering hides remaining dequant in the memory pipeline.
Key numbers
854 stars; last push 2025-03-06 (last substantive commits 2025-02-21); 1.2-1.4x throughput over TensorRT-LLM on Llama-3-8B, 2.4-3.5x on Qwen1.5-72B; QServe on L40S beats TensorRT-LLM on A100, ~3x cost reduction; MLSys'25
Ecosystem
Checkpoints are produced by deepcompressor (github.com/nunchaku-ai/deepcompressor, 800 stars, last push 2025-08-14) and pre-quantized weights are published. Bundles LServe (unified sparse attention for long context) in the same repo. vLLM and SGLang have since grown their own W4A8 kernels, which is the maintained route today.

Code · Source adversarially re-checked: confirmed

QuaRot (official repo)

RepoNeurIPS 2024W4A4KV4 (weights, activations, and KV cache all in 4 bits)Training-free

Reference implementation of rotation-based 4-bit inference: randomized Hadamard transforms fused into the weights make activations outlier-free enough that plain round-to-nearest works at W4A4KV4. Research repo, effectively frozen, but its idea is now productized elsewhere.

Details
Mechanism
Inserts pairs of orthogonal (randomized Hadamard) matrices Q and Q-transpose around linear layers so the network computes the same function while hidden states are rotated into a basis with no large-magnitude channels. Rotations at residual boundaries fold into adjacent weights for free; online Hadamard transforms handle the down-projection and attention paths.
Key numbers
532 stars; Apache-2.0; last substantive commit 2024-07. LLaMA2-70B W4A4KV4 loses at most 0.47 WikiText-2 perplexity (NeurIPS camera-ready figure; the earlier 0.29 was arXiv v1) and retains ~99% of zero-shot accuracy.
Ecosystem
The rotation itself is data-free; the optional GPTQ weight step uses calibration. Hadamard-transform metadata is now a first-class field in compressed-tensors and a selectable pre-processing step in llm-compressor and AMD Quark, so the deployable version of QuaRot is 'transforms' in those tools rather than this repo.

arXiv:2404.00456 · Code · Source adversarially re-checked: corrected here

SpinQuant (official repo, Meta)

RepoICLR 2025W4A16KV16, W4A4KV16, W4A4KV4Training / finetuning

Learned-rotation counterpart to QuaRot: instead of random Hadamard matrices it optimizes the rotations on the Stiefel manifold, buying back most of the remaining W4A4 gap. Practical caveat for industry readers: the code is CC-BY-NC-4.0, i.e. non-commercial.

Details
Mechanism
Parameterizes the outlier-removing rotations as learnable orthogonal matrices and optimizes them with Cayley SGD on the Stiefel manifold against a small calibration set, keeping orthogonality exact so the network function is preserved. Requires fast-hadamard-transform; FSDP is used for larger models.
Key numbers
428 stars; last push 2025-02-14; CC-BY-NC-4.0; narrows the W4A4KV4 zero-shot gap on LLaMA-2 7B to 2.9 points vs full precision; released quantized Llama-3.2 variants
Ecosystem
Requires Python 3.9+, PyTorch 2.0+, CUDA, fast-hadamard-transform; FSDP for larger models. Because of the CC-BY-NC-4.0 license, deployable stacks generally reimplement the idea: llm-compressor's transforms and AMD Quark's rotation option are the licence-clean substitutes.

arXiv:2405.16406 · Code · Source adversarially re-checked: corrected here

Marlin and Machete mixed-input GEMM kernels

Blog2024w4a16 and w8a16 mixed-input; w4a8 FP8 in progress at publicationn/a

The kernel layer that makes low-bit weights actually fast: Marlin for Ampere, Machete (Neural Magic / Red Hat) as its Hopper successor. Both compress the weight side only, which is exactly the boundary case for a review about activation compression.

Details
Mechanism
Mixed-input GEMM: weights stay packed at 4 or 8 bits through HBM and shared memory and are dequantized in-register immediately before the tensor-core MMA, so memory traffic is 4-bit while the math stays 16-bit. Machete rebuilds this on CUTLASS 3.5.1 wgmma instructions with a pre-shuffled weight layout and deeper pipelining to stay compute-competitive on H100.
Key numbers
Machete: geomean +29% input-token and +32% output-token throughput on Llama-3.1 70B on one H100, +42% both on 405B across 4xH100; shipped in vLLM >= 0.6.2. Marlin repo IST-DASLab/marlin: 1,133 stars, Apache-2.0, last push 2024-09-04, claims ~4x speedup up to batch 16-32.
Ecosystem
vLLM exposes these as gptq_marlin / awq_marlin / machete backends and auto-selects them for compressed-tensors, GPTQ, and AWQ checkpoints; GPTQModel can emit FORMAT.MARLIN directly. The original Marlin repo is stale - the maintained descendants live in vLLM's csrc. Blog by Lucas Wilkinson, 2024-10-14.

Code · Source adversarially re-checked: confirmed

Guides and decision tables

Transformers quantization backends overview (HF docs)

Doc202622 backends incl. bitsandbytes, compressed-tensors, torchao, GPTQModel, AutoRound, Quark, NVFP4, GGUF; 1-16 bitn/a

The single best decision table for practitioners: ~22 quantization backends with columns for on-the-fly (calibration-free) support, CPU/CUDA/ROCm/Metal/Intel-GPU coverage, torch.compile compatibility, bit widths, PEFT, and serializability.

Details
Mechanism
Transformers exposes each backend through an HfQuantizer subclass selected by a quantization_config, so the same from_pretrained call can swap in bitsandbytes, compressed-tensors, torchao, GPTQModel, Quark, or a hub kernel. The 'on the fly quantization' column is effectively a calibration-required flag, which is the fastest way to see which schemes need data.
Key numbers
NVFP4 and FINEGRAINED_FP8 are marked on-the-fly (no calibration); AQLM, AutoRound, AWQ, GPTQModel, compressed-tensors, Quark, SpQR and VPTQ are marked not-on-the-fly
Ecosystem
Evidence that 4-bit microscaled activation formats reached the mainstream loader layer: NVFP4 now ships as a kernels-community hub kernel rather than a research fork. Two newer table entries worth following for this review are IST-DASLab/FP-Quant (119 stars, last push 2026-02-26) and mit-han-lab/fouroversix (202 stars, MIT, 2026-04-21, adaptive block scaling for NVFP4).

Source adversarially re-checked: confirmed

Red Hat: Optimizing generative AI models with quantization

Blog2025W8A8 INT8 (contrasted with FP8, which the article notes needs Hopper-class hardware)Calibration data

End-to-end practitioner walkthrough of a real W8A8 int8 job: quantize with llm-compressor, serve on vLLM, verify accuracy with lm-eval, and measure latency with GuideLLM. The clearest published template for the 'did my activation quantization actually hold up' loop.

Details
Mechanism
Runs llm-compressor's INT8 W8A8 recipe (SmoothQuant plus GPTQ) on Granite 3.3 8B with a calibration set, serves the compressed-tensors checkpoint in vLLM on an L4, then reports paired accuracy and performance numbers against the bf16 baseline rather than perplexity alone.
Key numbers
99.43% GSM8K accuracy recovery (66.72% vs 67.1% baseline); ~40% faster time-to-first-token on synchronous requests; 4x context window on identical hardware; llm-compressor v0.6.0 + vLLM v0.9.2; by James Harmison, 2025-08-18
Ecosystem
Red Hat's broader claim across its Hugging Face checkpoint collection is over 99% baseline accuracy recovery. Companion posts cover the FP8 W8A8 rollout in vLLM and llm-compressor release notes. The int8 W8A8 path matters because A100 (SM 8.0) lacks FP8 tensor cores; the L4 used in the article is Ada (SM 8.9) and does have FP8, so int8-vs-fp8 there is a choice, not a constraint.

Source adversarially re-checked: corrected here

NVIDIA: Introducing NVFP4 for Efficient and Accurate Low-Precision Inference

Blog2025NVFP4: E2M1 elements, FP8 E4M3 scale per 16-value block, FP32 per-tensor scaleCalibration data

The primary vendor description of NVFP4 and the clearest statement of why its microscaling geometry differs from MXFP4: a 16-value block with an FP8 (E4M3) scale rather than a 32-value block with a power-of-two scale, plus an FP32 per-tensor second level.

Details
Mechanism
Two-level scaling. Each 4-bit element is E2M1 (1 sign, 2 exponent, 1 mantissa). Every 16 consecutive values share an FP8 E4M3 scale, so the scale can land between powers of two and track awkward local distributions; a single FP32 per-tensor factor keeps the FP8 scales in range. Hardware support is Blackwell tensor cores.
Key numbers
DeepSeek-R1-0528: <=1% accuracy degradation moving FP8 → NVFP4 on key language-modeling tasks; ~3.5x memory reduction vs FP16 and ~1.8x vs FP8; published 2025-06-24 by Alvarez, Almog, Chung, Layton, Stosic, Krashinsky, Aubrey
Modern architectures
The headline evidence is a large MoE (DeepSeek-R1-0528), the regime where activation and KV traffic rather than weight storage is the binding constraint - directly relevant to per-boundary activation compression at depth.
Ecosystem
Checkpoints are produced by NVIDIA Model Optimizer or llm-compressor and served by TensorRT-LLM and vLLM, with SGLang listed as upcoming at publication and now shipping NVFP4 offline and online paths. Pre-quantized NVFP4 frontier-model checkpoints are on the Hub. NVIDIA has a follow-up post on NVFP4 KV cache for long context and large batch (not fetched here).

Source adversarially re-checked: confirmed

9 Boundary: KV-cache quantization (adjacent, excluded) 2

Boundary markers, deliberately outside the survey scope: KIVI and KVQuant quantize the KV cache, a persistent capacity problem measured in bytes per stored token, not a transient bandwidth problem measured in bytes per boundary crossing. They stay visible because their outlier geometry transfers: per-channel keys versus per-token values (KIVI) and pre-RoPE placement (KVQuant) are the same channel-persistence and placement questions a wire format faces. Framework KV-cache dtype support is filed under ecosystem, and MLA-latent KV work (SnapMLA) under modern architectures.

KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache

PaperICML 20242-bit KV cache, asymmetric: per-channel keys, per-token valuesTraining-free

ADJACENT FAMILY ANCHOR (KV cache, not forward activations): shows keys should be quantized per-channel and values per-token, and gets 2-bit KV with no tuning.

Details
Mechanism
Analyses the KV cache element distribution and finds an asymmetry: the key cache has persistent channel-wise outliers so it must be quantized per-channel, while the value cache has no such structure so per-token is correct. A streaming implementation quantizes newly appended tokens as they arrive with a small full-precision residual window, requiring no hyperparameter tuning.
Key numbers
2.6x less peak memory including model weights, enabling up to 4x larger batches; 2.35x-3.47x throughput on real workloads; works across Llama, Falcon and Mistral without tuning.
Modern architectures
BOUNDARY MARKER: KV cache is a persistent memory-capacity problem measured in GB and bytes-per-token, whereas our wire problem is a transient bandwidth problem measured in bytes-per-boundary-crossing. The per-channel-keys finding is nonetheless the same outlier geometry we hit, so the review should state the boundary rather than ignore the family.
Ecosystem
Widely reimplemented and the standard KV-quantization reference point; repo jy-yuan/KIVI referenced from the paper (search-confirmed, not separately fetched).

arXiv:2402.02750 · Code adversarially re-checked: confirmed

KVQuant: Towards 10 Million Context Length LLM Inference with KV Cache Quantization

PaperNeurIPS 20243-bit non-uniform KV cache with dense-and-sparse outlier isolation, pre-RoPE keysCalibration data

ADJACENT FAMILY ANCHOR (KV cache, not forward activations): four stacked techniques take KV to 3-bit at under 0.1 perplexity cost, enabling million-token contexts on one GPU.

Details
Mechanism
Combines per-channel key quantization; pre-RoPE key quantization, since applying RoPE before quantizing mixes channels and spreads outliers; non-uniform datatypes fit offline and weighted by per-layer sensitivity; and per-vector dense-and-sparse quantization that isolates a small fraction of outlier values at full precision.
Key numbers
<0.1 perplexity degradation at 3-bit across LLaMA variants and Mistral; 7B model served at 1M context on a single GPU and 10M multi-GPU; ~1.7x speedup over baseline.
Modern architectures
BOUNDARY MARKER, and the pre-RoPE insight is the transferable one: where in the computation you place the quantization step changes the outlier structure you have to survive. That is the direct analogue of choosing where in the residual stream a pipeline boundary quantizes.
Ecosystem
SqueezeAILab repo referenced from the paper (search-confirmed, not separately fetched). Latest arXiv revision May 2025.

arXiv:2401.18079 · Code adversarially re-checked: confirmed

Appendix: screened but not profiled

The verified survey's screening pass surfaced these entries as relevant (each survived the scope rules or was left undecided when the survey hit its deliberate 12-paper cap), but this page does not profile them. They are listed with their screening tag so the boundary of coverage stays visible. Several near neighbours verified during this consolidation are listed inside the matching group sections above.

arXivTitleScreening rule
2411.07942Towards Low-bit Communication for Tensor Parallel LLM InferenceBR-TPSP · survived rules, cut by cap
2412.04964Flash Communication: Reducing Tensor Parallelization Bottleneck for Fast Large Language Model InferenceBR-TPSP · survived rules, cut by cap
2508.03760FlashCommunication V2: Bit Splitting and Spike Reserving for Any Bit CommunicationBR-TPSP · survived rules, cut by cap
2209.01188Petals: Collaborative Inference and Fine-tuning of Large ModelsIN-PP · survived rules, cut by cap
2507.12145PRISM: Distributed Inference for Foundation Models at EdgeBR-TPSP · survived rules, cut by cap
2312.05693Agile-Quant: Activation-Guided Quantization for Faster Inference of LLMs on the EdgeBR-W8A8 · undecidable, unscreened (cap)
2310.09130Split-and-Denoise: Protect Large Language Model Inference with Local Differential PrivacyIN-PERTURB · undecidable, unscreened (cap)
2304.07493OliVe: Accelerating Large Language Models via Hardware-friendly Outlier-Victim Pair QuantizationBR-W8A8 · undecidable, unscreened (cap)
2402.17985FlattenQuant: Breaking Through the Inference Compute-bound for Large Language Models with Per-tensor QuantizationBR-W8A8 · undecidable, unscreened (cap)
2405.20835Outliers and Calibration Sets have Diminishing Effect on Quantization of Modern LLMsBR-W8A8 · undecidable, unscreened (cap)
2305.19268Intriguing Properties of Quantization at ScaleBR-W8A8 · undecidable, unscreened (cap)
2606.24964Evidence for feature-specific error correction in LLMsIN-PERTURB · survived rules, cut by cap
2512.12411Detecting the Disturbance: A Nuanced View of Introspective Abilities in LLMsIN-PERTURB · survived rules, cut by cap
2604.03380Noise Steering for Controlled Text Generation: Improving Diversity and Reading-Level Fidelity in Arabic Educational Story GenerationIN-PERTURB · survived rules, cut by cap
2511.14808Transformer Injectivity and Geometric Robustness: Analytic Margins and Bi-Lipschitz Uniformity of Sequence-Level Hidden StatesBR-ARCH · undecidable, unscreened (cap)
2509.10790GoldenTransformer: A Modular Fault Injection Framework for Transformer Robustness ResearchIN-PERTURB · undecidable, unscreened (cap)
2601.19912Analysis of LLM Vulnerability to GPU Soft Errors: An Instruction-Level Fault Injection StudyIN-PERTURB · undecidable, unscreened (cap)

Survey audit context: the original screening rejected 49 further papers, dominated by out-of-scope rules (training-time work, compute-skipping methods, weight-only compression, KV-cache work, scheduling). Full audit trail lives in the source survey.

Groups ↑