NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
DNN.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2016-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
29 #ifndef DW_DNN_H_
30 #define DW_DNN_H_
31 
32 #include <dw/dnn/dataconditioner/DataConditioner.h>
33 #include <dw/core/base/Config.h>
34 #include <dw/core/base/Status.h>
35 #include <dw/core/context/Context.h>
36 #include <dw/dnn/tensor/Tensor.h>
37 #include <dw/dnn/plugin/DNNPluginConfig.h>
38 #include <driver_types.h>
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
46 typedef struct dwDNNObject* dwDNNHandle_t;
47 typedef struct dwDNNObject const* dwConstDNNHandle_t;
48 
51 typedef struct
52 {
55 
95 dwStatus dwDNN_initializeTensorRTFromFile(dwDNNHandle_t* const network, const char8_t* const modelFilename,
96  const dwDNNPluginConfiguration* const pluginConfiguration,
97  dwProcessorType const processorType, dwContextHandle_t const context);
98 
122 dwStatus dwDNN_initializeTensorRTFromFileWithEngineId(dwDNNHandle_t* const network, const char8_t* const modelFilename,
123  const dwDNNPluginConfiguration* const pluginConfiguration,
124  dwProcessorType const processorType, uint32_t engineId, uint32_t handleId,
125  dwContextHandle_t const context);
126 
153  const char8_t* const modelContent,
154  uint32_t const modelContentSize,
155  const dwDNNPluginConfiguration* const pluginConfiguration,
156  dwProcessorType const processorType, dwContextHandle_t const context);
157 
183  const char8_t* const modelContent,
184  uint32_t const modelContentSize,
185  const dwDNNPluginConfiguration* const pluginConfiguration,
186  dwProcessorType const processorType, uint32_t engineId, uint32_t handleId,
187  dwContextHandle_t const context);
201 dwStatus dwDNN_reset(dwDNNHandle_t const network);
202 
216 dwStatus dwDNN_release(dwDNNHandle_t const network);
217 
247 dwStatus dwDNN_inferSIO(float32_t* const dOutput, const float32_t* const dInput, uint32_t const batchsize,
248  dwDNNHandle_t const network);
249 
277 dwStatus dwDNN_inferRaw(float32_t* const* const dOutput, const float32_t* const* const dInput,
278  uint32_t const batchsize, dwDNNHandle_t const network);
279 
296 dwStatus dwDNN_setCUDAStream(cudaStream_t const stream, dwDNNHandle_t const network);
297 
312 dwStatus dwDNN_getCUDAStream(cudaStream_t* const stream, dwDNNHandle_t const network);
313 
330 dwStatus dwDNN_getInputSize(dwBlobSize* const blobSize, uint32_t const blobIndex, dwDNNHandle_t const network);
331 
348 dwStatus dwDNN_getOutputSize(dwBlobSize* const blobSize, uint32_t const blobIndex, dwDNNHandle_t const network);
349 
366 dwStatus dwDNN_getInputTensorProperties(dwDNNTensorProperties* const tensorProps, uint32_t const blobIndex, dwDNNHandle_t const network);
367 
384 dwStatus dwDNN_getOutputTensorProperties(dwDNNTensorProperties* const tensorProps, uint32_t const blobIndex, dwDNNHandle_t const network);
385 
400 dwStatus dwDNN_getInputBlobCount(uint32_t* const count, dwDNNHandle_t const network);
401 
415 dwStatus dwDNN_getOutputBlobCount(uint32_t* const count, dwDNNHandle_t const network);
416 
433 dwStatus dwDNN_getInputIndex(uint32_t* const blobIndex, const char8_t* const blobName, dwDNNHandle_t const network);
434 
451 dwStatus dwDNN_getOutputIndex(uint32_t* const blobIndex, const char8_t* const blobName, dwDNNHandle_t const network);
452 
468 dwStatus dwDNN_getMetaData(dwDNNMetaData* const metaData, dwDNNHandle_t const network);
469 
486 dwStatus dwDNN_infer(dwDNNTensorHandle_t* const outputTensors, uint32_t const outputTensorCount,
487  dwConstDNNTensorHandle_t* const inputTensors, uint32_t const inputTensorCount, dwDNNHandle_t const network);
488 
489 #ifdef __cplusplus
490 }
491 #endif
492 
493 #endif // DW_DNN_H_
dwDNN_getOutputTensorProperties
DW_API_PUBLIC dwStatus dwDNN_getOutputTensorProperties(dwDNNTensorProperties *const tensorProps, uint32_t const blobIndex, dwDNNHandle_t const network)
Gets the output tensor properties at blobIndex.
dwDNN_initializeTensorRTFromFileWithEngineId
DW_API_PUBLIC dwStatus dwDNN_initializeTensorRTFromFileWithEngineId(dwDNNHandle_t *const network, const char8_t *const modelFilename, const dwDNNPluginConfiguration *const pluginConfiguration, dwProcessorType const processorType, uint32_t engineId, uint32_t handleId, dwContextHandle_t const context)
Creates and initializes a TensorRT Network from file with DLA Engine ID.
dwDNN_infer
DW_API_PUBLIC dwStatus dwDNN_infer(dwDNNTensorHandle_t *const outputTensors, uint32_t const outputTensorCount, dwConstDNNTensorHandle_t *const inputTensors, uint32_t const inputTensorCount, dwDNNHandle_t const network)
Runs inference pipeline on the given input.
dwDNNTensorHandle_t
struct dwDNNTensorObject * dwDNNTensorHandle_t
Handles representing Deep Neural Network interface.
Definition: Tensor.h:40
dwDNN_getInputBlobCount
DW_API_PUBLIC dwStatus dwDNN_getInputBlobCount(uint32_t *const count, dwDNNHandle_t const network)
Gets the input blob count.
dwDNN_initializeTensorRTFromFile
DW_API_PUBLIC dwStatus dwDNN_initializeTensorRTFromFile(dwDNNHandle_t *const network, const char8_t *const modelFilename, const dwDNNPluginConfiguration *const pluginConfiguration, dwProcessorType const processorType, dwContextHandle_t const context)
Creates and initializes a TensorRT Network from file.
dwDNN_release
DW_API_PUBLIC dwStatus dwDNN_release(dwDNNHandle_t const network)
Releases a given network.
dwDNN_getMetaData
DW_API_PUBLIC dwStatus dwDNN_getMetaData(dwDNNMetaData *const metaData, dwDNNHandle_t const network)
Returns the metadata for the associated network model.
dwDNNMetaData
Specifies TensorRT model header.
Definition: DNN.h:51
dwDNN_getInputTensorProperties
DW_API_PUBLIC dwStatus dwDNN_getInputTensorProperties(dwDNNTensorProperties *const tensorProps, uint32_t const blobIndex, dwDNNHandle_t const network)
Gets the input tensor properties at blobIndex.
dwDNN_initializeTensorRTFromMemoryWithEngineId
DW_API_PUBLIC dwStatus dwDNN_initializeTensorRTFromMemoryWithEngineId(dwDNNHandle_t *const network, const char8_t *const modelContent, uint32_t const modelContentSize, const dwDNNPluginConfiguration *const pluginConfiguration, dwProcessorType const processorType, uint32_t engineId, uint32_t handleId, dwContextHandle_t const context)
Creates and initializes a TensorRT Network from memory with DLA Engine ID.
dwDNN_initializeTensorRTFromMemory
DW_API_PUBLIC dwStatus dwDNN_initializeTensorRTFromMemory(dwDNNHandle_t *const network, const char8_t *const modelContent, uint32_t const modelContentSize, const dwDNNPluginConfiguration *const pluginConfiguration, dwProcessorType const processorType, dwContextHandle_t const context)
Creates and initializes a TensorRT Network from memory.
dwDNNPluginConfiguration
Specified plugin configuration.
Definition: DNNPluginConfig.h:35
dwDNNMetaData::dataConditionerParams
dwDataConditionerParams dataConditionerParams
DataConditioner parameters for running this network.
Definition: DNN.h:53
dwProcessorType
dwProcessorType
Processor type definitions.
Definition: TypesExtra.h:116
dwDNN_getOutputBlobCount
DW_API_PUBLIC dwStatus dwDNN_getOutputBlobCount(uint32_t *const count, dwDNNHandle_t const network)
Gets the output blob count.
float32_t
float float32_t
Specifies POD types.
Definition: BasicTypes.h:41
dwDNNTensorProperties
Specifies DNNTensor properties.
Definition: Tensor.h:79
char8_t
char char8_t
Definition: BasicTypes.h:47
dwDNN_getInputIndex
DW_API_PUBLIC dwStatus dwDNN_getInputIndex(uint32_t *const blobIndex, const char8_t *const blobName, dwDNNHandle_t const network)
Gets the index of an input blob with a given blob name.
dwDNN_setCUDAStream
DW_API_PUBLIC dwStatus dwDNN_setCUDAStream(cudaStream_t const stream, dwDNNHandle_t const network)
Sets the CUDA stream for infer operations.
dwDNN_getCUDAStream
DW_API_PUBLIC dwStatus dwDNN_getCUDAStream(cudaStream_t *const stream, dwDNNHandle_t const network)
Gets the CUDA stream used by the feature list.
dwBlobSize
Holds blob dimensions.
Definition: TypesExtra.h:217
dwDNN_reset
DW_API_PUBLIC dwStatus dwDNN_reset(dwDNNHandle_t const network)
Resets a given network.
dwContextHandle_t
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:74
dwDNN_getOutputSize
DW_API_PUBLIC dwStatus dwDNN_getOutputSize(dwBlobSize *const blobSize, uint32_t const blobIndex, dwDNNHandle_t const network)
Gets the output blob size at blobIndex.
dwDNN_inferSIO
DW_API_PUBLIC dwStatus dwDNN_inferSIO(float32_t *const dOutput, const float32_t *const dInput, uint32_t const batchsize, dwDNNHandle_t const network)
Forwards pass from the first input blob to the first output blob (a shortcut for a single input - sin...
dwConstDNNTensorHandle_t
struct dwDNNTensorObject const * dwConstDNNTensorHandle_t
Definition: Tensor.h:41
dwDNNHandle_t
struct dwDNNObject * dwDNNHandle_t
Handles representing Deep Neural Network interface.
Definition: DNN.h:46
dwStatus
dwStatus
Status definition.
Definition: ErrorDefs.h:27
dwDNN_getOutputIndex
DW_API_PUBLIC dwStatus dwDNN_getOutputIndex(uint32_t *const blobIndex, const char8_t *const blobName, dwDNNHandle_t const network)
Gets the index of an output blob with a given blob name.
dwDNN_inferRaw
DW_API_PUBLIC dwStatus dwDNN_inferRaw(float32_t *const *const dOutput, const float32_t *const *const dInput, uint32_t const batchsize, dwDNNHandle_t const network)
Forwards pass from all input blobs to all output blobs.
dwDataConditionerParams
Struct representing parameters for DataConditioner.
Definition: DataConditioner.h:44
DW_API_PUBLIC
#define DW_API_PUBLIC
Definition: Exports.h:38
dwDNN_getInputSize
DW_API_PUBLIC dwStatus dwDNN_getInputSize(dwBlobSize *const blobSize, uint32_t const blobIndex, dwDNNHandle_t const network)
Gets the input blob size at blobIndex.
dwConstDNNHandle_t
struct dwDNNObject const * dwConstDNNHandle_t
Definition: DNN.h:47