The Tensor Processing API encompasses all NvMedia tensor related functionality.
Data Structures | |
struct | NvMediaTensorTaskStatus |
Holds the status of the latest operation for a tensor. More... | |
struct | NvMediaTensorAttr |
Holds tensor creation attributes. More... | |
struct | NvMediaTensorSurfaceMap |
Defines the tensor surface map descriptor used by NvMediaTensorLock(). More... | |
Macros | |
#define | NVMEDIA_TENSOR_VERSION_MAJOR (1u) |
Major version number. More... | |
#define | NVMEDIA_TENSOR_VERSION_MINOR (13u) |
Minor version number. More... | |
#define | NVMEDIA_TENSOR_VERSION_PATCH (0u) |
Patch version number. More... | |
#define | NVMTENSOR_4D_MAX_N (65536u) |
Defines the maximum supported number of tensor surfaces. More... | |
#define | NVMTENSOR_4D_MAX_C (8192u) |
Defines the maximum supported number of channels of a 4D tensor. More... | |
#define | NVMTENSOR_4D_MAX_H (8192u) |
Defines the maximum supported height of a 4D tensor. More... | |
#define | NVMTENSOR_4D_MAX_W (8192u) |
Defines the maximum supported width of a 4D tensor. More... | |
#define | NVMTENSOR_4D_MAX_X (1024u) |
Defines the maximum supported x value of a 4D tensor. More... | |
#define | NVMEDIA_TENSOR_TIMEOUT_INFINITE |
This macro tells NvMediaTensorGetStatus() and NvMediaTensorLock() APIs to block infinitely till the operation finishes. More... | |
#define | NVM_TENSOR_ATTR_CPU_ACCESS_UNCACHED (0x00000001u) |
Specifies that the tensor CPU accesses are uncached. More... | |
#define | NVM_TENSOR_ATTR_CPU_ACCESS_CACHED (0x00000002u) |
Specifies that the tensor CPU accesses are cacheable. More... | |
#define | NVM_TENSOR_ATTR_CPU_ACCESS_UNMAPPED (0x00000003u) |
Specifies that the tensor CPU accesses are unmapped from the virtual address space of the current process. More... | |
#define | NVM_TENSOR_ATTR_ALLOC_NONE (0x00000000u) |
Specifies that the tensor allocation is on Soc DRAM. More... | |
#define | NVM_TENSOR_INIT_ATTR(x) |
A helper macro to initialize tensor creation attributes. More... | |
#define | NVM_TENSOR_DEFINE_ATTR(x) |
A helper macro to define tensor creation attributes. More... | |
#define | NVM_TENSOR_SET_ATTR_4D(attr, N, C, H, W, order, datatype, bpe, accesstype, alloctype, X) |
A helper macro to set 4-D tensor creation attributes. More... | |
Typedefs | |
typedef struct NvMediaTensor | NvMediaTensor |
A handle representing tensor objects. More... | |
Enumerations | |
enum | NvMediaTensorAttrType { NVM_TENSOR_ATTR_DATA_TYPE = 0, NVM_TENSOR_ATTR_BITS_PER_ELEMENT, NVM_TENSOR_ATTR_DIMENSION_ORDER, NVM_TENSOR_ATTR_CPU_ACCESS, NVM_TENSOR_ATTR_ALLOC_TYPE, NVM_TENSOR_ATTR_4D_N, NVM_TENSOR_ATTR_4D_C, NVM_TENSOR_ATTR_4D_H, NVM_TENSOR_ATTR_4D_W, NVM_TENSOR_ATTR_4D_X, NVM_TENSOR_ATTR_MAX } |
Defines attribute types for creating NvMedia Tensor. More... | |
enum | NvMediaTensorLockAccess { NVMEDIA_TENSOR_ACCESS_READ = (1 << 0), NVMEDIA_TENSOR_ACCESS_WRITE = (1 << 1), NVMEDIA_TENSOR_ACCESS_READ_WRITE = (NVMEDIA_TENSOR_ACCESS_READ | NVMEDIA_TENSOR_ACCESS_WRITE) } |
Defines tensor lock access types. More... | |
Functions | |
void | NvMediaTensorDestroy (NvMediaTensor *tensor) |
Destroys a tensor object previously created by NvMediaTensorCreateFromNvSciBuf(). More... | |
NvMediaStatus | NvMediaTensorLock (NvMediaTensor *tensor, NvMediaTensorLockAccess lockAccessType, NvMediaTensorSurfaceMap *surfaceMap) |
Locks a tensor and returns the associated mapped pointers pointing to the tensor surface data. More... | |
void | NvMediaTensorUnlock (NvMediaTensor *tensor) |
Unlocks a tensor. More... | |
NvMediaStatus | NvMediaTensorGetStatus (NvMediaTensor *tensor, uint32_t millisecondWait, NvMediaTensorTaskStatus *status) |
Gets the status of the last operation for the tensor, and optionally waits for the operation to complete or time out. More... | |
NvMediaStatus | NvMediaTensorGetMetaData (const NvMediaTensor *tensor, NvMediaTensorMetaData *tensormetadata) |
Fills in the metadata information for the tensor. More... | |
NvMediaStatus | NvMediaTensorGetVersion (NvMediaVersion *version) |
Returns version information for the NvMediaTensor library. More... | |
#define NVM_TENSOR_ATTR_ALLOC_NONE (0x00000000u) |
Specifies that the tensor allocation is on Soc DRAM.
Definition at line 150 of file nvmedia_tensor.h.
#define NVM_TENSOR_ATTR_CPU_ACCESS_CACHED (0x00000002u) |
Specifies that the tensor CPU accesses are cacheable.
In this case, the tensor memory will be mapped and can be accessed with a mapping into the current process's virtual address space.
Definition at line 132 of file nvmedia_tensor.h.
#define NVM_TENSOR_ATTR_CPU_ACCESS_UNCACHED (0x00000001u) |
Specifies that the tensor CPU accesses are uncached.
In this case, the tensor memory will be mapped and can be accessed with a mapping into the current process's virtual address space.
Definition at line 126 of file nvmedia_tensor.h.
#define NVM_TENSOR_ATTR_CPU_ACCESS_UNMAPPED (0x00000003u) |
Specifies that the tensor CPU accesses are unmapped from the virtual address space of the current process.
Definition at line 137 of file nvmedia_tensor.h.
#define NVM_TENSOR_DEFINE_ATTR | ( | x | ) |
A helper macro to define tensor creation attributes.
Definition at line 202 of file nvmedia_tensor.h.
#define NVM_TENSOR_INIT_ATTR | ( | x | ) |
A helper macro to initialize tensor creation attributes.
x | The array to initialize with tensor creation attributes. |
Definition at line 166 of file nvmedia_tensor.h.
#define NVM_TENSOR_SET_ATTR_4D | ( | attr, | |
N, | |||
C, | |||
H, | |||
W, | |||
order, | |||
datatype, | |||
bpe, | |||
accesstype, | |||
alloctype, | |||
X | |||
) |
A helper macro to set 4-D tensor creation attributes.
The attr
parameter must be defined before setting the values using NVM_TENSOR_SET_ATTR_4D. For example, to set the attributes for NCHW 4-D FP16
tensor:
attr | The attribute to set. |
N | A tensor layout dimension for number of surfaces. |
C | A tensor layout dimension for number of channels on the surface. |
H | A tensor layout dimension for the height of the surface. |
W | A tensor layout dimension for the width of the surface. |
order | The order of the tensor elements. |
datatype | The datatype for this tensor. |
bpe | Specifies the bits per element. |
accesstype | Specifies the access type. |
alloctype | Specifies the allocation type. |
X | A tensor layout dimension for X. |
Definition at line 228 of file nvmedia_tensor.h.
#define NVMEDIA_TENSOR_TIMEOUT_INFINITE |
This macro tells NvMediaTensorGetStatus() and NvMediaTensorLock() APIs to block infinitely till the operation finishes.
Definition at line 72 of file nvmedia_tensor.h.
#define NVMEDIA_TENSOR_VERSION_MAJOR (1u) |
Major version number.
Definition at line 50 of file nvmedia_tensor.h.
#define NVMEDIA_TENSOR_VERSION_MINOR (13u) |
Minor version number.
Definition at line 52 of file nvmedia_tensor.h.
#define NVMEDIA_TENSOR_VERSION_PATCH (0u) |
Patch version number.
Definition at line 54 of file nvmedia_tensor.h.
#define NVMTENSOR_4D_MAX_C (8192u) |
Defines the maximum supported number of channels of a 4D tensor.
Definition at line 59 of file nvmedia_tensor.h.
#define NVMTENSOR_4D_MAX_H (8192u) |
Defines the maximum supported height of a 4D tensor.
Definition at line 61 of file nvmedia_tensor.h.
#define NVMTENSOR_4D_MAX_N (65536u) |
Defines the maximum supported number of tensor surfaces.
Definition at line 57 of file nvmedia_tensor.h.
#define NVMTENSOR_4D_MAX_W (8192u) |
Defines the maximum supported width of a 4D tensor.
Definition at line 63 of file nvmedia_tensor.h.
#define NVMTENSOR_4D_MAX_X (1024u) |
Defines the maximum supported x value of a 4D tensor.
This value is only for NCxHWx order.
Definition at line 65 of file nvmedia_tensor.h.
typedef struct NvMediaTensor NvMediaTensor |
A handle representing tensor objects.
Definition at line 88 of file nvmedia_tensor.h.
Defines attribute types for creating NvMedia Tensor.
The maximum supported NvMediaTensor size is (UINT32_MAX) = 4294967295 bytes.
Definition at line 94 of file nvmedia_tensor.h.
Defines tensor lock access types.
Enumerator | |
---|---|
NVMEDIA_TENSOR_ACCESS_READ | Read access. |
NVMEDIA_TENSOR_ACCESS_WRITE | Write access. |
NVMEDIA_TENSOR_ACCESS_READ_WRITE | Read/Write access. |
Definition at line 265 of file nvmedia_tensor.h.
void NvMediaTensorDestroy | ( | NvMediaTensor * | tensor | ) |
Destroys a tensor object previously created by NvMediaTensorCreateFromNvSciBuf().
[in] | tensor | The tensor to destroy. Input range: A valid, non-null pointer to NvMediaTensor. |
Usage considerations
NvMediaStatus NvMediaTensorGetMetaData | ( | const NvMediaTensor * | tensor, |
NvMediaTensorMetaData * | tensormetadata | ||
) |
Fills in the metadata information for the tensor.
[in] | tensor | The tensor object to get metadata from. Input range: A valid, non-null pointer to NvMediaTensor. |
[in,out] | tensormetadata | A pointer to a NvMediaTensorMetaData structure where tensor metadata is copied. This should be a non-NULL value |
NVMEDIA_STATUS_OK | if the function is successful. |
NVMEDIA_STATUS_BAD_PARAMETER | if any of the arguments are NULL or invalid. |
NVMEDIA_STATUS_INVALID_STATE | if the API is triggered in the DRIVEOS state that is not allowed as per the API Group. |
Usage considerations
NvMediaStatus NvMediaTensorGetStatus | ( | NvMediaTensor * | tensor, |
uint32_t | millisecondWait, | ||
NvMediaTensorTaskStatus * | status | ||
) |
Gets the status of the last operation for the tensor, and optionally waits for the operation to complete or time out.
[in] | tensor | The handle to the tensor object. Input range: A valid, non-null pointer to NvMediaTensor. |
[in] | millisecondWait | Time in milliseconds to wait for the operation to complete before getting the status. Recommended value is NVMEDIA_TENSOR_TIMEOUT_INFINITE. |
[out] | status | The status of the operation. Input range: A valid, non-null pointer to NvMediaTensorTaskStatus. |
NVMEDIA_STATUS_OK | if the function is successful. |
NVMEDIA_STATUS_TIMEOUT | - if the wait on the tensor timed out.
|
NVMEDIA_STATUS_OUT_OF_MEMORY | - if memory related DLA error occured |
NVMEDIA_STATUS_PFSD_ERROR | if a failure occurs during permanent fault diagnostics |
NVMEDIA_STATUS_BAD_PARAMETER | if any of the arguments are NULL or invalid. |
NVMEDIA_STATUS_ERROR | - if an internal DLA SW stack error occured.
|
NVMEDIA_STATUS_INVALID_STATE | - if the API is triggered in the DRIVEOS state that is not allowed as per the API Group. |
Usage considerations
NvMediaStatus NvMediaTensorGetVersion | ( | NvMediaVersion * | version | ) |
Returns version information for the NvMediaTensor library.
[out] | version | A valid, non-NULL pointer to NvMediaVersion to store version information. |
NVMEDIA_STATUS_OK | if the function call is successful. |
NVMEDIA_STATUS_BAD_PARAMETER | if version is invalid. |
NVMEDIA_STATUS_INVALID_STATE | if the API is triggered in the DRIVEOS state that is not allowed as per the API Group. |
Usage considerations
NvMediaStatus NvMediaTensorLock | ( | NvMediaTensor * | tensor, |
NvMediaTensorLockAccess | lockAccessType, | ||
NvMediaTensorSurfaceMap * | surfaceMap | ||
) |
Locks a tensor and returns the associated mapped pointers pointing to the tensor surface data.
The CPU can only access tensors created with the NVM_TENSOR_ATTR_CPU_ACCESS_UNCACHED or NVM_TENSOR_ATTR_CPU_ACCESS_CACHED attributes.
If a tensor is currently in use by an internal engine, this function waits until the operation completes.
[in] | tensor | A pointer to the tensor object. Input range: A valid, non-null pointer to NvMediaTensor. |
[in] | lockAccessType | Specifies the NvMediaTensorLockAccess type. Input range: Any enum value defined by NvMediaTensorLockAccess. |
[out] | surfaceMap | A pointer to the surface descriptors. Input range: A valid, non-null pointer to NvMediaTensorSurfaceMap. |
NVMEDIA_STATUS_OK | if the function is successful. |
NVMEDIA_STATUS_BAD_PARAMETER | if any of the arguments are NULL or invalid. |
NVMEDIA_STATUS_TIMEOUT | if the wait on the tensor timed out. |
NVMEDIA_STATUS_ERROR | if an error occurred. |
NVMEDIA_STATUS_INVALID_STATE | if the API is triggered in the DRIVEOS state that is not allowed as per the API Group. |
Usage considerations
void NvMediaTensorUnlock | ( | NvMediaTensor * | tensor | ) |
Unlocks a tensor.
Releases the lock applied on NvMediaTensor using NvMediaTensorLock.
[in] | tensor | The tensor object to unlock. Input range: A valid, non-null pointer to NvMediaTensor. |
Usage considerations