---
title: "QComputeMode"
sidebar_label: "QComputeMode"
description: "The clika_runtime.ops QComputeMode class."
---

<!-- Generated by tools/api_reference/generate_api_docs.py. Do not edit. -->

How a weight-only-quantized contraction (`qmatmul_woq` / `qlinear_woq` / the `*_woq` conv family) contracts a floating-point activation against a quantized weight. `ExactFP` (the default) keeps the activation in floating point wherever the weight's format has a float route: an affine, codebook, FP8 or dense-coded weight dequantizes and runs the float dot, bit-faithful to the stored scale / zero-point. A packed block weight (the GGUF Q-series, K-quant and i-quant formats, the MX formats and NVFP4) runs on an int8 block tier instead where the backend has one: the activation rounds to per-block int8 before an integer dot, so the result differs from the float dot by that rounding. * CPU: every GGUF weight format, MXFP4, MXINT8 and NVFP4; MXFP6 and MXFP8 keep the float dot. * CUDA and Vulkan: the block formats their integer-dot tier covers, where K is a whole number of 32-element blocks (on Vulkan, also where the device's integer dot is verified); other formats keep the float dot. * Metal and TPU: no int8 tier; every block weight keeps the float dot. On the runtime's parity tests (uniform activations) the rounding stays below a relative L2 of 0.03 to 0.05 against the float dot, or 0.08 with a bf16 activation. An activation with outlier channels can exceed these bounds. `DynamicInt8` dynamically quantizes the activation to int8 and runs an integer dot, faster on dot-product hardware, at a small accuracy cost (the activation loses precision). A ROUTING HINT, not a shape contract: shapes outside a backend's fused coverage fall back to `ExactFP`.
