NVIDIA DRIVE OS Linux SDK API Reference

5.1.12.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvmedia_dla.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved. All
3  * information contained herein is proprietary and confidential to NVIDIA
4  * Corporation. Any use, reproduction, or disclosure without the written
5  * permission of NVIDIA Corporation is prohibited.
6  */
7 
8 
16 #ifndef NVMEDIA_DLA_H
17 #define NVMEDIA_DLA_H
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #include "nvmedia_core.h"
24 #include "nvmedia_tensor.h"
25 
47 #define NVMEDIA_DLA_VERSION_MAJOR 3
48 
49 #define NVMEDIA_DLA_VERSION_MINOR 2
50 
61 #define NVMEDIA_DLA_TENSOR_DESC_NAME_MAX_LEN (80)
62 
64 #define NVMEDIA_DLA_DEFAULT_TASKTIMEOUT 100000
65 
72 typedef struct NvMediaDla NvMediaDla;
73 
77 typedef struct {
79  uint8_t major;
81  uint8_t minor;
83  uint8_t subMinor;
85 
89 typedef enum {
93 
97 typedef struct {
101 
105 typedef struct {
111 
119 
123 typedef struct {
125  uint8_t *loadable;
127  uint64_t loadableSize;
129 
133 typedef struct {
137  uint32_t numArgs;
139 
143 typedef struct {
149  uint32_t numAttrs;
151 
164  NvMediaVersion *version
165 );
166 
184  const uint32_t dlaId
185 );
186 
195 NvMediaDla *
196 NvMediaDlaCreate(void);
197 
210  NvMediaDla *dla
211 );
212 
226  const NvMediaDla *dla,
227  NvMediaDlaUMDVersion *version
228 );
229 
243  const NvMediaDla *dla,
244  uint16_t *numEngines
245 );
246 
262  const NvMediaDla *dla,
263  uint32_t *maxOutstandingTasks
264 );
265 
286  NvMediaDla *dla,
287  uint32_t dlaId,
288  uint32_t numTasks
289 );
290 
304  const NvMediaDla *dla,
305  uint32_t *dlaId
306 );
307 
321  const NvMediaDla *dla,
322  uint32_t *numTasks
323 );
324 
338  NvMediaDla *dla,
339  NvMediaDlaLoadable **loadable
340 );
341 
355  const NvMediaDla *dla,
356  NvMediaDlaLoadable *loadable
357 );
358 
378  const NvMediaDla *dla,
379  const NvMediaDlaBinaryLoadable binaryLoadable,
380  NvMediaDlaLoadable *loadable
381 );
382 
396  const NvMediaDla *dla,
397  const NvMediaDlaLoadable *loadable
398 );
399 
414  const NvMediaDla *dla,
415  int32_t *numOfInputTensors
416 );
417 
433  const NvMediaDla *dla,
434  const uint32_t idx,
435  NvMediaDlaTensorDescriptor *descriptor
436 );
437 
452  const NvMediaDla *dla,
453  int32_t *numOfOutputTensors
454 );
455 
471  const NvMediaDla *dla,
472  const uint32_t idx,
473  NvMediaDlaTensorDescriptor *descriptor
474 );
475 
490  const NvMediaDla *dla,
491  const NvMediaDlaData *dlaData,
492  uint32_t flags
493 );
494 
508  const NvMediaDla *dla,
509  const NvMediaDlaData *dlaData
510 );
511 
526  NvMediaDla *dla
527 );
528 
545  const NvMediaDla *dla
546 );
547 
570  NvMediaDla *dla,
571  const NvMediaDlaArgs *inputArgs,
572  const NvMediaDlaArgs *scratchpadArgs,
573  NvMediaDlaArgs *outputArgs,
574  uint32_t taskTimeout
575 );
576 
600  NvMediaDla *dla,
601  uint8_t *loadable,
602  uint64_t loadableSize,
603  uint16_t dlaId,
604  uint32_t numOutstandingRequests
605 );
606 
626  NvMediaDla *dla,
627  const NvMediaDlaArgs *inputArgs,
628  NvMediaDlaArgs *outputArgs,
629  uint32_t taskTimeout
630 );
631 
649  const NvMediaDla *dla,
650  uint32_t *maxOutstandingRequests
651 );
652 
653 /*
654  * \defgroup history_nvmedia_dla History
655  * Provides change history for the NvMedia DLA API.
656  *
657  * \section history_nvmedia_dla Version History
658  *
659  * <b> Version 1.0 </b> Oct 31, 2017
660  * - Initial Release.
661  *
662  * <b> Version 1.1 </b> Feb 12, 2018
663  * - Add separate functionality to load from memory.
664  *
665  * <b> Version 1.2 </b> Mar 12, 2018
666  * - Add query API's for version, num engines, maxOutstandingRequests.
667  *
668  * <c> Version 1.3 </b> Mar 26, 2018
669  * - Add helper to query tensor descriptor.
670  *
671  * <c> Version 1.4 </b> May 3, 2018
672  * - Add dynamic task timeout support.
673  *
674  * <c> Version 2.0 </b> June 26, 2018
675  * - Remove load using filename functionality.
676  *
677  * <c> Version 2.1 </b> August 13, 2018
678  * - Add NvMediaDlaPingById. NvMediaDlaPing will be deprecated in the future.
679  *
680  * <c> Version 2.2 </b> Oct 1, 2018
681  * - Add new API NvMediaDlaGetUMDVersion and data structure NvMediaDlaUMDVersion.
682  *
683  * <c> Version 2.3 </b> Dec 14, 2018
684  * - Add new API NvMediaLoadableIdCreate, NvMediaLoadableIdDestroy,
685  * NvMediaDlaAppendLoadable, NvMediaDlaLoadLoadable, NvMediaDlaSetCurrentLoadable,
686  * NvMediaDlaInit, NvMediaDlaGetScratchpadDescriptor and NvMediaDlaBindScratchpad.
687  * - Add new structure NvMediaDlaLoadableId, NvMediaDlaLoadable and NvMediaDlaScratchpadDescriptor.
688  *
689  * <c> Version 2.4 </b> Jan 9, 2019
690  * - Remove NvMediaImage as Dla data.
691  *
692  * <c> Version 2.5 </b> Mar 7, 2019
693  * - Rename NvMediaLoadableIdCreate to NvMediaDlaLoadableIdCreate.
694  * - Rename NvMediaLoadableIdDestroy to NvMediaDlaLoadableIdDestroy.
695  *
696  * <c> Version 2.6 </b> Mar 11, 2019
697  * - Add new API NvMediaDlaDataRegister and NvMediaDlaDataUnRegister.
698  *
699  * <c> Version 2.7 </b> Mar 13, 2019
700  * - Deprecate NvMediaDlaPing API.
701  *
702  * <c> Version 2.8 </b> Mar 14, 2019
703  * - Deprecate NvMediaDlaSubmit API.
704  *
705  * <c> Version 3.0 </b> April 19, 2019
706  * - Move to new APIs.
707  *
708  * <c> Version 3.1 </b> July 08, 2019
709  * - Remove the restriction of calling sequence for data registration.
710  *
711  * <c> Version 3.2 </b> July 30, 2019
712  * - Deleting NvMediaDlaGetScratchpadDescriptor and NvMediaDlaBindScratchpad.
713  * - added const for parameters in APIs that do not modify the parameter
714  */
719 #ifdef __cplusplus
720 }
721 #endif
722 
723 #endif // NVMEDIA_DLA_H
NvMediaStatus NvMediaDlaGetNumOfOutputTensors(const NvMediaDla *dla, int32_t *numOfOutputTensors)
Gets the number of output tensors for the current loadable in the NvMediaDla context.
#define NVMEDIA_DLA_TENSOR_DESC_NAME_MAX_LEN
Maximum length of the name of the tensor to store in the descriptor.
Definition: nvmedia_dla.h:61
uint32_t numArgs
Number of NvMediaDlaData.
Definition: nvmedia_dla.h:137
NvMediaStatus NvMediaDlaLoadableDestroy(const NvMediaDla *dla, NvMediaDlaLoadable *loadable)
Destroys a loadable handle.
NvMediaStatus NvMediaDlaLoadFromMemory(NvMediaDla *dla, uint8_t *loadable, uint64_t loadableSize, uint16_t dlaId, uint32_t numOutstandingRequests)
Configures the context for a DLA engine, and loads a pre-compiled network (from memory) for DLA use...
Holds input and output tensors.
Definition: nvmedia_dla.h:133
Holds the DLA UMD version.
Definition: nvmedia_dla.h:77
NvMediaStatus NvMediaDlaLoadLoadable(NvMediaDla *dla)
Loads the current loadable to the provided NvMediaDla context.
NvMediaStatus NvMediaDlaGetOutputTensorDescriptor(const NvMediaDla *dla, const uint32_t idx, NvMediaDlaTensorDescriptor *descriptor)
Gets the output tensor descriptor for the current loadable in the NvMediaDla context.
NvMediaStatus NvMediaDlaGetMaxOutstandingTasks(const NvMediaDla *dla, uint32_t *maxOutstandingTasks)
Returns the maximum number of tasks that can be queued to an instance of an engine.
uint64_t loadableSize
Size (in bytes) of in-memory loadable.
Definition: nvmedia_dla.h:127
struct NvMediaDla NvMediaDla
Holds a handle to the NvMedia DLA device.
Definition: nvmedia_dla.h:72
NvMediaStatus NvMediaDlaGetVersion(NvMediaVersion *version)
Returns the version information for the NvMediaDla library.
uint32_t numAttrs
Holds the number of tensor attributes in tensorAttrs[ ].
Definition: nvmedia_dla.h:149
uint8_t major
Major version.
Definition: nvmedia_dla.h:79
NvMediaDlaDataType
Defines the data types that DLA can operate on.
Definition: nvmedia_dla.h:89
NvMediaDla * NvMediaDlaCreate(void)
Creates a default context for NvMediaDla.
NvMediaDlaDataType type
An NvMediaDlaDataType type.
Definition: nvmedia_dla.h:107
Holds NvMedia version information.
Definition: nvmedia_core.h:226
NvMediaStatus NvMediaDlaGetUMDVersion(const NvMediaDla *dla, NvMediaDlaUMDVersion *version)
Returns the version information for the NvMedia DLA UMD library.
NvMediaStatus NvMediaDlaGetNumTasks(const NvMediaDla *dla, uint32_t *numTasks)
Returns the number of outstanding tasks of NvMediaDla.
Holds tensor creation attributes.
NvMediaStatus NvMediaDlaGetInstanceId(const NvMediaDla *dla, uint32_t *dlaId)
Returns the instance id of the NvMediaDla.
NvMediaStatus NvMediaDlaSubmit(NvMediaDla *dla, const NvMediaDlaArgs *inputArgs, const NvMediaDlaArgs *scratchpadArgs, 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 valu...
NvMediaTensor * tensor
A pointer to NvMediaTensor.
Definition: nvmedia_dla.h:99
NVIDIA Media Interface: Core
NvMediaStatus NvMediaDlaGetInputTensorDescriptor(const NvMediaDla *dla, const uint32_t idx, NvMediaDlaTensorDescriptor *descriptor)
Gets the input tensor descriptor for the current loadable in the NvMediaDla context.
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
NvMediaStatus NvMediaDlaGetNumEngines(const NvMediaDla *dla, uint16_t *numEngines)
Returns the number of DLA hardware engines available.
NvMediaStatus NvMediaDlaInit(NvMediaDla *dla, uint32_t dlaId, uint32_t numTasks)
Configures the context for a particular DLA engine.
int uint32_t uint32_t uint32_t const uint32_t const uint32_t const uint32_t const uint64_t uint32_t uint32_t flags
struct NvMediaTensor NvMediaTensor
A handle representing tensor objects.
NvMediaStatus NvMediaDlaDestroy(NvMediaDla *dla)
Destroys a DLA engine instance created by NvMediaDlaCreate().
NvMediaStatus NvMediaDlaGetMaxOutstandingRequests(const NvMediaDla *dla, uint32_t *maxOutstandingRequests)
Returns the maximum number of requests that can be queued to an instance of an engine.
uint8_t minor
Minor version.
Definition: nvmedia_dla.h:81
NvMediaDlaData * dlaData
Pointer to array of NvMediaDlaData.
Definition: nvmedia_dla.h:135
NvMediaStatus NvMediaDlaSubmitTimeout(NvMediaDla *dla, const NvMediaDlaArgs *inputArgs, NvMediaDlaArgs *outputArgs, uint32_t taskTimeout)
Submits a job to the DLA to run the network with a given a set of NvMediaDla input values and a timeo...
NvMediaStatus NvMediaDlaSetCurrentLoadable(const NvMediaDla *dla, const NvMediaDlaLoadable *loadable)
Sets the current loadable for the NvMediaDla.
NvMediaStatus NvMediaDlaDataRegister(const NvMediaDla *dla, const NvMediaDlaData *dlaData, uint32_t flags)
Registers an NvMediaDlaData for use with an NvMediaDla handle.
NvMediaStatus NvMediaDlaGetNumOfInputTensors(const NvMediaDla *dla, int32_t *numOfInputTensors)
Gets the number of input tensors for the current loadable in the NvMediaDla context.
uint8_t * loadable
Pointer to in-memory loadable.
Definition: nvmedia_dla.h:125
NvMediaStatus NvMediaDlaDataUnregister(const NvMediaDla *dla, const NvMediaDlaData *dlaData)
Unregisters an NvMediaDlaData after use.
Holds tensor attributes.
Definition: nvmedia_dla.h:143
Holds pointers to the DLA data.
Definition: nvmedia_dla.h:97
Specifies the type and pointer to NvMediaDla.
Definition: nvmedia_dla.h:105
NvMediaStatus NvMediaDlaAppendLoadable(const NvMediaDla *dla, const NvMediaDlaBinaryLoadable binaryLoadable, NvMediaDlaLoadable *loadable)
Appends a loadable to the NvMediaDla context.
Defines the maximum number of tensor creation attributes.
NvMediaTensor data type.
Definition: nvmedia_dla.h:91
NVIDIA Media Interface: Tensor Processing
NvMediaStatus NvMediaDlaPingById(const uint32_t dlaId)
Checks the status of the DLA engine.
NvMediaStatus NvMediaDlaRemoveLoadable(const NvMediaDla *dla)
Removes the current loadable from the provided NvMediaDla context.
NvMediaDlaDataPointer pointer
A pointer to NvMediaDlaDataPointer.
Definition: nvmedia_dla.h:109
struct NvMediaDlaLoadable NvMediaDlaLoadable
Holds a handle to NvMediaDlaLoadable.
Definition: nvmedia_dla.h:118
uint8_t subMinor
Sub-minor version.
Definition: nvmedia_dla.h:83
NvMediaStatus NvMediaDlaLoadableCreate(NvMediaDla *dla, NvMediaDlaLoadable **loadable)
Creates a loadable handle.
Holds attributes for populating binary loadables for NvMediaDla.
Definition: nvmedia_dla.h:123