Expand description
Generated raw FFI bindings to the pinned cuVS 26.08 C API.
Published as an Algeon implementation dependency. Applications use
algeon-datafusion; workspace code
uses this crate for its component contracts. See the
API documentation boundary.
Structs§
- CUstream_
st - DLData
Type - \brief The data type the tensor can hold. The data type is assumed to follow the native endian-ness. An explicit error message should be raised when attempting to export an array with non-native endianness
- DLDevice
- \brief A Device for Tensor and operator.
- DLManaged
Tensor - \brief C Tensor object, manage memory of DLTensor. This data structure is intended to facilitate the borrowing of DLTensor by another framework. It is not meant to transfer the tensor. When the borrowing framework doesn’t need the tensor, it should call the deleter to notify the host that the resource is no longer needed.
- DLTensor
- \brief Plain C Tensor object, does not manage memory.
- cuda
Data Type_ t - cuvs
AceParams - Parameters for ACE (Augmented Core Extraction) graph build. ACE enables building indexes for datasets too large to fit in GPU memory by:
- cuvs
AllNeighbors Index Params - @brief Parameters controlling SNMG all-neighbors build.
- cuvs
Binary Quantizer - @brief Defines and stores threshold for quantization upon training
- cuvs
Binary Quantizer Params - @brief Binary quantizer parameters.
- cuvs
Brute Force Index - @defgroup bruteforce_c_index Bruteforce index @{ / /** @brief Struct to hold address of cuvs::neighbors::brute_force::index and its active trained dtype
- cuvs
Cagra Compression Params - Parameters for VPQ compression.
- cuvs
Cagra Extend Params - @defgroup cagra_c_extend_params C API for CUDA ANN Graph-based nearest neighbor search @{ / /** @brief Supplemental parameters to extend CAGRA Index
- cuvs
Cagra Index - @brief Struct holding the CAGRA index storage address and vector element dtype (DLPack-style)
- cuvs
Cagra Index Params - @brief Supplemental parameters to build CAGRA Index
- cuvs
Cagra Search Params - @brief Supplemental parameters to search CAGRA index
- cuvs
Dataset - @brief Dataset handle representing owning storage or a non-owning view.
- cuvs
Filter - @brief Struct to hold address of cuvs::neighbors::prefilter and its type
- cuvs
Hnsw AceParams - Parameters for ACE (Augmented Core Extraction) graph build for HNSW. ACE enables building indexes for datasets too large to fit in GPU memory by:
- cuvs
Hnsw Extend Params - @defgroup hnsw_c_extend_params Parameters for extending HNSW index @{
- cuvs
Hnsw Index - @brief Struct to hold address of cuvs::neighbors::Hnsw::index and its active trained dtype
- cuvs
Hnsw Index Params - cuvs
Hnsw Search Params - @defgroup hnsw_c_search_params C API for hnswlib wrapper search params @{
- cuvs
IvfFlat Index - @defgroup ivf_flat_c_index IVF-Flat index @{ / /** @brief Struct to hold address of cuvs::neighbors::ivf_flat::index and its active trained dtype
- cuvs
IvfFlat Index Params - @defgroup ivf_flat_c_index_params IVF-Flat index build parameters @{ / /** @brief Supplemental parameters to build IVF-Flat Index
- cuvs
IvfFlat Search Params - @defgroup ivf_flat_c_search_params IVF-Flat index search parameters @{ / /** @brief Supplemental parameters to search IVF-Flat index
- cuvs
IvfPq Index - @defgroup ivf_pq_c_index IVF-PQ index @{ / /** @brief Struct to hold address of cuvs::neighbors::ivf_pq::index and its active trained dtype
- cuvs
IvfPq Index Params - @brief Supplemental parameters to build IVF-PQ Index
- cuvs
IvfPq Params - cuvs
IvfPq Search Params - @defgroup ivf_pq_c_search_params IVF-PQ index search parameters @{ / /** @brief Supplemental parameters to search IVF-PQ index
- cuvs
IvfSq Index - @defgroup ivf_sq_c_index IVF-SQ index @{ / /** @brief Struct to hold address of cuvs::neighbors::ivf_sq::index and its active trained dtype
- cuvs
IvfSq Index Params - @defgroup ivf_sq_c_index_params IVF-SQ index build parameters @{ / /** @brief Supplemental parameters to build IVF-SQ Index
- cuvs
IvfSq Search Params - @defgroup ivf_sq_c_search_params IVF-SQ index search parameters @{ / /** @brief Supplemental parameters to search IVF-SQ index
- cuvsK
Means Params - @brief Hyper-parameters for the kmeans algorithm
- cuvsNN
Descent Index - @defgroup nn_descent_c_index NN-Descent index @{ / /** @brief Struct to hold address of cuvs::neighbors::nn_descent::index and its active trained dtype
- cuvsNN
Descent Index Params - @defgroup nn_descent_c_index_params The nn-descent algorithm parameters. @{ / /** @brief Parameters used to build an nn-descent index
- cuvs
PcaParams - @brief Parameters for PCA decomposition.
- cuvs
Product Quantizer - @brief Defines and stores product quantizer upon training
- cuvs
Product Quantizer Params - @defgroup preprocessing_c_pq C API for Product Quantizer @{ / /** @brief Product quantizer parameters.
- cuvs
Scalar Quantizer - @brief Defines and stores scalar for quantisation upon training
- cuvs
Scalar Quantizer Params - @defgroup preprocessing_c_scalar C API for Scalar Quantizer @{ / /** @brief Scalar quantizer parameters.
- cuvs
Tiered Index - @defgroup tiered_index_c_index Tiered Index @{ / /** @brief Struct to hold address of cuvs::neighbors::tiered_index::index and its active trained dtype
- cuvs
Tiered Index Params - @defgroup tiered_c_index_params Tiered Index build parameters @{ / /** @brief Supplemental parameters to build a TieredIndex
- cuvs
Vamana Index - @brief Struct to hold address of cuvs::neighbors::vamana::index and its active trained dtype
- cuvs
Vamana Index Params - @brief Supplemental parameters to build Vamana Index
Enums§
- DLData
Type Code - \brief The type code options DLDataType.
- DLDevice
Type - Runtime
Version Error - cuvs
AllNeighbors Algo - @brief Graph build algorithm selection.
- cuvs
Binary Quantizer Threshold - @defgroup preprocessing_c_binary C API for Binary Quantizer @{ / /** @brief 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.
- cuvs
Cagra Graph Build Algo - @brief Enum to denote which ANN algorithm is used to build CAGRA graph
- cuvs
Cagra Hash Mode - @brief Enum to denote Hash Mode used while searching CAGRA index
- cuvs
Cagra Hnsw Heuristic Type - @brief A strategy for selecting the graph build parameters based on similar HNSW index parameters.
- cuvs
Cagra Search Algo - @brief Enum to denote algorithm used to search CAGRA Index
- cuvs
Dataset Layout_ t - @brief Generic dataset layout kind for C API dataset handles.
- cuvs
Dataset MemType_ t - @brief Memory space holding a C API dataset handle’s data.
- cuvs
Distance Type - enum to tell how to compute distance
- cuvs
Error Kind_ t - @brief The kind of error from a C API call that passed through the exception boundary.
- cuvs
Error_ t - @defgroup error_c cuVS Error Messages @{ / /** @brief An enum denoting error statuses for function calls
- cuvs
Filter Type - @brief Enum to denote filter type.
- cuvs
Hnsw Hierarchy - @brief Hierarchy for HNSW index when converting from CAGRA index
- cuvs
IvfPq Codebook Gen - @defgroup ivf_pq_c_index_params IVF-PQ index build parameters @{ / /** @brief A type for specifying how PQ codebooks are created
- cuvs
IvfPq List Layout - @brief A type for specifying the memory layout of IVF-PQ list data
- cuvsK
Means Init Method - @defgroup kmeans_c_params k-means hyperparameters @{
- cuvsK
Means Type - @brief Type of k-means algorithm.
- cuvs
LogLevel_ t - @brief An enum denoting log levels
- cuvs
Merge Strategy - @brief Strategy for merging indices.
- cuvsNN
Descent Dist Comp Dtype - @brief Dtype to use for distance computation
- cuvs
PcaSolver - @brief Solver algorithm for PCA eigen decomposition.
- cuvs
Tiered IndexANN Algo - @brief Enum to hold which ANN algorithm is being used in the tiered index
Constants§
Functions§
- cuda
Device ⚠Synchronize - cuda
Free ⚠ - cuda
GetDevice ⚠Count - cuda
GetError ⚠String - cuda
Malloc ⚠ - cuda
Memcpy ⚠ - cuda
Stream ⚠Create - cuda
Stream ⚠Destroy - cuda
Stream ⚠Synchronize - cuvs
AceParams ⚠Create - @brief Allocate ACE params, and populate with default values
- cuvs
AceParams ⚠Destroy - @brief De-allocate ACE params
- cuvs
AllNeighbors ⚠Build - @brief Build an all-neighbors k-NN graph automatically detecting host vs device dataset.
- cuvs
AllNeighbors ⚠Index Params Create - @brief Create a default all-neighbors index parameters struct.
- cuvs
AllNeighbors ⚠Index Params Destroy - @brief Destroy an all-neighbors index parameters struct.
- cuvs
Binary ⚠Quantizer Create - @brief Allocate Binary Quantizer and populate with default values
- cuvs
Binary ⚠Quantizer Destroy - @brief De-allocate Binary Quantizer
- cuvs
Binary ⚠Quantizer Params Create - @brief Allocate Binary Quantizer params, and populate with default values
- cuvs
Binary ⚠Quantizer Params Destroy - @brief De-allocate Binary Quantizer params
- cuvs
Binary ⚠Quantizer Train - @brief Trains a binary quantizer to be used later for quantizing the dataset.
- cuvs
Binary ⚠Quantizer Transform - @brief Applies binary quantization transform to the given dataset
- cuvs
Binary ⚠Quantizer Transform With Params - @brief Applies binary quantization transform to the given dataset
- cuvs
Brute ⚠Force Build - @defgroup bruteforce_c_index_build Bruteforce index build
@{
/
/**
@brief Build a BRUTEFORCE index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged, orkDLCPU. Also, acceptable underlying types are: 1.kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLFloatandkDLDataType.bits = 16 - cuvs
Brute ⚠Force Deserialize - Load index from file. The serialization format can be subject to changes, therefore loading an index saved with a previous version of cuvs is not guaranteed to work.
- cuvs
Brute ⚠Force Index Create - @brief Allocate BRUTEFORCE index
- cuvs
Brute ⚠Force Index Destroy - @brief De-allocate BRUTEFORCE index
- cuvs
Brute ⚠Force Search - @defgroup bruteforce_c_index_search Bruteforce index search
@{
/
/**
@brief Search a BRUTEFORCE index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged. It is also important to note that the BRUTEFORCE index must have been built with the same type ofqueries, such thatindex.dtype.code == queries.dl_tensor.dtype.codeTypes for input are: 1.queries:kDLDataType.code == kDLFloatandkDLDataType.bits = 32orkDLDataType.bits = 162.neighbors:kDLDataType.code == kDLUIntandkDLDataType.bits = 323.distances:kDLDataType.code == kDLFloatandkDLDataType.bits = 32 - cuvs
Brute ⚠Force Serialize - @defgroup bruteforce_c_index_serialize BRUTEFORCE C-API serialize functions @{ / /** Save the index to file. The serialization format can be subject to changes, therefore loading an index saved with a previous version of cuvs is not guaranteed to work.
- cuvs
Cagra ⚠Build - @brief Build a CAGRA index from a dataset handle. Acceptable underlying
types are:
1.
kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLFloatandkDLDataType.bits = 163.kDLDataType.code == kDLIntandkDLDataType.bits = 84.kDLDataType.code == kDLUIntandkDLDataType.bits = 8 - cuvs
Cagra ⚠Compression Params Create - @brief Allocate CAGRA Compression params, and populate with default values
- cuvs
Cagra ⚠Compression Params Destroy - @brief De-allocate CAGRA Compression params
- cuvs
Cagra ⚠Deserialize Graph - Load the CAGRA graph from file without retaining a serialized dataset.
- cuvs
Cagra ⚠Deserialize Graph AndDataset - Load the CAGRA graph and dataset from file.
- cuvs
Cagra ⚠Extend - @brief Extend a CAGRA index with a caller-owned pre-concatenated padded dataset.
- cuvs
Cagra ⚠Extend Params Create - @brief Allocate CAGRA Extend params, and populate with default values
- cuvs
Cagra ⚠Extend Params Destroy - @brief De-allocate CAGRA Extend params
- cuvs
Cagra ⚠Index Create - @brief Allocate CAGRA index
- cuvs
Cagra ⚠Index Destroy - @brief De-allocate CAGRA index
- cuvs
Cagra ⚠Index From Args - Load index from a dataset and graph
- cuvs
Cagra ⚠Index GetDataset - @brief Returns a view of the CAGRA dataset
- cuvs
Cagra ⚠Index GetDims - @brief Get dimension of the CAGRA index
- cuvs
Cagra ⚠Index GetGraph - @brief Returns a view of the CAGRA graph
- cuvs
Cagra ⚠Index GetGraph Degree - @brief Get graph degree of the CAGRA index
- cuvs
Cagra ⚠Index GetSize - @brief Get size of the CAGRA index
- cuvs
Cagra ⚠Index Params Create - @brief Allocate CAGRA Index params, and populate with default values
- cuvs
Cagra ⚠Index Params Destroy - @brief De-allocate CAGRA Index params
- cuvs
Cagra ⚠Index Params From Dataset - @brief Create CAGRA index parameters heuristically tuned for a dataset
- cuvs
Cagra ⚠Index Params From Hnsw Params - @brief Create CAGRA index parameters similar to an HNSW index
- cuvs
Cagra ⚠Merge - @brief Merge multiple CAGRA indices into a single CAGRA index.
- cuvs
Cagra ⚠Search - @defgroup cagra_c_index_search C API for CUDA ANN Graph-based nearest neighbor search
@{
/
/**
@brief Search a CAGRA index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged. It is also important to note that the CAGRA Index must have been built with the same type ofqueries, such thatindex.dtype.code == queries.dl_tensor.dtype.codeTypes for input are: 1.queries: a.kDLDataType.code == kDLFloatandkDLDataType.bits = 32b.kDLDataType.code == kDLFloatandkDLDataType.bits = 16c.kDLDataType.code == kDLIntandkDLDataType.bits = 8d.kDLDataType.code == kDLUIntandkDLDataType.bits = 82.neighbors:kDLDataType.code == kDLUIntandkDLDataType.bits = 32orkDLDataType.code == kDLIntandkDLDataType.bits = 643.distances:kDLDataType.code == kDLFloatandkDLDataType.bits = 32 - cuvs
Cagra ⚠Search Multi Partition - @brief Search multiple CAGRA index partitions concurrently and return the global top-k per query.
- cuvs
Cagra ⚠Search Params Create - @brief Allocate CAGRA search params, and populate with default values
- cuvs
Cagra ⚠Search Params Destroy - @brief De-allocate CAGRA search params
- cuvs
Cagra ⚠Serialize Graph - @defgroup cagra_c_index_serialize CAGRA C-API serialize functions @{ / /** Save the CAGRA graph to file without its dataset.
- cuvs
Cagra ⚠Serialize Graph AndDataset - Save the CAGRA graph and its attached dataset to file.
- cuvs
Cagra ⚠Serialize ToHnswlib - Save the CAGRA index to file in hnswlib format. NOTE: The saved index can only be read by the hnswlib wrapper in cuVS, as the serialization format is not compatible with the original hnswlib.
- cuvs
Cagra ⚠Update Dataset - @brief Update a CAGRA index with a device-padded dataset.
- cuvs
Dataset ⚠Create - @brief Create an empty owning dataset handle.
- cuvs
Dataset ⚠Destroy - @brief Destroy a dataset handle created by a
cuvsDatasetMake*function. - cuvs
Dataset ⚠GetDtype - @brief Get the element dtype of a dataset handle.
- cuvs
Dataset ⚠GetIs Owning - @brief Get whether a dataset handle owns its backing storage.
- cuvs
Dataset ⚠GetLayout - @brief Get the layout of a dataset handle.
- cuvs
Dataset ⚠GetMem Type - @brief Get the memory residency of a dataset handle.
- cuvs
Dataset ⚠Make Padded - @brief Create an owning padded dataset in the requested memory space.
- cuvs
Dataset ⚠Make Padded View - @brief Create a non-owning padded dataset view from a host- or device-resident tensor.
- cuvs
Dataset ⚠Make Standard View - @brief Create a non-owning standard dataset view from a host- or device-resident tensor.
- cuvs
Device ⚠IdGet - @brief Get the id of the device associated with this cuvsResources_t
- cuvs
GetLast ⚠Error Kind - @brief Returns the calling thread’s error kind for the most recent C API call that passed through the exception boundary. Returns CUVS_ERROR_KIND_NONE after success.
- cuvs
GetLast ⚠Error Text - @brief Returns a string describing the last seen error on this thread, or NULL if the last function succeeded.
- cuvs
GetLog ⚠Level - @brief Returns the current log level
- cuvs
Hnsw ⚠AceParams Create - @brief Allocate HNSW ACE params, and populate with default values
- cuvs
Hnsw ⚠AceParams Destroy - @brief De-allocate HNSW ACE params
- cuvs
Hnsw ⚠Build - @brief Build an HNSW index using ACE (Augmented Core Extraction) algorithm.
- cuvs
Hnsw ⚠Deserialize - Load hnswlib index from file which was serialized from a HNSW index.
NOTE: When hierarchy is
NONE, the loaded hnswlib index is immutable, and only be read by the hnswlib wrapper in cuVS, as the serialization format is not compatible with the original hnswlib. Experimental, both the API and the serialization format are subject to change. - cuvs
Hnsw ⚠Extend - @brief Add new vectors to an HNSW index
NOTE: The HNSW index can only be extended when the hierarchy is
CPUwhen converting from a CAGRA index. - cuvs
Hnsw ⚠Extend Params Create - @brief Allocate HNSW extend params, and populate with default values
- cuvs
Hnsw ⚠Extend Params Destroy - @brief De-allocate HNSW extend params
- cuvs
Hnsw ⚠From Cagra - @brief Convert a CAGRA Index to an HNSW index.
NOTE: When hierarchy is:
1.
NONE: This method uses the filesystem to write the CAGRA index in/tmp/<random_number>.binbefore reading it as an hnswlib index, then deleting the temporary file. The returned index is immutable and can only be searched by the hnswlib wrapper in cuVS, as the format is not compatible with the original hnswlib. 2.CPU: The returned index is mutable and can be extended with additional vectors. The serialized index is also compatible with the original hnswlib library. - cuvs
Hnsw ⚠From Cagra With Dataset - cuvs
Hnsw ⚠Index Create - @brief Allocate HNSW index
- cuvs
Hnsw ⚠Index Destroy - @brief De-allocate HNSW index
- cuvs
Hnsw ⚠Index Params Create - @brief Allocate HNSW Index params, and populate with default values
- cuvs
Hnsw ⚠Index Params Destroy - @brief De-allocate HNSW Index params
- cuvs
Hnsw ⚠Search - @defgroup hnsw_c_index_search C API for CUDA ANN Graph-based nearest neighbor search
@{
/
/**
@brief Search a HNSW index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCPU,kDLCUDAHost, orkDLCUDAManaged. It is also important to note that the HNSW Index must have been built with the same type ofqueries, such thatindex.dtype.code == queries.dl_tensor.dtype.codeSupported types for input are: 1.queries: a.kDLDataType.code == kDLFloatandkDLDataType.bits = 32b.kDLDataType.code == kDLIntandkDLDataType.bits = 8c.kDLDataType.code == kDLUIntandkDLDataType.bits = 82.neighbors:kDLDataType.code == kDLUIntandkDLDataType.bits = 643.distances:kDLDataType.code == kDLFloatandkDLDataType.bits = 32NOTE: When hierarchy isNONE, the HNSW index can only be searched by the hnswlib wrapper in cuVS, as the format is not compatible with the original hnswlib. - cuvs
Hnsw ⚠Search Params Create - @brief Allocate HNSW search params, and populate with default values
- cuvs
Hnsw ⚠Search Params Destroy - @brief De-allocate HNSW search params
- cuvs
Hnsw ⚠Serialize - @brief Serialize a CAGRA index to a file as an hnswlib index
NOTE: When hierarchy is
NONE, the saved hnswlib index is immutable and can only be read by the hnswlib wrapper in cuVS, as the serialization format is not compatible with the original hnswlib. However, when hierarchy isCPU, the saved hnswlib index is compatible with the original hnswlib library. - cuvs
IvfFlat ⚠Build - @defgroup ivf_flat_c_index_build IVF-Flat index build
@{
/
/**
@brief Build a IVF-Flat index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged, orkDLCPU. Also, acceptable underlying types are: 1.kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLIntandkDLDataType.bits = 83.kDLDataType.code == kDLUIntandkDLDataType.bits = 8 - cuvs
IvfFlat ⚠Deserialize - Load index from file.
- cuvs
IvfFlat ⚠Extend - @defgroup ivf_flat_c_index_extend IVF-Flat index extend @{ / /** @brief Extend the index with the new data.
- cuvs
IvfFlat ⚠Index Create - @brief Allocate IVF-Flat index
- cuvs
IvfFlat ⚠Index Destroy - @brief De-allocate IVF-Flat index
- cuvs
IvfFlat ⚠Index GetCenters - @brief Get the cluster centers corresponding to the lists [n_lists, dim]
- cuvs
IvfFlat ⚠Index GetDim - @brief Get the dimensionality of the indexed data
- cuvs
IvfFlat ⚠Index GetN Lists - @brief Get the number of clusters/inverted lists in the index
- cuvs
IvfFlat ⚠Index Params Create - @brief Allocate IVF-Flat Index params, and populate with default values
- cuvs
IvfFlat ⚠Index Params Destroy - @brief De-allocate IVF-Flat Index params
- cuvs
IvfFlat ⚠Search - @defgroup ivf_flat_c_index_search IVF-Flat index search
@{
/
/**
@brief Search a IVF-Flat index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged. It is also important to note that the IVF-Flat Index must have been built with the same type ofqueries, such thatindex.dtype.code == queries.dl_tensor.dtype.codeTypes for input are: 1.queries:kDLDataType.code == kDLFloatandkDLDataType.bits = 322.neighbors:kDLDataType.code == kDLUIntandkDLDataType.bits = 323.distances:kDLDataType.code == kDLFloatandkDLDataType.bits = 32 - cuvs
IvfFlat ⚠Search Params Create - @brief Allocate IVF-Flat search params, and populate with default values
- cuvs
IvfFlat ⚠Search Params Destroy - @brief De-allocate IVF-Flat search params
- cuvs
IvfFlat ⚠Serialize - @defgroup ivf_flat_c_index_serialize IVF-Flat C-API serialize functions @{ / /** Save the index to file.
- cuvs
IvfPq ⚠Build - @defgroup ivf_pq_c_index_build IVF-PQ index build
@{
/
/**
@brief Build a IVF-PQ index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged, orkDLCPU. Also, acceptable underlying types are: 1.kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLFloatandkDLDataType.bits = 163.kDLDataType.code == kDLIntandkDLDataType.bits = 84.kDLDataType.code == kDLUIntandkDLDataType.bits = 8 - cuvs
IvfPq ⚠Build Precomputed - @brief Build a view-type IVF-PQ index from device memory precomputed centroids and codebook.
- cuvs
IvfPq ⚠Deserialize - Load index from file.
- cuvs
IvfPq ⚠Extend - @defgroup ivf_pq_c_index_extend IVF-PQ index extend @{ / /** @brief Extend the index with the new data.
- cuvs
IvfPq ⚠Index Create - @brief Allocate IVF-PQ index
- cuvs
IvfPq ⚠Index Destroy - @brief De-allocate IVF-PQ index
- cuvs
IvfPq ⚠Index GetCenters - @brief Get the cluster centers corresponding to the lists in the original space
- cuvs
IvfPq ⚠Index GetCenters Padded - @brief Get the padded cluster centers [n_lists, dim_ext] where dim_ext = round_up(dim + 1, 8)
- cuvs
IvfPq ⚠Index GetCenters Rot - @brief Get the rotated cluster centers [n_lists, rot_dim] where rot_dim = pq_len * pq_dim
- cuvs
IvfPq ⚠Index GetDim - Get the dimensionality
- cuvs
IvfPq ⚠Index GetList Indices - @brief Get the indices of each vector in a ivf-pq list
- cuvs
IvfPq ⚠Index GetList Sizes - @brief Get the sizes of each list
- cuvs
IvfPq ⚠Index GetN Lists - Get the number of clusters/inverted lists
- cuvs
IvfPq ⚠Index GetPq Bits - Get the bit length of an encoded vector element after compression by PQ.
- cuvs
IvfPq ⚠Index GetPq Centers - @brief Get the PQ cluster centers
- cuvs
IvfPq ⚠Index GetPq Dim - Get the dimensionality of an encoded vector after compression by PQ.
- cuvs
IvfPq ⚠Index GetPq Len - Get the Dimensionality of a subspace, i.e. the number of vector components mapped to a subspace
- cuvs
IvfPq ⚠Index GetRotation Matrix - @brief Get the rotation matrix [rot_dim, dim] Transform matrix (original space -> rotated padded space)
- cuvs
IvfPq ⚠Index GetSize - Get the size of the index
- cuvs
IvfPq ⚠Index Params Create - @brief Allocate IVF-PQ Index params, and populate with default values
- cuvs
IvfPq ⚠Index Params Destroy - @brief De-allocate IVF-PQ Index params
- cuvs
IvfPq ⚠Index Unpack Contiguous List Data - @brief Unpack
n_rowsconsecutive PQ encoded vectors of a single list (cluster) in the compressed index starting at givenoffset, not expanded to one code per byte. Each code in the output buffer occupies ceildiv(index.pq_dim() * index.pq_bits(), 8) bytes. - cuvs
IvfPq ⚠Search - @defgroup ivf_pq_c_index_search IVF-PQ index search
@{
/
/**
@brief Search a IVF-PQ index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged. It is also important to note that the IVF-PQ Index must have been built with the same type ofqueries, such thatindex.dtype.code == queries.dl_tensor.dtype.codeTypes for input are: 1.queries:kDLDataType.code == kDLFloatandkDLDataType.bits = 32orkDLDataType.bits = 162.neighbors:kDLDataType.code == kDLUIntandkDLDataType.bits = 323.distances:kDLDataType.code == kDLFloatandkDLDataType.bits = 32 - cuvs
IvfPq ⚠Search Params Create - @brief Allocate IVF-PQ search params, and populate with default values
- cuvs
IvfPq ⚠Search Params Destroy - @brief De-allocate IVF-PQ search params
- cuvs
IvfPq ⚠Serialize - @defgroup ivf_pq_c_index_serialize IVF-PQ C-API serialize functions @{ / /** Save the index to file.
- cuvs
IvfPq ⚠Transform - @defgroup ivf_pq_c_index_transform IVF-PQ index transform @{ / /** @brief Transform the input data by applying pq-encoding
- cuvs
IvfSq ⚠Build - @defgroup ivf_sq_c_index_build IVF-SQ index build
@{
/
/**
@brief Build an IVF-SQ index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged, orkDLCPU. Also, acceptable underlying types are: 1.kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLFloatandkDLDataType.bits = 16 - cuvs
IvfSq ⚠Deserialize - Load index from file.
- cuvs
IvfSq ⚠Extend - @defgroup ivf_sq_c_index_extend IVF-SQ index extend @{ / /** @brief Extend the index with the new data.
- cuvs
IvfSq ⚠Index Create - @brief Allocate IVF-SQ index
- cuvs
IvfSq ⚠Index Destroy - @brief De-allocate IVF-SQ index
- cuvs
IvfSq ⚠Index GetCenters - @brief Get the cluster centers corresponding to the lists [n_lists, dim]
- cuvs
IvfSq ⚠Index GetDim - Get the dimensionality of the data
- cuvs
IvfSq ⚠Index GetN Lists - Get the number of clusters/inverted lists
- cuvs
IvfSq ⚠Index GetSize - Get the size of the index
- cuvs
IvfSq ⚠Index Params Create - @brief Allocate IVF-SQ Index params, and populate with default values
- cuvs
IvfSq ⚠Index Params Destroy - @brief De-allocate IVF-SQ Index params
- cuvs
IvfSq ⚠Search - @defgroup ivf_sq_c_index_search IVF-SQ index search
@{
/
/**
@brief Search an IVF-SQ index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged. Types for input are: 1.queries:kDLDataType.code == kDLFloatandkDLDataType.bits = 32or 16 2.neighbors:kDLDataType.code == kDLIntandkDLDataType.bits = 643.distances:kDLDataType.code == kDLFloatandkDLDataType.bits = 32 - cuvs
IvfSq ⚠Search Params Create - @brief Allocate IVF-SQ search params, and populate with default values
- cuvs
IvfSq ⚠Search Params Destroy - @brief De-allocate IVF-SQ search params
- cuvs
IvfSq ⚠Serialize - @defgroup ivf_sq_c_index_serialize IVF-SQ C-API serialize functions @{ / /** Save the index to file.
- cuvsK
Means ⚠Cluster Cost - @brief Compute cluster cost
- cuvsK
Means ⚠Fit - @brief Find clusters with k-means algorithm.
- cuvsK
Means ⚠Params Create - @brief Allocate KMeans params, and populate with default values
- cuvsK
Means ⚠Params Destroy - @brief De-allocate KMeans params
- cuvsK
Means ⚠Predict - @brief Predict the closest cluster each sample in X belongs to.
- cuvs
Matrix ⚠Copy - @brief Copy a matrix
- cuvs
Matrix ⚠Slice Rows - @brief Slices rows from a matrix
- cuvs
Multi ⚠GpuResources Create - @brief Create an Initialized opaque C handle for C++ type
raft::device_resources_snmgfor multi-GPU operations - cuvs
Multi ⚠GpuResources Create With Device Ids - @brief Create an Initialized opaque C handle for C++ type
raft::device_resources_snmgfor multi-GPU operations with specific device IDs - cuvs
Multi ⚠GpuResources Destroy - @brief Destroy and de-allocate opaque C handle for C++ type
raft::device_resources_snmg - cuvs
Multi ⚠GpuResources SetMemory Pool - @brief Set a memory pool on all devices managed by the multi-GPU resources
- cuvsNN
Descent ⚠Build - @defgroup nn_descent_c_index_build NN-Descent index build
@{
/
/**
@brief Build a NN-Descent index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged, orkDLCPU. Also, acceptable underlying types are: 1.kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLFloatandkDLDataType.bits = 163.kDLDataType.code == kDLIntandkDLDataType.bits = 84.kDLDataType.code == kDLUIntandkDLDataType.bits = 8 - cuvsNN
Descent ⚠Index Create - @brief Allocate NN-Descent index
- cuvsNN
Descent ⚠Index Destroy - @brief De-allocate NN-Descent index
- cuvsNN
Descent ⚠Index GetDistances - @brief Get the distances from a build NN_Descent index
- cuvsNN
Descent ⚠Index GetGraph - @brief Get the KNN graph from a built NN-Descent index
- cuvsNN
Descent ⚠Index Params Create - @brief Allocate NN-Descent Index params, and populate with default values
- cuvsNN
Descent ⚠Index Params Destroy - @brief De-allocate NN-Descent Index params
- cuvs
Pairwise ⚠Distance - @brief Compute pairwise distances for two matrices
- cuvs
PcaFit ⚠ - @brief Perform PCA fit operation.
- cuvs
PcaFit ⚠Transform - @brief Perform PCA fit and transform in a single operation.
- cuvs
PcaInverse ⚠Transform - @brief Perform PCA inverse transform operation.
- cuvs
PcaParams ⚠Create - @brief Allocate PCA params and populate with default values.
- cuvs
PcaParams ⚠Destroy - @brief De-allocate PCA params.
- cuvs
PcaTransform ⚠ - @brief Perform PCA transform operation.
- cuvs
Product ⚠Quantizer Build - @brief Builds a product quantizer to be used later for quantizing the dataset.
- cuvs
Product ⚠Quantizer Create - @brief Allocate Product Quantizer
- cuvs
Product ⚠Quantizer Destroy - @brief De-allocate Product Quantizer
- cuvs
Product ⚠Quantizer GetEncoded Dim - @brief Get the encoded dimension of the quantized dataset.
- cuvs
Product ⚠Quantizer GetPq Bits - @brief Get the bit length of the vector element after compression by PQ.
- cuvs
Product ⚠Quantizer GetPq Codebook - @brief Get the PQ codebook.
- cuvs
Product ⚠Quantizer GetPq Dim - @brief Get the dimensionality of the vector after compression by PQ.
- cuvs
Product ⚠Quantizer GetUse Vq - @brief Get whether VQ is used.
- cuvs
Product ⚠Quantizer GetVq Codebook - @brief Get the VQ codebook.
- cuvs
Product ⚠Quantizer Inverse Transform - @brief Applies product quantization inverse transform to the given quantized codes
- cuvs
Product ⚠Quantizer Params Create - @brief Allocate Product Quantizer params, and populate with default values
- cuvs
Product ⚠Quantizer Params Destroy - @brief De-allocate Product Quantizer params
- cuvs
Product ⚠Quantizer Transform - @brief Applies product quantization transform to the given dataset
- cuvsRMM
Alloc ⚠ - @brief Allocates device memory using RMM
- cuvsRMM
Async ⚠Memory Resource Enable - @brief Switches the working memory resource to use stream-ordered asynchronous allocation (cudaMallocAsync / cudaFreeAsync). Unlike the pool resource, this resource returns memory to the stream immediately without blocking the CPU, eliminating device-wide synchronization on deallocation. This is especially beneficial when multiple CAGRA searches run concurrently on separate CUDA streams, because the internal workspace allocations no longer serialize kernel launches. Be aware that this function will change the memory resource for the whole process and the new memory resource will be used until explicitly changed.
- cuvsRMM
Free ⚠ - @brief Deallocates device memory using RMM
- cuvsRMM
Host ⚠Alloc - @brief Allocates pinned memory on the host using RMM @param[out] ptr Pointer to allocated host memory @param[in] bytes Size in bytes to allocate @return cuvsError_t
- cuvsRMM
Host ⚠Free - @brief Deallocates pinned memory on the host using RMM @param[in] ptr Pointer to allocated host memory to free @param[in] bytes Size in bytes to deallocate @return cuvsError_t
- cuvsRMM
Memory ⚠Resource Reset - @brief Resets the memory resource to use the default memory resource (cuda_memory_resource) @return cuvsError_t
- cuvsRMM
Pool ⚠Memory Resource Enable - @brief Switches the working memory resource to use the RMM pool memory resource, which will bypass unnecessary synchronizations by allocating a chunk of device memory up front and carving that up for temporary memory allocations within algorithms. Be aware that this function will change the memory resource for the whole process and the new memory resource will be used until explicitly changed.
- cuvs
Refine ⚠ - @defgroup ann_refine_c Approximate Nearest Neighbors Refinement C-API @{ / /** @brief Refine nearest neighbor search.
- cuvs
Resources ⚠Create - @brief Create an Initialized opaque C handle for C++ type
raft::resources - cuvs
Resources ⚠Create With Memory Tracking - @brief Create an opaque C handle for C++ type
raft::resourceswhose memory allocations are tracked and written as CSV samples from a background thread. - cuvs
Resources ⚠Destroy - @brief Destroy and de-allocate opaque C handle for C++ type
raft::resources - cuvs
Resources ⚠GetStream Pool Size - @brief Get the number of streams in a resources handle’s RAFT CUDA stream pool.
- cuvs
Resources ⚠GetStream Pool Stream - @brief Borrow a CUDA stream from a resources handle’s RAFT CUDA stream pool.
- cuvs
Resources ⚠SetStream Pool - @brief Install a RAFT CUDA stream pool on a resources handle, replacing any existing pool.
- cuvs
Resources ⚠SetWorkspace Pool - @brief Configure the temporary workspace on this resources object as an uncapped pool, backed by the current device memory resource. After the initial reservation is allocated on first use, subsequent calls to cuvsRMMAlloc / cuvsRMMFree on the same resources handle hit the pool cache rather than calling cudaMallocAsync / cudaFreeAsync, reducing CUDA context lock contention under concurrent query threads. The pool grows without shrinking: freed allocations are returned to the pool rather than to the device, so the pool’s high-water mark only increases until the resources object is destroyed.
- cuvs
Scalar ⚠Quantizer Create - @brief Allocate Scalar Quantizer and populate with default values
- cuvs
Scalar ⚠Quantizer Destroy - @brief De-allocate Scalar Quantizer
- cuvs
Scalar ⚠Quantizer Inverse Transform - @brief Perform inverse quantization step on previously quantized dataset
- cuvs
Scalar ⚠Quantizer Params Create - @brief Allocate Scalar Quantizer params, and populate with default values
- cuvs
Scalar ⚠Quantizer Params Destroy - @brief De-allocate Scalar Quantizer params
- cuvs
Scalar ⚠Quantizer Train - @brief Trains a scalar quantizer to be used later for quantizing the dataset.
- cuvs
Scalar ⚠Quantizer Transform - @brief Applies quantization transform to given dataset
- cuvs
SelectK ⚠ - @brief Select the k smallest values from a flat device array of n candidates.
- cuvs
SelectK ⚠Batched - @brief Select the k smallest or largest values from each row of a device matrix.
- cuvs
SetLast ⚠Error Text - @brief Sets a string describing an error seen on the thread. Passing NULL clears any previously seen error message.
- cuvs
SetLog ⚠Level - @brief Sets the log level
- cuvs
Stream ⚠Get - @brief Get the cudaStream_t from a cuvsResources_t
- cuvs
Stream ⚠Set - @brief Set cudaStream_t on cuvsResources_t to queue CUDA kernels on APIs that accept a cuvsResources_t handle
- cuvs
Stream ⚠Sync - @brief Syncs the current CUDA stream on the resources object
- cuvs
Tiered ⚠Index Build - @defgroup tieredindex_c_index_build Tiered index build
@{
/
/**
@brief Build a TieredIndex index with a
DLManagedTensorwhich has underlyingDLDeviceTypeequal tokDLCUDA,kDLCUDAHost,kDLCUDAManaged, orkDLCPU. Also, acceptable underlying types are: 1.kDLDataType.code == kDLFloatandkDLDataType.bits = 322.kDLDataType.code == kDLFloatandkDLDataType.bits = 16 - cuvs
Tiered ⚠Index Create - @brief Allocate Tiered Index
- cuvs
Tiered ⚠Index Destroy - @brief De-allocate Tiered index
- cuvs
Tiered ⚠Index Extend - @} / /** @defgroup tiered_c_index_extend Tiered index extend @{ / /** @brief Extend the index with the new data.
- cuvs
Tiered ⚠Index Merge - @defgroup tiered_c_index_merge Tiered index merge @{ / /** @brief Merge multiple indices together into a single index
- cuvs
Tiered ⚠Index Params Create - @brief Allocate Tiered Index Params and populate with default values
- cuvs
Tiered ⚠Index Params Destroy - @brief De-allocate Tiered Index params
- cuvs
Tiered ⚠Index Search - @defgroup tieredindex_c_index_search Tiered index search
@{
/
/**
@brief Search a TieredIndex index with a
DLManagedTensor - cuvs
Vamana ⚠Build - @brief Build Vamana index
- cuvs
Vamana ⚠Index Create - @brief Allocate Vamana index
- cuvs
Vamana ⚠Index Destroy - @brief De-allocate Vamana index
- cuvs
Vamana ⚠Index GetDims - @brief Get the dimension of the index
- cuvs
Vamana ⚠Index Params Create - @brief Allocate Vamana Index params, and populate with default values
- cuvs
Vamana ⚠Index Params Destroy - @brief De-allocate Vamana Index params
- cuvs
Vamana ⚠Serialize - @brief Save Vamana index to file
- cuvs
Version ⚠Get - @brief Get the version of the cuVS library @param[out] major Major version @param[out] minor Minor version @param[out] patch Patch version @return cuvsError_t
- validate_
runtime_ version - Query and validate the exact native cuVS version required by this binding.
Type Aliases§
- cuda
Error_ t - cuda
Memcpy Kind - cuda
Stream_ t - cuvs
AceParams_ t - cuvs
AllNeighbors Index Params_ t - cuvs
Binary Quantizer Params_ t - cuvs
Binary Quantizer_ t - cuvs
Brute Force Index_ t - cuvs
Cagra Compression Params_ t - cuvs
Cagra Extend Params_ t - cuvs
Cagra Index Params_ t - cuvs
Cagra Index_ t - cuvs
Cagra Search Params_ t - cuvs
Dataset_ t - cuvs
Hnsw AceParams_ t - cuvs
Hnsw Extend Params_ t - cuvs
Hnsw Index Params_ t - cuvs
Hnsw Index_ t - cuvs
Hnsw Search Params_ t - cuvs
IvfFlat Index Params_ t - cuvs
IvfFlat Index_ t - cuvs
IvfFlat Search Params_ t - cuvs
IvfPq Index Params_ t - cuvs
IvfPq Index_ t - cuvs
IvfPq Params_ t - cuvs
IvfPq Search Params_ t - cuvs
IvfSq Index Params_ t - cuvs
IvfSq Index_ t - cuvs
IvfSq Search Params_ t - cuvsK
Means Params_ t - cuvsNN
Descent Index Params_ t - cuvsNN
Descent Index_ t - cuvs
PcaParams_ t - cuvs
Product Quantizer Params_ t - cuvs
Product Quantizer_ t - cuvs
Resources_ t - @brief An opaque C handle for C++ type
raft::resources - cuvs
Scalar Quantizer Params_ t - cuvs
Scalar Quantizer_ t - cuvs
Tiered Index Params_ t - cuvs
Tiered Index_ t - cuvs
Vamana Index Params_ t - cuvs
Vamana Index_ t