NVIDIA DeepStream SDK API Reference

9.1 Release
9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef __NVDSINFER_MODEL_BUILDER_H__
19 #define __NVDSINFER_MODEL_BUILDER_H__
20 
21 #include <stdarg.h>
22 #include <algorithm>
23 #include <condition_variable>
24 #include <map>
25 #include <memory>
26 #include <mutex>
27 #include <queue>
28 #include <string>
29 #include <unordered_map>
30 
31 #include <NvInfer.h>
32 #include <NvInferRuntime.h>
33 #include <NvOnnxParser.h>
34 
35 #include <nvdsinfer_custom_impl.h>
36 #include "nvdsinfer_func_utils.h"
37 #include "nvdsinfer_tlt.h"
38 
39 /* This file provides APIs for building models from ONNX files. It
40  * also defines an interface where users can provide custom model parsers for
41  * custom networks. A helper class (TrtEngine) written on top of TensorRT's
42  * nvinfer1::ICudaEngine is also defined in this file.
43  *
44  * These interfaces/APIs are used by NvDsInferContextImpl class. */
45 
46 namespace nvdsinfer {
47 
49 
50 static const size_t kWorkSpaceSize = 450 * 1024 * 1024; // 450MB
51 
56 class BaseModelParser : public IModelParser
57 {
58 public:
60  const std::shared_ptr<DlLibHandle>& dllib)
61  : m_ModelParams(params), m_LibHandle(dllib) {}
62  virtual ~BaseModelParser() {}
63  virtual bool isValid() const = 0;
64 
65 private:
66  DISABLE_CLASS_COPY(BaseModelParser);
67 
68 protected:
70  std::shared_ptr<DlLibHandle> m_LibHandle;
71 };
72 
77 class OnnxModelParser : public BaseModelParser
78 {
79 public:
81  const std::shared_ptr<DlLibHandle>& handle = nullptr)
82  : BaseModelParser(initParams, handle),
83  m_ModelName(initParams.onnxFilePath) {}
84  ~OnnxModelParser() override = default;
85  bool isValid() const override { return !m_ModelName.empty(); }
86  const char* getModelName() const override { return m_ModelName.c_str(); }
87  NvDsInferStatus parseModel(nvinfer1::INetworkDefinition& network) override;
88  bool hasFullDimsSupported() const override { return true; }
89 
90 private:
91  std::string m_ModelName;
92 
93 protected:
94  std::unique_ptr<nvonnxparser::IParser> m_OnnxParser;
95 };
96 
104 class CustomModelParser : public BaseModelParser
105 {
106 public:
108  const std::shared_ptr<DlLibHandle>& handle);
109 
111 
112  bool isValid() const override
113  {
114  return (bool)m_CustomParser;
115  }
116 
117  const char* getModelName() const override
118  {
119  return isValid() ? safeStr(m_CustomParser->getModelName()) : "";
120  }
121 
122  NvDsInferStatus parseModel(nvinfer1::INetworkDefinition& network) override;
123  bool hasFullDimsSupported() const override
124  {
125  return m_CustomParser->hasFullDimsSupported();
126  }
127 
128 private:
129  std::unique_ptr<IModelParser> m_CustomParser;
130 };
131 
133 class TrtModelBuilder;
134 
139 struct BuildParams
140 {
141  using TensorIOFormat =
142  std::tuple<nvinfer1::DataType, nvinfer1::TensorFormats>;
143  using LayerDevicePrecision =
144  std::tuple<nvinfer1::DataType, nvinfer1::DeviceType>;
145 
146  size_t workspaceSize = kWorkSpaceSize;
148  std::string int8CalibrationFilePath;
149  int dlaCore = -1;
150  std::vector<TensorIOFormat> inputFormats;
151  std::unordered_map<std::string, TensorIOFormat> outputFormats;
152  std::unordered_map<std::string, LayerDevicePrecision> layerDevicePrecisions;
153 
154 public:
155  virtual ~BuildParams(){};
156  virtual NvDsInferStatus configBuilder(TrtModelBuilder& builder) = 0;
157  virtual bool sanityCheck() const;
158 };
159 
163 struct ImplicitBuildParams : public BuildParams
164 {
165  int maxBatchSize = 0;
166  std::vector<nvinfer1::Dims> inputDims;
167 
168 private:
169  NvDsInferStatus configBuilder(TrtModelBuilder& builder) override;
170 
171  bool sanityCheck() const override;
172 };
173 
174 using ProfileDims = std::array<nvinfer1::Dims,
175  nvinfer1::EnumMax<nvinfer1::OptProfileSelector>()>;
176 
180 struct ExplicitBuildParams : public BuildParams
181 {
182  // profileSelector, dims without batchSize
183  // each input must have 3 selector MIN/OPT/MAX for profile0,
184  // doesn't support multiple profiles
185  std::vector<ProfileDims> inputProfileDims;
186  int minBatchSize = 1;
187  int optBatchSize = 1;
188  int maxBatchSize = 1;
190 
191 private:
192  NvDsInferStatus configBuilder(TrtModelBuilder& builder) override;
193  bool sanityCheck() const override;
194 };
195 
199 class TrtEngine
200 {
201 public:
202  TrtEngine(std::unique_ptr<nvinfer1::ICudaEngine>&& engine, int dlaCore = -1)
203  : m_Engine(std::move(engine)), m_DlaCore(dlaCore) {}
204 
205  TrtEngine(std::unique_ptr<nvinfer1::ICudaEngine>&& engine,
206  const std::shared_ptr<nvinfer1::IRuntime>& runtime, int dlaCore = -1,
207  const std::shared_ptr<DlLibHandle>& dlHandle = nullptr,
208  nvinfer1::IPluginFactory* pluginFactory = nullptr);
209 
210  ~TrtEngine();
211 
212  bool hasDla() const { return m_DlaCore >= 0; }
213  int getDlaCore() const { return m_DlaCore; }
214 
216  std::vector<NvDsInferBatchDimsLayerInfo>& layersInfo);
218  int profileIdx, std::vector<NvDsInferBatchDimsLayerInfo>& layersInfo);
220 
221  void printEngineInfo();
222 
223  nvinfer1::ICudaEngine& engine()
224  {
225  assert(m_Engine);
226  return *m_Engine;
227  }
228 
229  nvinfer1::ICudaEngine* operator->()
230  {
231  assert(m_Engine);
232  return m_Engine.get();
233  }
234 
235 private:
236  DISABLE_CLASS_COPY(TrtEngine);
237 
238  std::shared_ptr<nvinfer1::IRuntime> m_Runtime;
239  std::unique_ptr<nvinfer1::ICudaEngine> m_Engine;
240  std::shared_ptr<DlLibHandle> m_DlHandle;
241  nvinfer1::IPluginFactory* m_RuntimePluginFactory = nullptr;
242  int m_DlaCore = -1;
243 
244  friend bool ::NvDsInferCudaEngineGetFromTltModel( nvinfer1::IBuilder * const builder,
245  nvinfer1::IBuilderConfig * const builderConfig,
246  const NvDsInferContextInitParams * const initParams,
247  nvinfer1::DataType dataType,
248  nvinfer1::ICudaEngine *& cudaEngine);
249 };
250 
259 class TrtModelBuilder
260 {
261 public:
262  TrtModelBuilder(int gpuId, nvinfer1::ILogger& logger,
263  const std::shared_ptr<DlLibHandle>& dlHandle = nullptr, bool isEngineFile = false);
264 
266  m_Parser.reset();
267  }
268 
269  void setInt8Calibrator(std::unique_ptr<nvinfer1::IInt8Calibrator>&& calibrator)
270  {
271  m_Int8Calibrator = std::move(calibrator);
272  }
273 
274  /* Populate INetworkDefinition by parsing the model, build the engine and
275  * return it as TrtEngine instance. Also, returns a suggested path for
276  * writing the serialized engine to.
277  *
278  * Suggested path has the following format:
279  * suggested path = [modelName]_b[#batchSize]_[#device]_[#dataType].engine
280  */
281  std::unique_ptr<TrtEngine> buildModel(
282  const NvDsInferContextInitParams& initParams,
283  std::string& suggestedPathName);
284 
285  /* Builds the engine from an already populated INetworkDefinition based on
286  * the BuildParams passed to it. Returns the engine in the form of TrtEngine
287  * instance.
288  */
289  std::unique_ptr<TrtEngine> buildEngine(
290  nvinfer1::INetworkDefinition& network, BuildParams& options);
291 
292  /* Serialize engine to file
293  */
295  const std::string& path, nvinfer1::ICudaEngine& engine);
296 
297  /* Deserialize engine from file
298  */
299  std::unique_ptr<TrtEngine> deserializeEngine(
300  const std::string& path, int dla = -1);
301 
302 private:
303  /* Parses a model file using an IModelParser implementation for
304  * ONNX formats or from custom IModelParser implementation.
305  */
306  NvDsInferStatus buildNetwork(const NvDsInferContextInitParams& initParams);
307 
308  /* build cudaEngine from Netwwork, be careful for implicitBatch and
309  * explicitBatch.
310  */
311  std::unique_ptr<TrtEngine> buildEngine();
312 
313  /* Calls a custom library's implementaion of NvDsInferCudaEngineGet function
314  * to get a built ICudaEngine. */
315  std::unique_ptr<TrtEngine> getCudaEngineFromCustomLib(
316  NvDsInferCudaEngineGetFcnDeprecated cudaEngineGetDeprecatedFcn,
317  NvDsInferEngineCreateCustomFunc cudaEngineGetFcn,
318  const NvDsInferContextInitParams& initParams,
319  NvDsInferNetworkMode &networkMode);
320 
321 
322  /* config builder options */
323  NvDsInferStatus configCommonOptions(BuildParams& params);
324  NvDsInferStatus configImplicitOptions(ImplicitBuildParams& params);
325  NvDsInferStatus configExplicitOptions(ExplicitBuildParams& params);
326 
327  std::unique_ptr<BuildParams> createImplicitParams(
328  const NvDsInferContextInitParams& initParams);
329  std::unique_ptr<BuildParams> createDynamicParams(
330  const NvDsInferContextInitParams& initParams);
331  void initCommonParams(
332  BuildParams& params, const NvDsInferContextInitParams& initParams);
333 
334  DISABLE_CLASS_COPY(TrtModelBuilder);
335 
336  int m_GpuId = 0;
337  nvinfer1::ILogger& m_Logger;
338  std::shared_ptr<DlLibHandle> m_DlLib;
339  std::shared_ptr<BaseModelParser> m_Parser;
340  std::unique_ptr<BuildParams> m_Options;
341  std::unique_ptr<nvinfer1::IBuilder> m_Builder;
342  std::unique_ptr<nvinfer1::IBuilderConfig> m_BuilderConfig;
343  std::unique_ptr<nvinfer1::INetworkDefinition> m_Network;
344  std::shared_ptr<nvinfer1::IInt8Calibrator> m_Int8Calibrator;
345 
346  friend class BuildParams;
347  friend class ImplicitBuildParams;
348  friend class ExplicitBuildParams;
349 
350  friend bool ::NvDsInferCudaEngineGetFromTltModel( nvinfer1::IBuilder * const builder,
351  nvinfer1::IBuilderConfig * const builderConfig,
352  const NvDsInferContextInitParams * const initParams,
353  nvinfer1::DataType dataType,
354  nvinfer1::ICudaEngine *& cudaEngine);
355 };
356 
357 } // end of namespace nvdsinfer
358 
359 #endif
nvdsinfer::OnnxModelParser::~OnnxModelParser
~OnnxModelParser() override=default
nvdsinfer::OnnxModelParser::hasFullDimsSupported
bool hasFullDimsSupported() const override
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:88
nvdsinfer::CustomModelParser::isValid
bool isValid() const override
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:112
nvdsinfer::ProfileDims
std::array< nvinfer1::Dims, nvinfer1::EnumMax< nvinfer1::OptProfileSelector >()> ProfileDims
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:175
nvdsinfer::TrtEngine::getLayerInfo
NvDsInferStatus getLayerInfo(int idx, NvDsInferLayerInfo &layer)
nvdsinfer::TrtEngine::getImplicitLayersInfo
NvDsInferStatus getImplicitLayersInfo(std::vector< NvDsInferBatchDimsLayerInfo > &layersInfo)
nvdsinfer::BuildParams::sanityCheck
virtual bool sanityCheck() const
NvDsInferTensorOrder
NvDsInferTensorOrder
Defines UFF input layer orders.
Definition: sources/includes/nvdsinfer_context.h:183
nvdsinfer::ImplicitBuildParams
Holds build parameters required for implicit batch dimension network.
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:163
nvdsinfer::TrtEngine
Helper class written on top of nvinfer1::ICudaEngine.
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:199
nvdsinfer::safeStr
const char * safeStr(const char *str)
Definition: sources/libs/nvdsinfer/nvdsinfer_func_utils.h:86
nvdsinfer::CustomModelParser::parseModel
NvDsInferStatus parseModel(nvinfer1::INetworkDefinition &network) override
ds3d::DataType
DataType
Definition: sources/includes/ds3d/common/idatatype.h:82
nvdsinfer::BuildParams::workspaceSize
size_t workspaceSize
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:146
NvDsInferCudaEngineGetFromTltModel
bool NvDsInferCudaEngineGetFromTltModel(nvinfer1::IBuilder *const builder, nvinfer1::IBuilderConfig *const builderConfig, const NvDsInferContextInitParams *const initParams, nvinfer1::DataType dataType, nvinfer1::ICudaEngine *&cudaEngine)
Decodes and creates a CUDA engine file from a TLT encoded model.
nvdsinfer::ImplicitBuildParams::maxBatchSize
int maxBatchSize
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:165
nvdsinfer::TrtModelBuilder
Helper class to build models and generate the TensorRT ICudaEngine required for inference.
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:259
nvdsinfer::TrtEngine::printEngineInfo
void printEngineInfo()
nvdsinfer::BaseModelParser::BaseModelParser
BaseModelParser(const NvDsInferContextInitParams &params, const std::shared_ptr< DlLibHandle > &dllib)
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:59
nvdsinfer::BuildParams::int8CalibrationFilePath
std::string int8CalibrationFilePath
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:148
nvdsinfer::CustomModelParser::~CustomModelParser
~CustomModelParser()
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:110
nvdsinfer::BuildParams::dlaCore
int dlaCore
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:149
nvdsinfer::TrtModelBuilder::serializeEngine
NvDsInferStatus serializeEngine(const std::string &path, nvinfer1::ICudaEngine &engine)
nvdsinfer::BuildParams::networkMode
NvDsInferNetworkMode networkMode
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:147
NvDsInferNetworkMode
NvDsInferNetworkMode
Defines internal data formats used by the inference engine.
Definition: sources/includes/nvdsinfer_context.h:127
nvdsinfer
Definition: sources/includes/nvdsinfer_logger.h:59
nvdsinfer::BuildParams::TensorIOFormat
std::tuple< nvinfer1::DataType, nvinfer1::TensorFormats > TensorIOFormat
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:142
nvdsinfer::TrtModelBuilder::~TrtModelBuilder
~TrtModelBuilder()
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:265
NvDsInferNetworkMode_FP32
@ NvDsInferNetworkMode_FP32
Definition: sources/includes/nvdsinfer_context.h:129
nvdsinfer::BuildParams::layerDevicePrecisions
std::unordered_map< std::string, LayerDevicePrecision > layerDevicePrecisions
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:152
nvdsinfer::NvDsInferCudaEngineGetFcnDeprecated
decltype(&NvDsInferCudaEngineGet) NvDsInferCudaEngineGetFcnDeprecated
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:48
nvdsinfer::TrtEngine::engine
nvinfer1::ICudaEngine & engine()
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:223
nvdsinfer::ExplicitBuildParams::optBatchSize
int optBatchSize
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:187
nvdsinfer::TrtEngine::hasDla
bool hasDla() const
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:212
nvdsinfer::BaseModelParser::isValid
virtual bool isValid() const =0
nvdsinfer::TrtModelBuilder::TrtModelBuilder
TrtModelBuilder(int gpuId, nvinfer1::ILogger &logger, const std::shared_ptr< DlLibHandle > &dlHandle=nullptr, bool isEngineFile=false)
NvDsInferLayerInfo
Holds information about one layer in the model.
Definition: sources/includes/nvdsinfer.h:96
nvdsinfer::TrtModelBuilder::deserializeEngine
std::unique_ptr< TrtEngine > deserializeEngine(const std::string &path, int dla=-1)
NvDsInferEngineCreateCustomFunc
bool(* NvDsInferEngineCreateCustomFunc)(nvinfer1::IBuilder *const builder, nvinfer1::IBuilderConfig *const builderConfig, const NvDsInferContextInitParams *const initParams, nvinfer1::DataType dataType, nvinfer1::ICudaEngine *&cudaEngine)
Type definition for functions that build and return a CudaEngine for custom models.
Definition: sources/includes/nvdsinfer_custom_impl.h:367
nvdsinfer::BaseModelParser::~BaseModelParser
virtual ~BaseModelParser()
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:62
nvdsinfer::BaseModelParser::m_ModelParams
NvDsInferContextInitParams m_ModelParams
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:69
nvdsinfer::ExplicitBuildParams::maxBatchSize
int maxBatchSize
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:188
nvdsinfer::BuildParams::LayerDevicePrecision
std::tuple< nvinfer1::DataType, nvinfer1::DeviceType > LayerDevicePrecision
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:144
nvdsinfer::BuildParams::inputFormats
std::vector< TensorIOFormat > inputFormats
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:150
nvdsinfer::OnnxModelParser::isValid
bool isValid() const override
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:85
nvdsinfer::OnnxModelParser::getModelName
const char * getModelName() const override
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:86
NvDsInferCudaEngineGet
bool NvDsInferCudaEngineGet(nvinfer1::IBuilder *builder, NvDsInferContextInitParams *initParams, nvinfer1::DataType dataType, nvinfer1::ICudaEngine *&cudaEngine) __attribute__((deprecated("Use 'engine-create-func-name' config parameter instead")))
The NvDsInferCudaEngineGet interface has been deprecated and has been replaced by NvDsInferEngineCrea...
NvDsInferTensorOrder_kNCHW
@ NvDsInferTensorOrder_kNCHW
Definition: sources/includes/nvdsinfer_context.h:184
nvdsinfer::OnnxModelParser::OnnxModelParser
OnnxModelParser(const NvDsInferContextInitParams &initParams, const std::shared_ptr< DlLibHandle > &handle=nullptr)
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:80
nvdsinfer::TrtModelBuilder::buildModel
std::unique_ptr< TrtEngine > buildModel(const NvDsInferContextInitParams &initParams, std::string &suggestedPathName)
nvdsinfer::TrtEngine::getDlaCore
int getDlaCore() const
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:213
nvdsinfer_func_utils.h
nvdsinfer::BaseModelParser
ModelParser base.
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:56
_NvDsInferContextInitParams
Holds the initialization parameters required for the NvDsInferContext interface.
Definition: sources/includes/nvdsinfer_context.h:246
nvdsinfer::BuildParams::outputFormats
std::unordered_map< std::string, TensorIOFormat > outputFormats
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:151
nvdsinfer::BuildParams::~BuildParams
virtual ~BuildParams()
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:155
nvdsinfer::BuildParams::configBuilder
virtual NvDsInferStatus configBuilder(TrtModelBuilder &builder)=0
nvdsinfer::TrtEngine::getFullDimsLayersInfo
NvDsInferStatus getFullDimsLayersInfo(int profileIdx, std::vector< NvDsInferBatchDimsLayerInfo > &layersInfo)
nvdsinfer::CustomModelParser::getModelName
const char * getModelName() const override
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:117
nvdsinfer::TrtEngine::operator->
nvinfer1::ICudaEngine * operator->()
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:229
nvdsinfer::ExplicitBuildParams::inputProfileDims
std::vector< ProfileDims > inputProfileDims
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:185
nvdsinfer::ExplicitBuildParams
Holds build parameters required for full dimensions network.
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:180
nvdsinfer::BaseModelParser::m_LibHandle
std::shared_ptr< DlLibHandle > m_LibHandle
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:70
nvdsinfer::BuildParams
Holds build parameters common to implicit batch dimension/full dimension networks.
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:139
nvdsinfer::ExplicitBuildParams::inputOrder
NvDsInferTensorOrder inputOrder
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:189
nvdsinfer::kWorkSpaceSize
static const size_t kWorkSpaceSize
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:50
nvdsinfer::CustomModelParser::CustomModelParser
CustomModelParser(const NvDsInferContextInitParams &initParams, const std::shared_ptr< DlLibHandle > &handle)
nvdsinfer::TrtEngine::~TrtEngine
~TrtEngine()
nvdsinfer::OnnxModelParser::parseModel
NvDsInferStatus parseModel(nvinfer1::INetworkDefinition &network) override
nvdsinfer::OnnxModelParser::m_OnnxParser
std::unique_ptr< nvonnxparser::IParser > m_OnnxParser
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:94
nvdsinfer::ExplicitBuildParams::minBatchSize
int minBatchSize
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:186
nvdsinfer::ImplicitBuildParams::inputDims
std::vector< nvinfer1::Dims > inputDims
Definition: sources/libs/nvdsinfer/nvdsinfer_model_builder.h:166
nvdsinfer::CustomModelParser::hasFullDimsSupported
bool hasFullDimsSupported() const override
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:123
nvdsinfer::TrtEngine::TrtEngine
TrtEngine(std::unique_ptr< nvinfer1::ICudaEngine > &&engine, int dlaCore=-1)
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:202
nvdsinfer::TrtModelBuilder::setInt8Calibrator
void setInt8Calibrator(std::unique_ptr< nvinfer1::IInt8Calibrator > &&calibrator)
Definition: 9.1/sources/libs/nvdsinfer/nvdsinfer_model_builder.h:269
NvDsInferStatus
NvDsInferStatus
Enum for the status codes returned by NvDsInferContext.
Definition: sources/includes/nvdsinfer.h:231