Multi-GPU IVF Flat

View as Markdown

Source header: cuvs/neighbors/mg_ivf_flat.h

Multi-GPU IVF-Flat index build parameters

cuvsMultiGpuIvfFlatIndexParams

Multi-GPU parameters to build IVF-Flat Index

This structure extends the base IVF-Flat index parameters with multi-GPU specific settings.

1struct cuvsMultiGpuIvfFlatIndexParams { ... };

Fields

NameTypeDescription
base_paramscuvsIvfFlatIndexParams_tBase IVF-Flat index parameters
modecuvsMultiGpuDistributionModeDistribution mode for multi-GPU setup

cuvsMultiGpuIvfFlatIndexParamsCreate

Allocate Multi-GPU IVF-Flat Index params, and populate with default values

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatIndexParamsCreate(cuvsMultiGpuIvfFlatIndexParams_t* index_params);

Parameters

NameDirectionTypeDescription
index_paramsincuvsMultiGpuIvfFlatIndexParams_t*cuvsMultiGpuIvfFlatIndexParams_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsMultiGpuIvfFlatIndexParamsDestroy

De-allocate Multi-GPU IVF-Flat Index params

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatIndexParamsDestroy(cuvsMultiGpuIvfFlatIndexParams_t index_params);

Parameters

NameDirectionTypeDescription
index_paramsincuvsMultiGpuIvfFlatIndexParams_t

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index search parameters

cuvsMultiGpuIvfFlatSearchParams

Multi-GPU parameters to search IVF-Flat index

This structure extends the base IVF-Flat search parameters with multi-GPU specific settings.

1struct cuvsMultiGpuIvfFlatSearchParams { ... };

Fields

NameTypeDescription
base_paramscuvsIvfFlatSearchParams_tBase IVF-Flat search parameters
search_modecuvsMultiGpuReplicatedSearchModeReplicated search mode
merge_modecuvsMultiGpuShardedMergeModeSharded merge mode
n_rows_per_batchint64_tNumber of rows per batch

cuvsMultiGpuIvfFlatSearchParamsCreate

Allocate Multi-GPU IVF-Flat search params, and populate with default values

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatSearchParamsCreate(cuvsMultiGpuIvfFlatSearchParams_t* params);

Parameters

NameDirectionTypeDescription
paramsincuvsMultiGpuIvfFlatSearchParams_t*cuvsMultiGpuIvfFlatSearchParams_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsMultiGpuIvfFlatSearchParamsDestroy

De-allocate Multi-GPU IVF-Flat search params

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatSearchParamsDestroy(cuvsMultiGpuIvfFlatSearchParams_t params);

Parameters

NameDirectionTypeDescription
paramsincuvsMultiGpuIvfFlatSearchParams_t

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index

cuvsMultiGpuIvfFlatIndex

Struct to hold address of cuvs::neighbors::mg_index<ivf_flat::index> and its active

trained dtype

1typedef struct { ... } cuvsMultiGpuIvfFlatIndex;

Fields

NameTypeDescription
addruintptr_t
dtypeDLDataType

cuvsMultiGpuIvfFlatIndexCreate

Allocate Multi-GPU IVF-Flat index

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatIndexCreate(cuvsMultiGpuIvfFlatIndex_t* index);

Parameters

NameDirectionTypeDescription
indexincuvsMultiGpuIvfFlatIndex_t*cuvsMultiGpuIvfFlatIndex_t to allocate

Returns

CUVS_EXPORT cuvsError_t

cuvsMultiGpuIvfFlatIndexDestroy

De-allocate Multi-GPU IVF-Flat index

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatIndexDestroy(cuvsMultiGpuIvfFlatIndex_t index);

Parameters

NameDirectionTypeDescription
indexincuvsMultiGpuIvfFlatIndex_tcuvsMultiGpuIvfFlatIndex_t to de-allocate

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index build

cuvsMultiGpuIvfFlatBuild

Build a Multi-GPU IVF-Flat index

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatBuild(cuvsResources_t res,
2cuvsMultiGpuIvfFlatIndexParams_t params,
3DLManagedTensor* dataset_tensor,
4cuvsMultiGpuIvfFlatIndex_t index);

Parameters

NameDirectionTypeDescription
resincuvsResources_tcuvsResources_t opaque C handle
paramsincuvsMultiGpuIvfFlatIndexParams_tMulti-GPU IVF-Flat index parameters
dataset_tensorinDLManagedTensor*DLManagedTensor* training dataset
indexoutcuvsMultiGpuIvfFlatIndex_tMulti-GPU IVF-Flat index

Returns

CUVS_EXPORT cuvsError_t

cuvsMultiGpuIvfFlatSearch

Search a Multi-GPU IVF-Flat index

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatSearch(cuvsResources_t res,
2cuvsMultiGpuIvfFlatSearchParams_t params,
3cuvsMultiGpuIvfFlatIndex_t index,
4DLManagedTensor* queries_tensor,
5DLManagedTensor* neighbors_tensor,
6DLManagedTensor* distances_tensor);

Parameters

NameDirectionTypeDescription
resincuvsResources_tcuvsResources_t opaque C handle
paramsincuvsMultiGpuIvfFlatSearchParams_tMulti-GPU IVF-Flat search parameters
indexincuvsMultiGpuIvfFlatIndex_tMulti-GPU IVF-Flat index
queries_tensorinDLManagedTensor*DLManagedTensor* queries dataset
neighbors_tensoroutDLManagedTensor*DLManagedTensor* output neighbors
distances_tensoroutDLManagedTensor*DLManagedTensor* output distances

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index extend

cuvsMultiGpuIvfFlatExtend

Extend a Multi-GPU IVF-Flat index

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatExtend(cuvsResources_t res,
2cuvsMultiGpuIvfFlatIndex_t index,
3DLManagedTensor* new_vectors_tensor,
4DLManagedTensor* new_indices_tensor);

Parameters

NameDirectionTypeDescription
resincuvsResources_tcuvsResources_t opaque C handle
indexin,outcuvsMultiGpuIvfFlatIndex_tMulti-GPU IVF-Flat index to extend
new_vectors_tensorinDLManagedTensor*DLManagedTensor* new vectors to add
new_indices_tensorinDLManagedTensor*DLManagedTensor* new indices (optional, can be NULL)

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index serialize

cuvsMultiGpuIvfFlatSerialize

Serialize a Multi-GPU IVF-Flat index to file

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatSerialize(cuvsResources_t res,
2cuvsMultiGpuIvfFlatIndex_t index,
3const char* filename);

Parameters

NameDirectionTypeDescription
resincuvsResources_tcuvsResources_t opaque C handle
indexincuvsMultiGpuIvfFlatIndex_tMulti-GPU IVF-Flat index to serialize
filenameinconst char*Path to the output file

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index deserialize

cuvsMultiGpuIvfFlatDeserialize

Deserialize a Multi-GPU IVF-Flat index from file

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatDeserialize(cuvsResources_t res,
2const char* filename,
3cuvsMultiGpuIvfFlatIndex_t index);

Parameters

NameDirectionTypeDescription
resincuvsResources_tcuvsResources_t opaque C handle
filenameinconst char*Path to the input file
indexoutcuvsMultiGpuIvfFlatIndex_tMulti-GPU IVF-Flat index

Returns

CUVS_EXPORT cuvsError_t

Multi-GPU IVF-Flat index distribute

cuvsMultiGpuIvfFlatDistribute

Distribute a local IVF-Flat index to create a Multi-GPU index

1CUVS_EXPORT cuvsError_t cuvsMultiGpuIvfFlatDistribute(cuvsResources_t res,
2const char* filename,
3cuvsMultiGpuIvfFlatIndex_t index);

Parameters

NameDirectionTypeDescription
resincuvsResources_tcuvsResources_t opaque C handle
filenameinconst char*Path to the local index file
indexoutcuvsMultiGpuIvfFlatIndex_tMulti-GPU IVF-Flat index

Returns

CUVS_EXPORT cuvsError_t