Skip to content

Group cuvis_cuda

Modules > cuvis_cuda

Classes

Type Name
struct cuvis_cuda_imbuffer_t
struct cuvis_cuda_ipc_descriptor_t
struct cuvis_cuda_mem_view_t

Public Types

Type Name
enum group__cuvis__cuda_1ga06fc87d81c62e9abb8790b6e5713c55b
enum group__cuvis__cuda_1ga99fb83031ce9923c84392b4e92f956b5
enum group__cuvis__cuda_1gabc6126af1d45847bc59afa0aa3216b04
enum group__cuvis__cuda_1gadf764cbdea00d65edcd07bb9953ad2b7

Public Functions

Type Name
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_ipc_backend_available (int i_backend, int * o_pAvailable)
Check if a specific IPC backend is available. Support of the different IPC backends varies.
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_ipc_get_descriptor (CUVIS_CUDA_IPC i_ipc, CUVIS_CUDA_IPC_DESCRIPTOR * o_pDesc)
Returns the IPC specific information of the underlying handle.
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_ipc_handle_create (CUVIS_CUDA_MEM i_mem, int i_backend, CUVIS_CUDA_IPC * o_pIpc)
Registers an cuda memory allocation to be used with cudas IPC protocols.
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_ipc_handle_free (CUVIS_CUDA_IPC * i_ipc)
Frees a cuda ipc handle.
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_mem_copy_handle (CUVIS_CUDA_MEM i_mem, CUVIS_CUDA_MEM * o_pCopy)
Make a copy of the supplied cuda memory handle. Afterwards both handles need to be freed for the underlying memory to be released.
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_mem_free (CUVIS_CUDA_MEM * i_mem)
Frees a cuda memory hanlde.
SDK_CAPI CUVIS_STATUS SDK_CCALL cuvis_cuda_mem_get_view (CUVIS_CUDA_MEM i_mem, CUVIS_CUDA_MEM_VIEW * o_pView)
return the raw device pointer + size + device index for wrapping it in the same process.
SDK_CAPI CUVIS_STATUS cuvis_measurement_get_data_image_cuda (CUVIS_MESU i_mesu, const CUVIS_CHAR * i_key, CUVIS_CUDA_IMBUFFER * o_pBuf)

Macros

Type Name
define CUVIS_CUDA_IMBUFFER struct [**cuvis\_cuda\_imbuffer\_t**](structcuvis__cuda__imbuffer__t.md)
define CUVIS_CUDA_IPC [**CUVIS\_HANDLE**](cuvis_8h.md#define-cuvis_handle)
define CUVIS_CUDA_IPC_DESCRIPTOR struct [**cuvis\_cuda\_ipc\_descriptor\_t**](structcuvis__cuda__ipc__descriptor__t.md)
define CUVIS_CUDA_MEM [**CUVIS\_HANDLE**](cuvis_8h.md#define-cuvis_handle)
define CUVIS_CUDA_MEM_VIEW struct [**cuvis\_cuda\_mem\_view\_t**](structcuvis__cuda__mem__view__t.md)

Public Types Documentation

enum group__cuvis__cuda_1ga06fc87d81c62e9abb8790b6e5713c55b

enum group__cuvis__cuda_1ga06fc87d81c62e9abb8790b6e5713c55b {
    CUVIS_CUDA_IPC_BACKEND_AUTO = 0,
    CUVIS_CUDA_IPC_BACKEND_POOL = 1,
    CUVIS_CUDA_IPC_BACKEND_LEGACY = 2,
    CUVIS_CUDA_IPC_BACKEND_VMM = 3
};

enum group__cuvis__cuda_1ga99fb83031ce9923c84392b4e92f956b5

enum group__cuvis__cuda_1ga99fb83031ce9923c84392b4e92f956b5 {
    CUVIS_CUDA_IPC_BLOB_MAX = 64
};

enum group__cuvis__cuda_1gabc6126af1d45847bc59afa0aa3216b04

enum group__cuvis__cuda_1gabc6126af1d45847bc59afa0aa3216b04 {
    CUVIS_CUDA_IPC_PTR_BLOB_MAX = 64
};

enum group__cuvis__cuda_1gadf764cbdea00d65edcd07bb9953ad2b7

enum group__cuvis__cuda_1gadf764cbdea00d65edcd07bb9953ad2b7 {
    CUVIS_CUDA_IPC_HANDLE_NONE = 0,
    CUVIS_CUDA_IPC_HANDLE_WIN32 = 1,
    CUVIS_CUDA_IPC_HANDLE_WIN32_KMT = 2,
    CUVIS_CUDA_IPC_HANDLE_POSIX_FD = 3
};

Public Functions Documentation

function cuvis_cuda_ipc_backend_available

Check if a specific IPC backend is available. Support of the different IPC backends varies.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_ipc_backend_available (
    int i_backend,
    int * o_pAvailable
) 

Parameters:

  • i_backend The backend to be checked. See CUVIS_CUDA_IPC_BACKEND_ for supported values
  • o_pAvailable Indicates if the request IPC backend is available

function cuvis_cuda_ipc_get_descriptor

Returns the IPC specific information of the underlying handle.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_ipc_get_descriptor (
    CUVIS_CUDA_IPC i_ipc,
    CUVIS_CUDA_IPC_DESCRIPTOR * o_pDesc
) 

The meaning of the values differs depending on which cuda backend IPC protocol is used.

Parameters:

  • i_mem The cuda memory handle
  • o_pDesc The IPC descriptor that is going to be filled

function cuvis_cuda_ipc_handle_create

Registers an cuda memory allocation to be used with cudas IPC protocols.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_ipc_handle_create (
    CUVIS_CUDA_MEM i_mem,
    int i_backend,
    CUVIS_CUDA_IPC * o_pIpc
) 

This is only supported for specific implementations. For the memory to be released both handles need to be freed.

Parameters:

  • i_mem The cuda memory handle
  • o_pIpc The new cuda ipc handle

function cuvis_cuda_ipc_handle_free

Frees a cuda ipc handle.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_ipc_handle_free (
    CUVIS_CUDA_IPC * i_ipc
) 

Parameters:

  • i_ipc The cuda memory handle

function cuvis_cuda_mem_copy_handle

Make a copy of the supplied cuda memory handle. Afterwards both handles need to be freed for the underlying memory to be released.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_mem_copy_handle (
    CUVIS_CUDA_MEM i_mem,
    CUVIS_CUDA_MEM * o_pCopy
) 

Parameters:

  • i_mem The cuda memory handle
  • o_pCopy The new cuda memory handle

function cuvis_cuda_mem_free

Frees a cuda memory hanlde.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_mem_free (
    CUVIS_CUDA_MEM * i_mem
) 

Parameters:

  • i_mem The cuda memory handle

function cuvis_cuda_mem_get_view

return the raw device pointer + size + device index for wrapping it in the same process.

SDK_CAPI  CUVIS_STATUS  SDK_CCALL cuvis_cuda_mem_get_view (
    CUVIS_CUDA_MEM i_mem,
    CUVIS_CUDA_MEM_VIEW * o_pView
) 

Parameters:

  • i_mem The cuda memory handle
  • o_pView Returns device pointer + size + device index

function cuvis_measurement_get_data_image_cuda

SDK_CAPI  CUVIS_STATUS cuvis_measurement_get_data_image_cuda (
    CUVIS_MESU i_mesu,
    const CUVIS_CHAR * i_key,
    CUVIS_CUDA_IMBUFFER * o_pBuf
) 

Macro Definition Documentation

define CUVIS_CUDA_IMBUFFER

#define CUVIS_CUDA_IMBUFFER `struct cuvis_cuda_imbuffer_t`

define CUVIS_CUDA_IPC

#define CUVIS_CUDA_IPC `CUVIS_HANDLE`

handle to an active ipc export registration;


define CUVIS_CUDA_IPC_DESCRIPTOR

#define CUVIS_CUDA_IPC_DESCRIPTOR `struct cuvis_cuda_ipc_descriptor_t`

define CUVIS_CUDA_MEM

#define CUVIS_CUDA_MEM `CUVIS_HANDLE`

handle to a shareable CUDA device buffer


define CUVIS_CUDA_MEM_VIEW

#define CUVIS_CUDA_MEM_VIEW `struct cuvis_cuda_mem_view_t`