Group cuvis_cuda
Classes
| Type | Name |
|---|---|
| struct | cuvis_cuda_imbuffer_t |
| struct | cuvis_cuda_ipc_descriptor_t |
| struct | cuvis_cuda_mem_view_t |
Public Types
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_backendThe backend to be checked. See CUVIS_CUDA_IPC_BACKEND_ for supported valueso_pAvailableIndicates 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_memThe cuda memory handleo_pDescThe 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_memThe cuda memory handleo_pIpcThe 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_ipcThe 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_memThe cuda memory handleo_pCopyThe 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_memThe 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_memThe cuda memory handleo_pViewReturns 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`