QuaRot (rotation-based outlier removal, W4A4KV4)
Fields
quantization/quarotNotes
GROUP SIZE LEFT NULL 2026-10-04: QuaRot is a rotation-based outlier-removal METHOD (Hadamard rotation, then W4A4KV4), and rotations are what remove the need for outlier handling in the first place. The group size belongs to whichever underlying grid quantizer is chosen after the rotation (INT4 grouped at whatever width, or a MX/NV format), so it is not a property of QuaRot. Enum mismatch: 'spinquant' is the closest existing value and is genuinely the same family - both are rotation-based, both target W4A4KV4. SpinQuant is the learned-rotation successor; QuaRot uses a fixed randomized Hadamard. Request the parent add a 'quarot' enum value. THE CENTRAL POINT FOR THIS RECORD: QuaRot is W4A4 in the genuine sense (weights AND activations at 4-bit) and it is one of the papers that made W4A4 defensible, but it is NOT native anywhere. Its 'all matrix multiplications are performed in 4 bits' phrasing describes arithmetic in the authors' own kernels. The only W4A4 with a real hardware path in this repo is nvfp4 on Blackwell. Any blog that says '4-bit quantization is now fast on your GPU' is describing either W4A16 weight-only (memory win, fp16 compute) or this paper's research kernels - not silicon. SCHEME RECLASSIFIED (parent agent, 2026-10-03): scheme was 'spinquant' (a proxy recorded while the enum lacked a legal value) and is now 'quarot'. NATIVE_SUPPORT CLASSIFIED 2026-10-04: this field is still [] and that is CORRECT, but the empty list used to be ambiguous between three different states and now is not. Reason class on this record: W4A4/W8A8 RESEARCH FORMAT - this empty list is a REAL FINDING about the absence of a silicon path, not a tautology. its own record states outright that its W4A4 numbers come from research CUDA/Triton kernels plus a fake_quant directory, and that there is no INT4 x INT4 tensor-core instruction on the emulated hardware. Consequence for a reader: this is the class where a vendor could in principle have shipped something later, so it is the only class worth re-checking against a new hardware release. The full statement of the three-way distinction, and the worked list of all 72 empty records by class, is in gotcha quant-native-support-empty-means-three-different-things. Rule of thumb for this field everywhere in the repo: if the bits field carries an 'a16', or the scheme is KV-cache-only or a llama.cpp integer storage type, an empty native_support is a DEFINITION and needs no verification; only a W4A4/W8A8/sub-8-bit format with research kernels can have an empty list that is a real finding.