QServe / QoQ (W4A8KV4 quantization and system co-design)
Fields
quantization/qserve-w4a8kv4Notes
GROUP SIZE LEFT NULL 2026-10-04: the QServe/QoQ record describes the W4A8KV4 SCHEME and its system co-design (SmoothAttention, token-wise smoothing), not one concrete weight grid. The KV group detail lives in the sibling qserve-kv4 record. Enum mismatch, and this one matters: recorded as 'wq4a4' because that is the nearest 4-bit-weight value, but QServe is W4A8 - activations are 8-bit, not 4-bit. Anyone reading this as a W4A4 method would be wrong; bits field says w4a8kv4 and this note says so explicitly. Request the parent add 'w4a8kv4'. The real contribution is SYSTEM co-design: it identifies that INT4 serving on GPUs is bottlenecked not by the GEMM but by dequantization on low-throughput CUDA cores, which is the same class of problem as the w4a16-vs-w4a4 distinction - INT4 weight-only buys memory, not compute, and unless you also fix the dequant path it can be slower than fp16. SCHEME RECLASSIFIED (parent agent, 2026-10-03): scheme was 'wq4a4' (a proxy recorded while the enum lacked a legal value) and is now 'w4a8kv4'. 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. W4A8 - 8-bit activations, not 4-bit; no 4-bit activation silicon path exists for it to use. 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.