NVFP4 (Blackwell block-scaled E2M1 + E4M3)
Fields
quantization/nvfp4Notes
This is the record that most needs the two distinctions kept separate. (1) NVFP4 is genuinely w4a4: the element format is E2M1 (1 sign, 2 exp, 1 mantissa, values ~-6..6) and BOTH weights and activations are quantized to it, with a Blackwell hardware path - unlike MXFP4 and unlike every w4a16 scheme above. (2) NVFP4 is NOT the OCP microscaling format: the element format is the same E2M1, but the scale differs in two ways - NVFP4 uses a *power-of-two-free* E4M3 FP8 scale per **16** values, whereas MX uses an E8M0 power-of-two scale per **32** values - plus NVFP4's second per-tensor FP32 level. NVIDIA's own blog gives the quantitative reason: encoding the scale itself in E4M3 rather than E8M0 drops the scale-encoding MSE from 0.72 to 0.08 (quant-nvfp4-blog). Native only on Blackwell: TensorRT-LLM's hardware matrix marks NVFP4 Y on Blackwell sm120, sm100/103 and Rubin, and no on Hopper/Ada/Ampere (quant-trtllm-quantization). GGML exposes it as GGML_TYPE_NVFP4 = 40, commented '4 blocks, E4M3 scale' (quant-ggml-header), so llama.cpp can read the format but there is no non-Blackwell path. Vendor memory/energy claims (~3.5x vs FP16, 25x/50x energy efficiency vs H100) are in the blog and are marketing, not measurements.