Scalar

View as Markdown

Source header: cuvs/preprocessing/quantize/scalar.h

C API for Scalar Quantizer

cuvsScalarQuantizerParams

Scalar quantizer parameters.

1struct cuvsScalarQuantizerParams { ... };

cuvsScalarQuantizerParamsCreate

Allocate Scalar Quantizer params, and populate with default values

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerParamsCreate(cuvsScalarQuantizerParams_t* params);

Parameters

NameDirectionTypeDescription
paramsincuvsScalarQuantizerParams_t*cuvsScalarQuantizerParams_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsScalarQuantizerParamsDestroy

De-allocate Scalar Quantizer params

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerParamsDestroy(cuvsScalarQuantizerParams_t params);

Parameters

NameDirectionTypeDescription
paramsincuvsScalarQuantizerParams_t

Returns

CUVS_EXPORT cuvsError_t

cuvsScalarQuantizer

Defines and stores scalar for quantisation upon training

The quantization is performed by a linear mapping of an interval in the float data type to the full range of the quantized int type.

1typedef struct { ... } cuvsScalarQuantizer;

Fields

NameTypeDescription
min_double
max_double

cuvsScalarQuantizerCreate

Allocate Scalar Quantizer and populate with default values

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerCreate(cuvsScalarQuantizer_t* quantizer);

Parameters

NameDirectionTypeDescription
quantizerincuvsScalarQuantizer_t*cuvsScalarQuantizer_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsScalarQuantizerDestroy

De-allocate Scalar Quantizer

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerDestroy(cuvsScalarQuantizer_t quantizer);

Parameters

NameDirectionTypeDescription
quantizerincuvsScalarQuantizer_t

Returns

CUVS_EXPORT cuvsError_t

cuvsScalarQuantizerTrain

Trains a scalar quantizer to be used later for quantizing the dataset.

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerTrain(cuvsResources_t res,
2cuvsScalarQuantizerParams_t params,
3DLManagedTensor* dataset,
4cuvsScalarQuantizer_t quantizer);

Parameters

NameDirectionTypeDescription
resincuvsResources_traft resource
paramsincuvsScalarQuantizerParams_tconfigure scalar quantizer, e.g. quantile
datasetinDLManagedTensor*a row-major host or device matrix
quantizeroutcuvsScalarQuantizer_ttrained scalar quantizer

Returns

CUVS_EXPORT cuvsError_t

cuvsScalarQuantizerTransform

Applies quantization transform to given dataset

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerTransform(cuvsResources_t res,
2cuvsScalarQuantizer_t quantizer,
3DLManagedTensor* dataset,
4DLManagedTensor* out);

Parameters

NameDirectionTypeDescription
resincuvsResources_traft resource
quantizerincuvsScalarQuantizer_ta scalar quantizer
datasetinDLManagedTensor*a row-major host or device matrix to transform
outoutDLManagedTensor*a row-major host or device matrix to store transformed data

Returns

CUVS_EXPORT cuvsError_t

cuvsScalarQuantizerInverseTransform

Perform inverse quantization step on previously quantized dataset

1CUVS_EXPORT cuvsError_t cuvsScalarQuantizerInverseTransform(cuvsResources_t res,
2cuvsScalarQuantizer_t quantizer,
3DLManagedTensor* dataset,
4DLManagedTensor* out);

Note that depending on the chosen data types train dataset the conversion is not lossless.

Parameters

NameDirectionTypeDescription
resincuvsResources_traft resource
quantizerincuvsScalarQuantizer_ta scalar quantizer
datasetinDLManagedTensor*a row-major host or device matrix
outoutDLManagedTensor*a row-major host or device matrix

Returns

CUVS_EXPORT cuvsError_t