Signet Forge 0.1.1
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 QuantizationParams & params () 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: