Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
signet::forge::Quantizer Class Reference

Quantizes float32 vectors to INT8 or INT4 representation. More...

#include <quantized_vector.hpp>

Public Member Functions

 Quantizer (QuantizationParams params)
 Construct a quantizer with the given parameters.
 
void quantize (const float *input, uint8_t *output) const
 Quantize a single float32 vector into the output buffer.
 
std::vector< uint8_t > quantize_batch (const float *input, size_t num_vectors) const
 Quantize a batch of vectors into a flat buffer of quantized bytes.
 
const QuantizationParamsparams () const
 Access the quantization parameters.
 

Detailed Description

Quantizes float32 vectors to INT8 or INT4 representation.

Uses SIMD acceleration (AVX2, SSE2, or NEON) when available, with a scalar fallback. INT4 quantization always uses the scalar path because nibble packing makes SIMD less beneficial.

See also
QuantizationParams, Dequantizer

Definition at line 131 of file quantized_vector.hpp.

Constructor & Destructor Documentation

◆ Quantizer()

signet::forge::Quantizer::Quantizer ( QuantizationParams  params)
inlineexplicit

Construct a quantizer with the given parameters.

The params must have a valid scale (> 0) and dimension (> 0).

Definition at line 135 of file quantized_vector.hpp.

Member Function Documentation

◆ params()

const QuantizationParams & signet::forge::Quantizer::params ( ) const
inline

Access the quantization parameters.

Definition at line 164 of file quantized_vector.hpp.

◆ quantize()

void signet::forge::Quantizer::quantize ( const float *  input,
uint8_t *  output 
) const
inline

Quantize a single float32 vector into the output buffer.

  • INT8 schemes: output must hold at least dim bytes.
  • INT4 scheme: output must hold at least ceil(dim/2) bytes.
Parameters
inputPointer to dim float32 values.
outputDestination buffer for quantized bytes.

Definition at line 844 of file quantized_vector.hpp.

◆ quantize_batch()

std::vector< uint8_t > signet::forge::Quantizer::quantize_batch ( const float *  input,
size_t  num_vectors 
) const
inline

Quantize a batch of vectors into a flat buffer of quantized bytes.

Parameters
inputPointer to num_vectors * dim contiguous floats.
num_vectorsNumber of vectors to quantize.
Returns
A flat byte buffer of size num_vectors * bytes_per_vector().

Definition at line 879 of file quantized_vector.hpp.


The documentation for this class was generated from the following file: