Binary

View as Markdown

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

C API for Binary Quantizer

cuvsBinaryQuantizerThreshold

In the cuvsBinaryQuantizerTransform function, a bit is set if the corresponding element in

the dataset vector is greater than the corresponding element in the threshold vector. The mean and sampling_median thresholds are calculated separately for each dimension.

1enum cuvsBinaryQuantizerThreshold { ... };

Values

NameValue
ZERO0
MEAN1
SAMPLING_MEDIAN2

cuvsBinaryQuantizerParams

Binary quantizer parameters.

1struct cuvsBinaryQuantizerParams { ... };

Fields

NameTypeDescription
threshold/* * specifies the threshold to set a bit in cuvsBinaryQuantizerTransform */ enum cuvsBinaryQuantizerThreshold
sampling_ratio/* * specifies the sampling ratio */ float

cuvsBinaryQuantizerParamsCreate

Allocate Binary Quantizer params, and populate with default values

1CUVS_EXPORT cuvsError_t cuvsBinaryQuantizerParamsCreate(cuvsBinaryQuantizerParams_t* params);

Parameters

NameDirectionTypeDescription
paramsincuvsBinaryQuantizerParams_t*cuvsBinaryQuantizerParams_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsBinaryQuantizerParamsDestroy

De-allocate Binary Quantizer params

1CUVS_EXPORT cuvsError_t cuvsBinaryQuantizerParamsDestroy(cuvsBinaryQuantizerParams_t params);

Parameters

NameDirectionTypeDescription
paramsincuvsBinaryQuantizerParams_t

Returns

CUVS_EXPORT cuvsError_t

cuvsBinaryQuantizer

Defines and stores threshold for quantization 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 { ... } cuvsBinaryQuantizer;

Fields

NameTypeDescription
addruintptr_t
dtypeDLDataType

cuvsBinaryQuantizerCreate

Allocate Binary Quantizer and populate with default values

1CUVS_EXPORT cuvsError_t cuvsBinaryQuantizerCreate(cuvsBinaryQuantizer_t* quantizer);

Parameters

NameDirectionTypeDescription
quantizerincuvsBinaryQuantizer_t*cuvsBinaryQuantizer_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsBinaryQuantizerDestroy

De-allocate Binary Quantizer

1CUVS_EXPORT cuvsError_t cuvsBinaryQuantizerDestroy(cuvsBinaryQuantizer_t quantizer);

Parameters

NameDirectionTypeDescription
quantizerincuvsBinaryQuantizer_t

Returns

CUVS_EXPORT cuvsError_t

cuvsBinaryQuantizerTrain

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

1CUVS_EXPORT cuvsError_t cuvsBinaryQuantizerTrain(cuvsResources_t res,
2cuvsBinaryQuantizerParams_t params,
3DLManagedTensor* dataset,
4cuvsBinaryQuantizer_t quantizer);

Parameters

NameDirectionTypeDescription
resincuvsResources_traft resource
paramsincuvsBinaryQuantizerParams_tconfigure binary quantizer, e.g. threshold
datasetinDLManagedTensor*a row-major host or device matrix
quantizeroutcuvsBinaryQuantizer_ttrained binary quantizer

Returns

CUVS_EXPORT cuvsError_t

cuvsBinaryQuantizerTransform

Applies binary quantization transform to the given dataset

1CUVS_EXPORT cuvsError_t cuvsBinaryQuantizerTransform(cuvsResources_t res,
2DLManagedTensor* dataset,
3DLManagedTensor* out);

This applies binary quantization to a dataset, changing any positive values to a bitwise 1. This is useful for searching with the BitwiseHamming distance type.

Parameters

NameDirectionTypeDescription
resincuvsResources_traft resource
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

cuvsBinaryQuantizerTransformWithParams

Applies binary quantization transform to the given dataset

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

This applies binary quantization to a dataset, changing any values that are larger than the threshold specified in the param to a bitwise 1. This is useful for searching with the BitwiseHamming distance type.

Parameters

NameDirectionTypeDescription
resincuvsResources_traft resource
quantizerincuvsBinaryQuantizer_tbinary 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