Core Routines#

2026-01-06

3 min read time

Applies to Linux

#include <cuvs/core/c_api.h>

Resources Handle#

typedef uintptr_t cuvsResources_t#

An opaque C handle for C++ type raft::resources

cuvsError_t cuvsResourcesCreate(
cuvsResources_t *res
)#

Create an Initialized opaque C handle for C++ type raft::resources

Parameters:

res[in] cuvsResources_t opaque C handle

Returns:

cuvsError_t

cuvsError_t cuvsResourcesDestroy(
cuvsResources_t res
)#

Destroy and de-allocate opaque C handle for C++ type raft::resources

Parameters:

res[in] cuvsResources_t opaque C handle

Returns:

cuvsError_t

cuvsError_t cuvsStreamSet(
cuvsResources_t res,
cudaStream_t stream
)#

Set cudaStream_t on cuvsResources_t to queue CUDA kernels on APIs that accept a cuvsResources_t handle.

Parameters:
  • res[in] cuvsResources_t opaque C handle

  • stream[in] cudaStream_t stream to queue CUDA kernels

Returns:

cuvsError_t

cuvsError_t cuvsStreamGet(
cuvsResources_t res,
cudaStream_t *stream
)#

Get the cudaStream_t from a cuvsResources_t.

Parameters:
  • res[in] cuvsResources_t opaque C handle

  • stream[out] cudaStream_t stream to queue CUDA kernels

Returns:

cuvsError_t

cuvsError_t cuvsStreamSync(
cuvsResources_t res
)#

Syncs the current CUDA stream on the resources object.

Parameters:

res[in] cuvsResources_t opaque C handle

Returns:

cuvsError_t

cuvsError_t cuvsDeviceIdGet(
cuvsResources_t res,
int *device_id
)#

Get the id of the device associated with this cuvsResources_t.

Parameters:
  • res[in] cuvsResources_t opaque C handle

  • device_id[out] int the id of the device associated with res

Returns:

cuvsError_t

cuvsError_t cuvsMultiGpuResourcesCreate(
cuvsResources_t *res
)#

Create an Initialized opaque C handle for C++ type raft::device_resources_snmg for multi-GPU operations.

Parameters:

res[in] cuvsResources_t opaque C handle

Returns:

cuvsError_t

cuvsError_t cuvsMultiGpuResourcesCreateWithDeviceIds(
cuvsResources_t *res,
DLManagedTensor *device_ids
)#

Create an Initialized opaque C handle for C++ type raft::device_resources_snmg for multi-GPU operations with specific device IDs.

Parameters:
  • res[in] cuvsResources_t opaque C handle

  • device_ids[in] DLManagedTensor* containing device IDs to use

Returns:

cuvsError_t

cuvsError_t cuvsMultiGpuResourcesDestroy(
cuvsResources_t res
)#

Destroy and de-allocate opaque C handle for C++ type raft::device_resources_snmg

Parameters:

res[in] cuvsResources_t opaque C handle

Returns:

cuvsError_t

Error Handling#

enum cuvsError_t#

An enum denoting error statuses for function calls.

Values:

enumerator CUVS_ERROR#
enumerator CUVS_SUCCESS#
const char *cuvsGetLastErrorText(
)#

Returns a string describing the last seen error on this thread, or NULL if the last function succeeded.

void cuvsLogLastErrorText(
)#

Logs the last seen error on this thread to the standard error stream.

void cuvsSetLastErrorText(
const char *error
)#

Sets a string describing an error seen on the thread. Passing NULL clears any previously seen error message.