Skip to main content

expand

Function expand 

Source
pub fn expand<Q: Scalar, F: Numeric, NQ: Size, NF: Size>(
    scope: &Scope,
    value: <Vector<Q, NQ> as CubeType>::ExpandType,
    scale: <f32 as CubeType>::ExpandType,
    table: <ComptimeOption<Box<[f32]>> as CubeType>::ExpandType,
    scheme: QuantScheme,
) -> <Vector<F, NF> as CubeType>::ExpandType
Expand description

[dequantize_aligned] for a scale a caller folded in f32, forming the product there too and narrowing only the result.

A folded scale reaches further down than what it produces: one below F’s smallest subnormal still scales quantized values into ordinary F ones. Narrowing it to F first rounds it to zero and takes the whole read with it, which is the failure two-level quantization exists to avoid in the first place.