pub unsafe extern "C" fn cuvsIvfPqBuild(
res: cuvsResources_t,
params: cuvsIvfPqIndexParams_t,
dataset: *mut DLManagedTensor,
index: cuvsIvfPqIndex_t,
) -> cuvsError_tExpand description
@defgroup ivf_pq_c_index_build IVF-PQ index build
@{
/
/**
@brief Build a IVF-PQ index with a DLManagedTensor which has underlying
DLDeviceType equal to kDLCUDA, kDLCUDAHost, kDLCUDAManaged,
or kDLCPU. Also, acceptable underlying types are:
1. kDLDataType.code == kDLFloat and kDLDataType.bits = 32
2. kDLDataType.code == kDLFloat and kDLDataType.bits = 16
3. kDLDataType.code == kDLInt and kDLDataType.bits = 8
4. kDLDataType.code == kDLUInt and kDLDataType.bits = 8
@code {.c} #include <cuvs/core/c_api.h> #include <cuvs/neighbors/ivf_pq.h>
// Create cuvsResources_t cuvsResources_t res; cuvsError_t res_create_status = cuvsResourcesCreate(&res);
// Assume a populated DLManagedTensor type here
DLManagedTensor dataset;
// Create default index params cuvsIvfPqIndexParams_t index_params; cuvsError_t params_create_status = cuvsIvfPqIndexParamsCreate(&index_params);
// Create IVF-PQ index cuvsIvfPqIndex_t index; cuvsError_t index_create_status = cuvsIvfPqIndexCreate(&index);
// Build the IVF-PQ Index cuvsError_t build_status = cuvsIvfPqBuild(res, index_params, &dataset, index);
// de-allocate index_params, index and res
cuvsError_t params_destroy_status = cuvsIvfPqIndexParamsDestroy(index_params);
cuvsError_t index_destroy_status = cuvsIvfPqIndexDestroy(index);
cuvsError_t res_destroy_status = cuvsResourcesDestroy(res);
@endcode
@param[in] res cuvsResources_t opaque C handle @param[in] params cuvsIvfPqIndexParams_t used to build IVF-PQ index @param[in] dataset DLManagedTensor* training dataset @param[out] index cuvsIvfPqIndex_t Newly built IVF-PQ index @return cuvsError_t