NvMedia DLA runtime APIs for accessing the DLA hardware engine for deep learning operations.
Modules | |
DLA Specific Types | |
Defines specific types for DLA. | |
Macros | |
#define | NVMEDIA_DLA_VERSION_MAJOR 4 |
Major version number. More... | |
#define | NVMEDIA_DLA_VERSION_MINOR 0 |
Minor version number. More... | |
#define | NVMEDIA_DLA_VERSION_PATCH 0 |
Patch version number. More... | |
Functions | |
NvMediaStatus | NvMediaDlaGetVersion (NvMediaVersion *version) |
Returns the version information for the NvMediaDla library. More... | |
NvMediaStatus | NvMediaDlaPingById (const uint32_t dlaId) |
Checks the status of the DLA engine. More... | |
NvMediaDla * | NvMediaDlaCreate (void) |
Creates a default context for NvMediaDla. More... | |
NvMediaStatus | NvMediaDlaDestroy (NvMediaDla *dla) |
Destroys a DLA engine instance created by NvMediaDlaCreate(). More... | |
NvMediaStatus | NvMediaDlaGetUMDVersion (const NvMediaDla *dla, NvMediaDlaUMDVersion *version) |
Returns the version information for the NvMedia DLA UMD library. More... | |
NvMediaStatus | NvMediaDlaGetNumEngines (const NvMediaDla *dla, uint16_t *numEngines) |
Returns the number of DLA hardware engines available. More... | |
NvMediaStatus | NvMediaDlaGetMaxOutstandingTasks (const NvMediaDla *dla, uint32_t *maxOutstandingTasks) |
Returns the maximum number of tasks that can be queued to an instance of an engine. More... | |
NvMediaStatus | NvMediaDlaInit (NvMediaDla *dla, uint32_t dlaId, uint32_t numTasks) |
Configures the context for a particular DLA engine. More... | |
NvMediaStatus | NvMediaDlaGetInstanceId (const NvMediaDla *dla, uint32_t *dlaId) |
Returns the instance id of the NvMediaDla. More... | |
NvMediaStatus | NvMediaDlaGetNumTasks (const NvMediaDla *dla, uint32_t *numTasks) |
Returns the number of outstanding tasks of NvMediaDla. More... | |
NvMediaStatus | NvMediaDlaLoadableCreate (NvMediaDla *dla, NvMediaDlaLoadable **loadable) |
Creates a loadable handle. More... | |
NvMediaStatus | NvMediaDlaLoadableDestroy (const NvMediaDla *dla, NvMediaDlaLoadable *loadable) |
Destroys a loadable handle. More... | |
NvMediaStatus | NvMediaDlaAppendLoadable (const NvMediaDla *dla, const NvMediaDlaBinaryLoadable binaryLoadable, NvMediaDlaLoadable *loadable) |
Appends a loadable to the NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaAppendDiagnosticLoadable (const NvMediaDla *dla, NvMediaDlaLoadable *loadable) |
Appends diagnostic loadable to the NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaSetCurrentLoadable (NvMediaDla *dla, const NvMediaDlaLoadable *loadable) |
Sets the current loadable for the NvMediaDla. More... | |
NvMediaStatus | NvMediaDlaGetNumOfInputTensors (const NvMediaDla *dla, int32_t *numOfInputTensors) |
Gets the number of input tensors for the current loadable in the NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaGetInputTensorDescriptor (const NvMediaDla *dla, const uint32_t idx, NvMediaDlaTensorDescriptor *descriptor) |
Gets the input tensor descriptor for the current loadable in the NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaGetNumOfOutputTensors (const NvMediaDla *dla, int32_t *numOfOutputTensors) |
Gets the number of output tensors for the current loadable in the NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaGetOutputTensorDescriptor (const NvMediaDla *dla, const uint32_t idx, NvMediaDlaTensorDescriptor *descriptor) |
Gets the output tensor descriptor for the current loadable in the NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaDataRegister (const NvMediaDla *dla, const NvMediaDlaData *dlaData, uint32_t flags) |
Registers an NvMediaDlaData for use with an NvMediaDla handle. More... | |
NvMediaStatus | NvMediaDlaDataUnregister (const NvMediaDla *dla, const NvMediaDlaData *dlaData) |
Unregisters an NvMediaDlaData after use. More... | |
NvMediaStatus | NvMediaDlaLoadLoadable (NvMediaDla *dla) |
Loads the current loadable to the provided NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaRemoveLoadable (NvMediaDla *dla) |
Removes the current loadable from the provided NvMediaDla context. More... | |
NvMediaStatus | NvMediaDlaSubmit (NvMediaDla *dla, const NvMediaDlaArgs *inputArgs, const NvMediaDlaArgs *scratchpadArgs, const NvMediaDlaArgs *outputArgs, uint32_t taskTimeout) |
Submits a job to the DLA to run the network on a set of input NvMediaDla arguments and a timeout value. More... | |
NvMediaStatus | NvMediaDlaSubmitBypass (NvMediaDla *dla, const NvMediaDlaArgs *inputArgs, const NvMediaDlaArgs *scratchpadArgs, const NvMediaDlaArgs *outputArgs) |
Submits a job to the DLA but its execution is skipped. More... | |
#define NVMEDIA_DLA_VERSION_MAJOR 4 |
Major version number.
Definition at line 51 of file nvmedia_dla.h.
#define NVMEDIA_DLA_VERSION_MINOR 0 |
Minor version number.
Definition at line 53 of file nvmedia_dla.h.
#define NVMEDIA_DLA_VERSION_PATCH 0 |
Patch version number.
Definition at line 55 of file nvmedia_dla.h.
NvMediaStatus NvMediaDlaAppendDiagnosticLoadable | ( | const NvMediaDla * | dla, |
NvMediaDlaLoadable * | loadable | ||
) |
Appends diagnostic loadable to the NvMediaDla context.
NvMediaDlaAppendDiagnosticLoadable() appends the value in loadable and returns to the calling function. Currently, only one loadable can be appended.
The application may call this function or NvMediaDlaAppendLoadable only once per NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created using NvMediaDlaCreate(). |
[in,out] | loadable | A pointer to an NvMediaDlaLoadable filled by NvMediaDla. Input range: A non-null pointer to an NvMediaDlaLoadable created using NvMediaDlaLoadableCreate() Output range: A non-null pointer to a valid loadable if successful. |
Usage considerations
NvMediaStatus NvMediaDlaAppendLoadable | ( | const NvMediaDla * | dla, |
const NvMediaDlaBinaryLoadable | binaryLoadable, | ||
NvMediaDlaLoadable * | loadable | ||
) |
Appends a loadable to the NvMediaDla context.
NvMediaDlaAppendLoadable() appends the value in loadable and returns to the calling function. Currently, only one loadable can be appended.
The application may call this function or NvMediaDlaAppendDiagnosticLoadable only once per NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | binaryLoadable | Holds a non-null pointer to NvMediaDlaBinaryLoadable. Input range: The loadableSize must be greater than 0. |
[in,out] | loadable | A pointer to an NvMediaDlaLoadable filled by NvMediaDla. Input range: A non-null pointer to an NvMediaDlaLoadable created using NvMediaDlaLoadableCreate() Output range: A non-null pointer to a valid loadable if successful. |
Usage considerations
NvMediaDla* NvMediaDlaCreate | ( | void | ) |
Creates a default context for NvMediaDla.
Use the function NvMediaDlaInit() to initialize the newly-created context for use as an engine instance.
Usage considerations
NvMediaStatus NvMediaDlaDataRegister | ( | const NvMediaDla * | dla, |
const NvMediaDlaData * | dlaData, | ||
uint32_t | flags | ||
) |
Registers an NvMediaDlaData for use with an NvMediaDla handle.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | dlaData | A pointer to NvMediaDlaData to register. Input range: A non-null pointer to an NvMediaDlaData. |
[in] | flags | Reserved for future use. Should be set to zero. |
Usage considerations
NvMediaStatus NvMediaDlaDataUnregister | ( | const NvMediaDla * | dla, |
const NvMediaDlaData * | dlaData | ||
) |
Unregisters an NvMediaDlaData after use.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | dlaData | A pointer to a registered NvMediaDlaData. Input range: A non-null pointer to an NvMediaDlaData registered with NvMediaDlaDataRegister(). |
Usage considerations
NvMediaStatus NvMediaDlaDestroy | ( | NvMediaDla * | dla | ) |
Destroys a DLA engine instance created by NvMediaDlaCreate().
[in] | dla | A handle to the instance to destroy. Input range: A non-null pointer to an NvMediaDla instance created with NvMediaDlaCreate(). |
Usage considerations
NvMediaStatus NvMediaDlaGetInputTensorDescriptor | ( | const NvMediaDla * | dla, |
const uint32_t | idx, | ||
NvMediaDlaTensorDescriptor * | descriptor | ||
) |
Gets the input tensor descriptor for the current loadable in the NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | idx | A tensor index. Input range: A value between 0 (zero) and the result of NvMediaDlaGetNumOfInputTensors() - 1. |
[in,out] | descriptor | Descriptor for the tensor. Input range: A non-null pointer to an NvMediaDlaTensorDescriptor. Output range: A non-null pointer to an NvMediaDlaTensorDescriptor if successful. |
Usage considerations
NvMediaStatus NvMediaDlaGetInstanceId | ( | const NvMediaDla * | dla, |
uint32_t * | dlaId | ||
) |
Returns the instance id of the NvMediaDla.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in,out] | dlaId | A pointer to the NvMediaDla instance id. Input range: A non-null pointer to an uint32_t . Output range: A non-null pointer to an uint32_t between 0 (zero) and the result of NvMediaDlaGetNumEngines() - 1 if successful. |
Usage considerations
NvMediaStatus NvMediaDlaGetMaxOutstandingTasks | ( | const NvMediaDla * | dla, |
uint32_t * | maxOutstandingTasks | ||
) |
Returns the maximum number of tasks that can be queued to an instance of an engine.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in,out] | maxOutstandingTasks | A pointer to the maximum number of tasks that can be queued. Input range: A non-null pointer to an uint32_t . Output range: A non-null pointer to an uint32_t if successful, otherwise the value pointed to by numEngines remains unchanged. |
Usage considerations
NvMediaStatus NvMediaDlaGetNumEngines | ( | const NvMediaDla * | dla, |
uint16_t * | numEngines | ||
) |
Returns the number of DLA hardware engines available.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer an NvMediaDla instance created with NvMediaDlaCreate(). |
[in,out] | numEngines | A pointer to the number of DLA hardware engines. Input range: A non-null pointer to an uint16_t . Output range: A non-null pointer to an uint16_t if successful, otherwise the value pointed to by numEngines remains unchanged. |
Usage considerations
NvMediaStatus NvMediaDlaGetNumOfInputTensors | ( | const NvMediaDla * | dla, |
int32_t * | numOfInputTensors | ||
) |
Gets the number of input tensors for the current loadable in the NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in,out] | numOfInputTensors | The number of input tensors. Input range: A non-null pointer to an int32_t value. Output range: A non-null pointer to an int32_t if successful. |
Usage considerations
NvMediaStatus NvMediaDlaGetNumOfOutputTensors | ( | const NvMediaDla * | dla, |
int32_t * | numOfOutputTensors | ||
) |
Gets the number of output tensors for the current loadable in the NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in,out] | numOfOutputTensors | The number of output tensors. Input range: A non-null pointer to an int32_t value. Output range: A non-null pointer to an int32_t value if successful. |
Usage considerations
NvMediaStatus NvMediaDlaGetNumTasks | ( | const NvMediaDla * | dla, |
uint32_t * | numTasks | ||
) |
Returns the number of outstanding tasks of NvMediaDla.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in,out] | numTasks | A pointer to the number of outstanding tasks. Input range: A non-null pointer to an uint32_t . Output range: A non-null pointer to an uint32_t between 0 (zero) and the result of NvMediaDlaGetMaxOutstandingTasks() if successful. |
Usage considerations
NvMediaStatus NvMediaDlaGetOutputTensorDescriptor | ( | const NvMediaDla * | dla, |
const uint32_t | idx, | ||
NvMediaDlaTensorDescriptor * | descriptor | ||
) |
Gets the output tensor descriptor for the current loadable in the NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | idx | The tensor index. Input range: A value between 0 (zero) and the result of NvMediaDlaGetNumOfOutputTensors() - 1. |
[in,out] | descriptor | A descriptor for the tensor. Input range: A non-null pointer to an NvMediaDlaTensorDescriptor. Output range: A non-null pointer to an NvMediaDlaTensorDescriptor if successful. |
Usage considerations
NvMediaStatus NvMediaDlaGetUMDVersion | ( | const NvMediaDla * | dla, |
NvMediaDlaUMDVersion * | version | ||
) |
Returns the version information for the NvMedia DLA UMD library.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla instance created with NvMediaDlaCreate(). |
[in,out] | version | A pointer to an NvMediaDlaUMDVersion structure filled by the NvMediaDla library. Input range: A non-null pointer to an NvMediaDlaUMDVersion. Output range: A non-null pointer to an NvMediaDlaUMDVersion if successful, otherwise the value pointed to by version remains unchanged. |
Usage considerations
NvMediaStatus NvMediaDlaGetVersion | ( | NvMediaVersion * | version | ) |
Returns the version information for the NvMediaDla library.
[in,out] | version | A pointer to an NvMediaVersion structure filled by the NvMediaDla library. Input range: A non-null pointer to an NvMediaVersion structure. Output range: A non-null pointer to an NvMediaVersion structure if successful, otherwise the value pointed to by version remains unchanged. |
Usage considerations
NvMediaStatus NvMediaDlaInit | ( | NvMediaDla * | dla, |
uint32_t | dlaId, | ||
uint32_t | numTasks | ||
) |
Configures the context for a particular DLA engine.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | dlaId | The DLA engine ID. Input range: An uint32_t value between 0 (zero) and the result of NvMediaDlaGetNumEngines() - 1. |
[in] | numTasks | The number of simultaneous tasks that can be submitted to a DLA instance at a time. Input range: An uint32_t value between 1 and the result of NvMediaDlaGetMaxOutstandingTasks(). |
Usage considerations
NvMediaStatus NvMediaDlaLoadableCreate | ( | NvMediaDla * | dla, |
NvMediaDlaLoadable ** | loadable | ||
) |
Creates a loadable handle.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in,out] | loadable | A pointer to an NvMediaDlaLoadable. Input range: A non-null pointer to an NvMediaDlaLoadable. Output range: A non-null pointer to a valid loadable if successful. |
Usage considerations
NvMediaStatus NvMediaDlaLoadableDestroy | ( | const NvMediaDla * | dla, |
NvMediaDlaLoadable * | loadable | ||
) |
Destroys a loadable handle.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | loadable | A pointer to an NvMediaDlaLoadable. Input range: A non-null pointer to an NvMediaDlaLoadable created with NvMediaDlaLoadableCreate(). |
Usage considerations
NvMediaStatus NvMediaDlaLoadLoadable | ( | NvMediaDla * | dla | ) |
Loads the current loadable to the provided NvMediaDla context.
[in] | dla | A handle to the DLA device. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
Usage considerations
NvMediaStatus NvMediaDlaPingById | ( | const uint32_t | dlaId | ) |
Checks the status of the DLA engine.
This function sends a ping to the DLA engine identified by dlaId to fetch its status.
[in] | dlaId | Id of the DLA engine to ping. Input range: An uint32_t value between 0 (zero) and the result of NvMediaDlaGetNumEngines() - 1. |
Usage considerations
NvMediaStatus NvMediaDlaRemoveLoadable | ( | NvMediaDla * | dla | ) |
Removes the current loadable from the provided NvMediaDla context.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
Usage considerations
NvMediaStatus NvMediaDlaSetCurrentLoadable | ( | NvMediaDla * | dla, |
const NvMediaDlaLoadable * | loadable | ||
) |
Sets the current loadable for the NvMediaDla.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | loadable | A pointer to an NvMediaDlaLoadable. Input range: A non-null pointer to an NvMediaDlaLoadable created with NvMediaDlaLoadableCreate(). |
Usage considerations
NvMediaStatus NvMediaDlaSubmit | ( | NvMediaDla * | dla, |
const NvMediaDlaArgs * | inputArgs, | ||
const NvMediaDlaArgs * | scratchpadArgs, | ||
const NvMediaDlaArgs * | outputArgs, | ||
uint32_t | taskTimeout | ||
) |
Submits a job to the DLA to run the network on a set of input NvMediaDla arguments and a timeout value.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | inputArgs | A pointer to input NvMediaDlaArgs. Input range: A non-null pointer to a valid NvMediaDlaArgs. |
[in] | scratchpadArgs | A pointer to scratchpad arguments for NvMediaDla. Input range: A NULL value. This parameter is currently not supported. The application must pass NULL in this argument. |
[in] | outputArgs | Holds output NvMediaDlaArgs. Input range: A non-null pointer to a valid NvMediaDlaArgs. |
[in] | taskTimeout | The maximum time allocated for completing the task (in milliseconds). Input range: The valid range is from 1 millisecond to 1000000 milliseconds. The value 0 (zero) is mapped to 1000000 milliseconds. |
Notes:
A valid NvMediaDlaArgs should meet the following restrictions:
[1] NvMediaDlaArgs should hold a non-NULL NvMediaDlaData.
[2] NvMediaDlaDataType of NvMediaDlaData shall be equal to NVMEDIA_DLA_DATA_TYPE_TENSOR.
[3] NvMediaDlaDataPointer of NvMediaDlaData shall be non-NULL.
[4] NvMediaTensor of NvMediaDlaDataPointer shall match the tensor descriptor that is queried by NvMediaDlaGetInputTensorDescriptor or NvMediaDlaGetOutputTensorDescriptor.
[5] numArgs of NvMediaDlaArgs shall be equal to the number of tensors queried by NvMediaDlaGetNumOfInputTensors or NvMediaDlaGetNumOfOutputTensors.
The task will error out if it does not finish within the time set in taskTimeout. Error details can be obtained: [1] using NvMediaTensorGetStatus() for output tensors or [2] using NvSciSyncFenceGetTaskStatus from the fence associated with EOF NvSciSyncObj
Usage considerations
NvMediaStatus NvMediaDlaSubmitBypass | ( | NvMediaDla * | dla, |
const NvMediaDlaArgs * | inputArgs, | ||
const NvMediaDlaArgs * | scratchpadArgs, | ||
const NvMediaDlaArgs * | outputArgs | ||
) |
Submits a job to the DLA but its execution is skipped.
[in] | dla | A handle to the DLA context. Input range: A non-null pointer to an NvMediaDla created with NvMediaDlaCreate(). |
[in] | inputArgs | A pointer to input NvMediaDlaArgs. Input range: A non-null pointer to a valid NvMediaDlaArgs. |
[in] | scratchpadArgs | A pointer to scratchpad arguments for NvMediaDla. Input range: A NULL value. This parameter is currently not supported. The application must pass NULL in this argument. |
[in] | outputArgs | Holds output NvMediaDlaArgs. Input range: A non-null pointer to a valid NvMediaDlaArgs. |
Notes:
A valid NvMediaDlaArgs should meet the following restrictions:
[1] NvMediaDlaArgs should hold a non-NULL NvMediaDlaData.
[2] NvMediaDlaDataType of NvMediaDlaData shall be equal to NVMEDIA_DLA_DATA_TYPE_TENSOR.
[3] NvMediaDlaDataPointer of NvMediaDlaData shall be non-NULL.
[4] NvMediaTensor of NvMediaDlaDataPointer shall match the tensor descriptor that is queried by NvMediaDlaGetInputTensorDescriptor or NvMediaDlaGetOutputTensorDescriptor.
[5] numArgs of NvMediaDlaArgs shall be equal to the number of tensors queried by NvMediaDlaGetNumOfInputTensors or NvMediaDlaGetNumOfOutputTensors.
Error details can be obtained: [1] using NvMediaTensorGetStatus() for output tensors or [2] using NvSciSyncFenceGetTaskStatus from the fence associated with EOF NvSciSyncObj
Usage considerations