TensorRT 10.15.1
NvInferImpl.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: Copyright (c) 1993-2025 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 NV_INFER_IMPL_H
19#define NV_INFER_IMPL_H
20
21#include "NvInferLegacyDims.h"
23
24// @cond SuppressDoxyWarnings
25
26namespace nvinfer1
27{
28
29class ILogger;
30
31namespace v_1_0
32{
34} // namespace v_1_0
36
37namespace v_1_0
38{
40} // namespace v_1_0
42
43namespace v_1_0
44{
45class IProfiler;
46} // namespace v_1_0
48
49namespace v_1_0
50{
52} // namespace v_1_0
54
55namespace v_1_0
56{
57class IDebugListener;
58} // namespace v_1_0
60
61class IActivationLayer;
62class IAlgorithm;
63class IAlgorithmContext;
64class IAlgorithmIOInfo;
65class IAlgorithmVariant;
66class IAssertionLayer;
67class IAttention;
68class IBuilder;
69class IBuilderConfig;
70class IConcatenationLayer;
71class IConditionLayer;
72class IConstantLayer;
73class IConvolutionLayer;
74class ICudaEngine;
75class ICumulativeLayer;
76class IDeconvolutionLayer;
77class IDequantizeLayer;
78class IDimensionExpr;
79class IDynamicQuantizeLayer;
80class IEinsumLayer;
81class IElementWiseLayer;
82class IEngineInspector;
83class IExecutionContext;
84class IFillLayer;
85class IGatherLayer;
86class IGridSampleLayer;
87class IHostMemory;
88class IIdentityLayer;
89class ICastLayer;
90class IIfConditional;
91class IIfConditionalInputLayer;
92class IIfConditionalOutputLayer;
93class IInt8Calibrator;
94class IIteratorLayer;
95class IKVCacheUpdateLayer;
96class ILayer;
97class ILoop;
98class ILoopOutputLayer;
99class ILRNLayer;
100class IMatrixMultiplyLayer;
101class INetworkDefinition;
102class INormalizationLayer;
103class INMSLayer;
104class INonZeroLayer;
105class IOneHotLayer;
106class IOptimizationProfile;
107class IPaddingLayer;
108class IParametricReLULayer;
109class IPlugin;
110class IPluginExt;
111class IPluginFactory;
112class IPluginLayer;
113class IPluginRegistry;
114class IPluginV2Layer;
115class IRotaryEmbeddingLayer;
116class IRuntimeConfig;
117
118namespace v_1_0
119{
120class IPluginV3;
121} // namespace v_1_0
123
124namespace v_1_0
125{
126class IStreamReader;
127class IStreamWriter;
128} // namespace v_1_0
131namespace v_1_0
132{
133class IStreamReaderV2;
134} // namespace v_1_0
136
137class IPluginV3Layer;
138class IPoolingLayer;
139class IQuantizeLayer;
140class IRaggedSoftMaxLayer;
141class IRecurrenceLayer;
142class IReduceLayer;
143class IRefitter;
144class IResizeLayer;
145class IReverseSequenceLayer;
146class IRuntime;
147class IScaleLayer;
148class IScatterLayer;
149class ISelectLayer;
150class ISerializationConfig;
151class IShapeLayer;
152class IShuffleLayer;
153class ISliceLayer;
154class ISoftMaxLayer;
155class ISqueezeLayer;
156class ITensor;
157
158namespace v_1_0
159{
160struct TimingCacheKey;
161struct TimingCacheValue;
162} // namespace v_1_0
163using TimingCacheKey = v_1_0::TimingCacheKey;
164using TimingCacheValue = v_1_0::TimingCacheValue;
165
166class ITimingCache;
167class ITopKLayer;
168class ITripLimitLayer;
169class IUnaryLayer;
170class IUnsqueezeLayer;
171struct Permutation;
172class Weights;
173
174enum class ActivationType : int32_t;
175enum class AttentionNormalizationOp : int32_t;
176enum class BoundingBoxFormat : int32_t;
177enum class BuilderFlag : int32_t;
178enum class CalibrationAlgoType : int32_t;
179enum class CumulativeOperation : int32_t;
180enum class DeviceType : int32_t;
181enum class DimensionOperation : int32_t;
182enum class ElementWiseOperation : int32_t;
183enum class EngineCapability : int32_t;
184enum class FillOperation : int32_t;
185enum class GatherMode : int32_t;
186enum class KVCacheMode : int32_t;
187enum class LayerInformationFormat : int32_t;
188enum class LayerType : int32_t;
189enum class LoopOutput : int32_t;
190enum class MatrixOperation : int32_t;
191enum class MemoryPoolType : int32_t;
192enum class NetworkDefinitionCreationFlag : int32_t;
193enum class OptProfileSelector : int32_t;
194enum class PaddingMode : int32_t;
195enum class PoolingType : int32_t;
196enum class ProfilingVerbosity : int32_t;
197enum class QuantizationFlag : int32_t;
198enum class ReduceOperation : int32_t;
199enum class ResizeCoordinateTransformation : int32_t;
200enum class InterpolationMode : int32_t;
201enum class ResizeRoundMode : int32_t;
202enum class ResizeSelector : int32_t;
203enum class ScaleMode : int32_t;
204enum class ScatterMode : int32_t;
205enum class SampleMode : int32_t;
206enum class SerializationFlag : int32_t;
207enum class TensorIOMode : int32_t;
208enum class TensorLocation : int32_t;
209enum class TopKOperation : int32_t;
210enum class TripLimit : int32_t;
211enum class UnaryOperation : int32_t;
212enum class WeightsRole : int32_t;
213enum class PreviewFeature : int32_t;
214enum class HardwareCompatibilityLevel : int32_t;
215enum class ExecutionContextAllocationStrategy : int32_t;
216enum class RuntimePlatform : int32_t;
217enum class TilingOptimizationLevel : int32_t;
218enum class EngineStat : int32_t;
219
220
221using TacticSources = uint32_t;
222using TensorFormats = uint32_t;
223using BuilderFlags = uint32_t;
224using NetworkDefinitionCreationFlags = uint32_t;
225using QuantizationFlags = uint32_t;
226using TempfileControlFlags = uint32_t;
227using SerializationFlags = uint32_t;
228
236
237namespace apiv
238{
239
240class VRoot
241{
242public:
243 virtual ~VRoot() noexcept = default;
244};
245
246class VHostMemory : public VRoot
247{
248public:
249 virtual void* data() const noexcept = 0;
250 virtual std::size_t size() const noexcept = 0;
251 virtual DataType type() const noexcept = 0;
252};
253
254class VDimensionExpr : public VRoot
255{
256public:
257 virtual bool isConstant() const = 0;
258 virtual int64_t getConstantValue() const = 0;
259 virtual bool isSizeTensor() const = 0;
260};
261
262class VExprBuilder : public VRoot
263{
264public:
265 virtual IDimensionExpr const* constant(int64_t value) = 0;
266 virtual IDimensionExpr const* operation(
267 DimensionOperation op, IDimensionExpr const& first, IDimensionExpr const& second)
268 = 0;
269 virtual IDimensionExpr const* declareSizeTensor(
270 int32_t outputIndex, IDimensionExpr const& opt, IDimensionExpr const& upper)
271 = 0;
272};
273
274class VRuntime : public VRoot
275{
276public:
277 virtual IRuntime* getPImpl() noexcept = 0;
278 virtual nvinfer1::ICudaEngine* deserializeCudaEngine(void const* blob, std::size_t size) noexcept = 0;
279 virtual nvinfer1::ICudaEngine* deserializeCudaEngine(IStreamReader& streamReader) noexcept = 0;
280 virtual void setDLACore(int32_t dlaCore) noexcept = 0;
281 virtual int32_t getDLACore() const noexcept = 0;
282 virtual int32_t getNbDLACores() const noexcept = 0;
283 virtual void setGpuAllocator(IGpuAllocator* allocator) noexcept = 0;
284 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
285 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
286 virtual ILogger* getLogger() const noexcept = 0;
287 virtual bool setMaxThreads(int32_t maxThreads) noexcept = 0;
288 virtual int32_t getMaxThreads() const noexcept = 0;
289 virtual void setTemporaryDirectory(char const*) noexcept = 0;
290 virtual char const* getTemporaryDirectory() const noexcept = 0;
291 virtual void setTempfileControlFlags(TempfileControlFlags) noexcept = 0;
292 virtual TempfileControlFlags getTempfileControlFlags() const noexcept = 0;
293 virtual IPluginRegistry& getPluginRegistry() noexcept = 0;
294 virtual void setPluginRegistryParent(IPluginRegistry* parent) noexcept = 0;
295 virtual IRuntime* loadRuntime(char const* path) noexcept = 0;
296 virtual void setEngineHostCodeAllowed(bool allowed) noexcept = 0;
297 virtual bool getEngineHostCodeAllowed() const noexcept = 0;
298 // Added in TensorRT version 10.7
299 virtual nvinfer1::ICudaEngine* deserializeCudaEngineV2(IStreamReaderV2& streamReader) noexcept = 0;
300};
301
302class VRefitter : public VRoot
303{
304public:
305 virtual IRefitter* getPImpl() noexcept = 0;
306 virtual bool setWeights(char const* layerName, WeightsRole role, const Weights weights) noexcept = 0;
307 virtual bool refitCudaEngine() noexcept = 0;
308 virtual int32_t getMissing(int32_t size, char const** layerNames, WeightsRole* roles) noexcept = 0;
309 virtual int32_t getAll(int32_t size, char const** layerNames, WeightsRole* roles) noexcept = 0;
310 virtual bool setDynamicRange(char const* tensorName, float min, float max) noexcept = 0;
311 virtual float getDynamicRangeMin(char const* tensorName) const noexcept = 0;
312 virtual float getDynamicRangeMax(char const* tensorName) const noexcept = 0;
313 virtual int32_t getTensorsWithDynamicRange(int32_t size, char const** tensorNames) const noexcept = 0;
314 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
315 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
316 virtual bool setNamedWeights(char const* name, Weights weights) noexcept = 0;
317 virtual int32_t getMissingWeights(int32_t size, char const** weightsNames) noexcept = 0;
318 virtual int32_t getAllWeights(int32_t size, char const** weightsNames) noexcept = 0;
319 virtual ILogger* getLogger() const noexcept = 0;
320 virtual bool setMaxThreads(int32_t maxThreads) noexcept = 0;
321 virtual int32_t getMaxThreads() const noexcept = 0;
322 virtual bool setNamedWeightsWithLocation(char const* name, Weights weights, TensorLocation location) noexcept = 0;
323 virtual Weights getNamedWeights(char const* weightsName) const noexcept = 0;
324 virtual TensorLocation getWeightsLocation(char const* weightsName) const noexcept = 0;
325 virtual bool unsetNamedWeights(char const* weightsName) noexcept = 0;
326 virtual void setWeightsValidation(bool weightsValidation) noexcept = 0;
327 virtual bool getWeightsValidation() const noexcept = 0;
328 virtual bool refitCudaEngineAsync(cudaStream_t stream) noexcept = 0;
329 virtual Weights getWeightsPrototype(char const* weightsName) const noexcept = 0;
330};
331
332class VOptimizationProfile : public VRoot
333{
334public:
335 virtual bool setDimensions(char const* inputName, OptProfileSelector select, Dims const& dims) noexcept = 0;
336 virtual Dims getDimensions(char const* inputName, OptProfileSelector select) const noexcept = 0;
337 virtual bool setShapeValues(
338 char const* inputName, OptProfileSelector select, int32_t const* values, int32_t nbValues) noexcept = 0;
339 virtual int32_t getNbShapeValues(char const* inputName) const noexcept = 0;
340 virtual int32_t const* getShapeValues(char const* inputName, OptProfileSelector select) const noexcept = 0;
341 virtual bool setExtraMemoryTarget(float target) noexcept = 0;
342 virtual float getExtraMemoryTarget() const noexcept = 0;
343 virtual bool isValid() const noexcept = 0;
344 // Added in TensorRT 10.11
345 TRT_NODISCARD virtual bool setShapeValuesV2(
346 char const* inputName, OptProfileSelector select, int64_t const* values, int32_t nbValues) noexcept = 0;
347 TRT_NODISCARD virtual int64_t const* getShapeValuesV2(
348 char const* inputName, OptProfileSelector select) const noexcept = 0;
349};
350
351class VCudaEngine : public VRoot
352{
353public:
354 virtual ICudaEngine* getPImpl() noexcept = 0;
355 virtual int32_t getNbLayers() const noexcept = 0;
356 virtual IHostMemory* serialize() const noexcept = 0;
357 virtual IExecutionContext* createExecutionContext(ExecutionContextAllocationStrategy strategy) noexcept = 0;
358 virtual IExecutionContext* createExecutionContextWithoutDeviceMemory() noexcept = 0;
359 virtual size_t getDeviceMemorySize() const noexcept = 0;
360 virtual bool isRefittable() const noexcept = 0;
361 virtual char const* getName() const noexcept = 0;
362 virtual int32_t getNbOptimizationProfiles() const noexcept = 0;
363 virtual int32_t const* getProfileTensorValues(
364 char const* tensorName, int32_t profileIndex, OptProfileSelector select) const noexcept = 0;
365 virtual EngineCapability getEngineCapability() const noexcept = 0;
366 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
367 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
368 virtual bool hasImplicitBatchDimension() const noexcept = 0;
369 virtual TacticSources getTacticSources() const noexcept = 0;
370 virtual ProfilingVerbosity getProfilingVerbosity() const noexcept = 0;
371 virtual IEngineInspector* createEngineInspector() const noexcept = 0;
372 virtual Dims getTensorShape(char const* tensorName) const noexcept = 0;
373 virtual DataType getTensorDataType(char const* tensorName) const noexcept = 0;
374 virtual TensorLocation getTensorLocation(char const* tensorName) const noexcept = 0;
375 virtual bool isShapeInferenceIO(char const* tensorName) const noexcept = 0;
376 virtual TensorIOMode getTensorIOMode(char const* tensorName) const noexcept = 0;
377 virtual int32_t getTensorBytesPerComponent(char const* tensorName) const noexcept = 0;
378 virtual int32_t getTensorComponentsPerElement(char const* tensorName) const noexcept = 0;
379 virtual TensorFormat getTensorFormat(char const* tensorName) const noexcept = 0;
380 virtual char const* getTensorFormatDesc(char const* tensorName) const noexcept = 0;
381 virtual int32_t getTensorVectorizedDim(char const* tensorName) const noexcept = 0;
382 virtual Dims getProfileShape(
383 char const* tensorName, int32_t profileIndex, OptProfileSelector select) const noexcept = 0;
384 virtual int32_t getNbIOTensors() const noexcept = 0;
385 virtual char const* getIOTensorName(int32_t index) const noexcept = 0;
386 virtual HardwareCompatibilityLevel getHardwareCompatibilityLevel() const noexcept = 0;
387 virtual int32_t getNbAuxStreams() const noexcept = 0;
388
389 virtual int32_t getTensorBytesPerComponentV2(char const* tensorName, int32_t profileIndex) const noexcept = 0;
390 virtual int32_t getTensorComponentsPerElementV2(char const* tensorName, int32_t profileIndex) const noexcept = 0;
391 virtual TensorFormat getTensorFormatV2(char const* tensorName, int32_t profileIndex) const noexcept = 0;
392 virtual char const* getTensorFormatDescV2(char const* tensorName, int32_t profileIndex) const noexcept = 0;
393 virtual int32_t getTensorVectorizedDimV2(char const* tensorName, int32_t profileIndex) const noexcept = 0;
394
395 virtual ISerializationConfig* createSerializationConfig() noexcept = 0;
396 virtual IHostMemory* serializeWithConfig(ISerializationConfig& config) const noexcept = 0;
397
398 virtual size_t getDeviceMemorySizeForProfile(int32_t profileIndex) const noexcept = 0;
399 virtual IRefitter* createRefitter(ILogger& logger) noexcept = 0;
400
401 virtual bool setWeightStreamingBudget(int64_t gpuMemoryBudget) noexcept = 0;
402 virtual int64_t getWeightStreamingBudget() const noexcept = 0;
403 virtual int64_t getMinimumWeightStreamingBudget() const noexcept = 0;
404 virtual int64_t getStreamableWeightsSize() const noexcept = 0;
405
406 virtual bool isDebugTensor(char const* name) const noexcept = 0;
407
408 // Added in TensorRT 10.1
409 virtual bool setWeightStreamingBudgetV2(int64_t gpuMemoryBudget) noexcept = 0;
410 virtual int64_t getWeightStreamingBudgetV2() const noexcept = 0;
411 virtual int64_t getWeightStreamingAutomaticBudget() const noexcept = 0;
412 virtual int64_t getWeightStreamingScratchMemorySize() const noexcept = 0;
413 virtual int64_t getDeviceMemorySizeV2() const noexcept = 0;
414 virtual int64_t getDeviceMemorySizeForProfileV2(int32_t profileIndex) const noexcept = 0;
415 // Added in TensorRT 10.11
416 TRT_NODISCARD virtual int64_t const* getProfileTensorValuesV2(
417 char const* tensorName, int32_t profileIndex, OptProfileSelector select) const noexcept = 0;
418 TRT_NODISCARD virtual IExecutionContext* createExecutionContextWithRuntimeConfig(
419 IRuntimeConfig* runtimeConfig) noexcept = 0;
420 TRT_NODISCARD virtual IRuntimeConfig* createRuntimeConfig() noexcept = 0;
421 TRT_NODISCARD virtual int64_t getEngineStat(EngineStat stat) const noexcept = 0;
422 // Added in TensorRT 10.15
423 TRT_NODISCARD virtual char const* getAliasedInputTensor(char const* tensorName) const noexcept = 0;
424};
425
426class VExecutionContext : public VRoot
427{
428public:
429 virtual IExecutionContext* getPImpl() noexcept = 0;
430 virtual void setDebugSync(bool sync) noexcept = 0;
431 virtual bool getDebugSync() const noexcept = 0;
432 virtual void setProfiler(IProfiler*) noexcept = 0;
433 virtual IProfiler* getProfiler() const noexcept = 0;
434 virtual ICudaEngine const& getEngine() const noexcept = 0;
435 virtual void setName(char const* name) noexcept = 0;
436 virtual char const* getName() const noexcept = 0;
437 virtual void setDeviceMemory(void* memory) noexcept = 0;
438 virtual int32_t getOptimizationProfile() const noexcept = 0;
439 virtual bool allInputDimensionsSpecified() const noexcept = 0;
440 virtual bool allInputShapesSpecified() const noexcept = 0;
441 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
442 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
443 virtual bool executeV2(void* const* bindings) noexcept = 0;
444 virtual bool setOptimizationProfileAsync(int32_t profileIndex, cudaStream_t stream) noexcept = 0;
445 virtual void setEnqueueEmitsProfile(bool enqueueEmitsProfile) noexcept = 0;
446 virtual bool getEnqueueEmitsProfile() const noexcept = 0;
447 virtual bool reportToProfiler() const noexcept = 0;
448 virtual bool setInputShape(char const* tensorName, Dims const& dims) noexcept = 0;
449 virtual Dims getTensorShape(char const* tensorName) const noexcept = 0;
450 virtual Dims getTensorStrides(char const* tensorName) const noexcept = 0;
451 virtual bool setTensorAddress(char const* tensorName, void* data) noexcept = 0;
452 virtual void const* getTensorAddress(char const* tensorName) const noexcept = 0;
453 virtual bool setInputTensorAddress(char const* tensorName, void const* data) noexcept = 0;
454 virtual bool setOutputTensorAddress(char const* tensorName, void* data) noexcept = 0;
455 virtual int32_t inferShapes(int32_t nbMaxNames, char const** tensorNames) noexcept = 0;
456 virtual bool setInputConsumedEvent(cudaEvent_t event) noexcept = 0;
457 virtual cudaEvent_t getInputConsumedEvent() const noexcept = 0;
458 virtual void* getOutputTensorAddress(char const* tensorName) const noexcept = 0;
459 virtual bool setOutputAllocator(char const* tensorName, IOutputAllocator* outputAllocator) noexcept = 0;
460 virtual IOutputAllocator* getOutputAllocator(char const* name) noexcept = 0;
461 virtual int64_t getMaxOutputSize(char const* tensorName) const noexcept = 0;
462 virtual bool setTemporaryStorageAllocator(IGpuAllocator* allocator) noexcept = 0;
463 virtual IGpuAllocator* getTemporaryStorageAllocator() const noexcept = 0;
464 virtual bool enqueueV3(cudaStream_t stream) noexcept = 0;
465 virtual void setPersistentCacheLimit(size_t size) noexcept = 0;
466 virtual size_t getPersistentCacheLimit() const noexcept = 0;
467 virtual bool setNvtxVerbosity(ProfilingVerbosity verbosity) noexcept = 0;
468 virtual ProfilingVerbosity getNvtxVerbosity() const noexcept = 0;
469 virtual void setAuxStreams(cudaStream_t* auxStreams, int32_t nbStreams) noexcept = 0;
470 virtual bool setDebugListener(IDebugListener* listener) noexcept = 0;
471 virtual IDebugListener* getDebugListener() noexcept = 0;
472 virtual bool setTensorDebugState(char const* name, bool flag) noexcept = 0;
473 virtual bool getDebugState(char const* name) const noexcept = 0;
474 virtual bool setAllTensorsDebugState(bool flag) noexcept = 0;
475 virtual size_t updateDeviceMemorySizeForShapes() noexcept = 0;
476 virtual void setDeviceMemoryV2(void* memory, int64_t size) noexcept = 0;
477 TRT_NODISCARD virtual IRuntimeConfig* getRuntimeConfig() const noexcept = 0;
478 virtual bool setUnfusedTensorsDebugState(bool flag) noexcept = 0;
479 virtual bool getUnfusedTensorsDebugState() const noexcept = 0;
480#if ENABLE_FEATURE_DISABLE_RUNTIME_ALLOCATION
481 virtual bool isStreamCapturable(cudaStream_t stream) const noexcept = 0;
482#endif // ENABLE_FEATURE_DISABLE_RUNTIME_ALLOCATION
483};
484
485class VEngineInspector : public VRoot
486{
487public:
488 virtual IEngineInspector* getPImpl() noexcept = 0;
489 virtual bool setExecutionContext(IExecutionContext const* context) noexcept = 0;
490 virtual IExecutionContext const* getExecutionContext() const noexcept = 0;
491 virtual char const* getLayerInformation(int32_t layerIndex, LayerInformationFormat format) const noexcept = 0;
492 virtual char const* getEngineInformation(LayerInformationFormat format) const noexcept = 0;
493 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
494 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
495};
496
497class VTensor : public VRoot
498{
499public:
500 virtual void setName(char const* name) noexcept = 0;
501 virtual char const* getName() const noexcept = 0;
502 virtual void setDimensions(Dims const& dimensions) noexcept = 0;
503 virtual Dims getDimensions() const noexcept = 0;
504 virtual void setType(DataType type) noexcept = 0;
505 virtual DataType getType() const noexcept = 0;
506 virtual bool setDynamicRange(float min, float max) noexcept = 0;
507 virtual bool isNetworkInput() const noexcept = 0;
508 virtual bool isNetworkOutput() const noexcept = 0;
509 virtual void setBroadcastAcrossBatch(bool broadcastAcrossBatch) noexcept = 0;
510 virtual bool getBroadcastAcrossBatch() const noexcept = 0;
511 virtual TensorLocation getLocation() const noexcept = 0;
512 virtual void setLocation(TensorLocation location) noexcept = 0;
513 virtual bool dynamicRangeIsSet() const noexcept = 0;
514 virtual void resetDynamicRange() noexcept = 0;
515 virtual float getDynamicRangeMin() const noexcept = 0;
516 virtual float getDynamicRangeMax() const noexcept = 0;
517 virtual void setAllowedFormats(TensorFormats formats) noexcept = 0;
518 virtual TensorFormats getAllowedFormats() const noexcept = 0;
519 virtual bool isShapeTensor() const noexcept = 0;
520 virtual bool isExecutionTensor() const noexcept = 0;
521 virtual void setDimensionName(int32_t index, char const* name) noexcept = 0;
522 virtual char const* getDimensionName(int32_t index) const noexcept = 0;
523};
524
525class VLayer : public VRoot
526{
527public:
528 virtual LayerType getType() const noexcept = 0;
529 virtual void setName(char const* name) noexcept = 0;
530 virtual char const* getName() const noexcept = 0;
531 virtual int32_t getNbInputs() const noexcept = 0;
532 virtual ITensor* getInput(int32_t index) const noexcept = 0;
533 virtual int32_t getNbOutputs() const noexcept = 0;
534 virtual ITensor* getOutput(int32_t index) const noexcept = 0;
535 virtual void setInput(int32_t index, ITensor& tensor) noexcept = 0;
536 virtual void setPrecision(DataType dataType) noexcept = 0;
537 virtual DataType getPrecision() const noexcept = 0;
538 virtual bool precisionIsSet() const noexcept = 0;
539 virtual void resetPrecision() noexcept = 0;
540 virtual void setOutputType(int32_t index, DataType dataType) noexcept = 0;
541 virtual DataType getOutputType(int32_t index) const noexcept = 0;
542 virtual bool outputTypeIsSet(int32_t index) const noexcept = 0;
543 virtual void resetOutputType(int32_t index) noexcept = 0;
544 virtual void setMetadata(char const* docString) noexcept = 0;
545 virtual char const* getMetadata() const noexcept = 0;
546};
547
548class VConvolutionLayer : public VRoot
549{
550public:
551 virtual void setNbOutputMaps(int64_t nbOutputMaps) noexcept = 0;
552 virtual int64_t getNbOutputMaps() const noexcept = 0;
553 virtual void setNbGroups(int64_t nbGroups) noexcept = 0;
554 virtual int64_t getNbGroups() const noexcept = 0;
555 virtual void setKernelWeights(Weights weights) noexcept = 0;
556 virtual Weights getKernelWeights() const noexcept = 0;
557 virtual void setBiasWeights(Weights weights) noexcept = 0;
558 virtual Weights getBiasWeights() const noexcept = 0;
559 virtual void setPrePadding(Dims const& padding) noexcept = 0;
560 virtual Dims getPrePadding() const noexcept = 0;
561 virtual void setPostPadding(Dims const& padding) noexcept = 0;
562 virtual Dims getPostPadding() const noexcept = 0;
563 virtual void setPaddingMode(PaddingMode paddingMode) noexcept = 0;
564 virtual PaddingMode getPaddingMode() const noexcept = 0;
565 virtual void setKernelSizeNd(Dims const& kernelSize) noexcept = 0;
566 virtual Dims getKernelSizeNd() const noexcept = 0;
567 virtual void setStrideNd(Dims const& stride) noexcept = 0;
568 virtual Dims getStrideNd() const noexcept = 0;
569 virtual void setPaddingNd(Dims const& padding) noexcept = 0;
570 virtual Dims getPaddingNd() const noexcept = 0;
571 virtual void setDilationNd(Dims const& dilation) noexcept = 0;
572 virtual Dims getDilationNd() const noexcept = 0;
573};
574
575class VActivationLayer : public VRoot
576{
577public:
578 virtual void setActivationType(ActivationType type) noexcept = 0;
579 virtual ActivationType getActivationType() const noexcept = 0;
580 virtual void setAlpha(float alpha) noexcept = 0;
581 virtual void setBeta(float beta) noexcept = 0;
582 virtual float getAlpha() const noexcept = 0;
583 virtual float getBeta() const noexcept = 0;
584};
585
586class VPoolingLayer : public VRoot
587{
588public:
589 virtual void setPoolingType(PoolingType type) noexcept = 0;
590 virtual PoolingType getPoolingType() const noexcept = 0;
591 virtual void setBlendFactor(float blendFactor) noexcept = 0;
592 virtual float getBlendFactor() const noexcept = 0;
593 virtual void setAverageCountExcludesPadding(bool exclusive) noexcept = 0;
594 virtual bool getAverageCountExcludesPadding() const noexcept = 0;
595 virtual void setPrePadding(Dims const& padding) noexcept = 0;
596 virtual Dims getPrePadding() const noexcept = 0;
597 virtual void setPostPadding(Dims const& padding) noexcept = 0;
598 virtual Dims getPostPadding() const noexcept = 0;
599 virtual void setPaddingMode(PaddingMode paddingMode) noexcept = 0;
600 virtual PaddingMode getPaddingMode() const noexcept = 0;
601 virtual void setWindowSizeNd(Dims const& windowSize) noexcept = 0;
602 virtual Dims getWindowSizeNd() const noexcept = 0;
603 virtual void setStrideNd(Dims const& stride) noexcept = 0;
604 virtual Dims getStrideNd() const noexcept = 0;
605 virtual void setPaddingNd(Dims const& padding) noexcept = 0;
606 virtual Dims getPaddingNd() const noexcept = 0;
607};
608
609class VLRNLayer : public VRoot
610{
611public:
612 virtual void setWindowSize(int64_t windowSize) noexcept = 0;
613 virtual int64_t getWindowSize() const noexcept = 0;
614 virtual void setAlpha(float alpha) noexcept = 0;
615 virtual float getAlpha() const noexcept = 0;
616 virtual void setBeta(float beta) noexcept = 0;
617 virtual float getBeta() const noexcept = 0;
618 virtual void setK(float k) noexcept = 0;
619 virtual float getK() const noexcept = 0;
620};
621
622class VScaleLayer : public VRoot
623{
624public:
625 virtual void setMode(ScaleMode mode) noexcept = 0;
626 virtual ScaleMode getMode() const noexcept = 0;
627 virtual void setShift(Weights shift) noexcept = 0;
628 virtual Weights getShift() const noexcept = 0;
629 virtual void setScale(Weights scale) noexcept = 0;
630 virtual Weights getScale() const noexcept = 0;
631 virtual void setPower(Weights power) noexcept = 0;
632 virtual Weights getPower() const noexcept = 0;
633 virtual int32_t getChannelAxis() const noexcept = 0;
634 virtual void setChannelAxis(int32_t channelAxis) noexcept = 0;
635};
636
637class VSoftMaxLayer : public VRoot
638{
639public:
640 virtual void setAxes(uint32_t axes) noexcept = 0;
641 virtual uint32_t getAxes() const noexcept = 0;
642};
643
644class VConcatenationLayer : public VRoot
645{
646public:
647 virtual void setAxis(int32_t axis) noexcept = 0;
648 virtual int32_t getAxis() const noexcept = 0;
649};
650
651class VDeconvolutionLayer : public VRoot
652{
653public:
654 virtual void setNbOutputMaps(int64_t nbOutputMaps) noexcept = 0;
655 virtual int64_t getNbOutputMaps() const noexcept = 0;
656 virtual void setNbGroups(int64_t nbGroups) noexcept = 0;
657 virtual int64_t getNbGroups() const noexcept = 0;
658 virtual void setKernelWeights(Weights weights) noexcept = 0;
659 virtual Weights getKernelWeights() const noexcept = 0;
660 virtual void setBiasWeights(Weights weights) noexcept = 0;
661 virtual Weights getBiasWeights() const noexcept = 0;
662 virtual void setPrePadding(Dims const& padding) noexcept = 0;
663 virtual Dims getPrePadding() const noexcept = 0;
664 virtual void setPostPadding(Dims const& padding) noexcept = 0;
665 virtual Dims getPostPadding() const noexcept = 0;
666 virtual void setPaddingMode(PaddingMode paddingMode) noexcept = 0;
667 virtual PaddingMode getPaddingMode() const noexcept = 0;
668 virtual void setKernelSizeNd(Dims const& kernelSize) noexcept = 0;
669 virtual Dims getKernelSizeNd() const noexcept = 0;
670 virtual void setStrideNd(Dims const& stride) noexcept = 0;
671 virtual Dims getStrideNd() const noexcept = 0;
672 virtual void setPaddingNd(Dims const& padding) noexcept = 0;
673 virtual Dims getPaddingNd() const noexcept = 0;
674 virtual void setDilationNd(Dims const& dilation) noexcept = 0;
675 virtual Dims getDilationNd() const noexcept = 0;
676};
677
678class VElementWiseLayer : public VRoot
679{
680public:
681 virtual void setOperation(ElementWiseOperation op) noexcept = 0;
682 virtual ElementWiseOperation getOperation() const noexcept = 0;
683};
684
685class VGatherLayer : public VRoot
686{
687public:
688 virtual void setGatherAxis(int32_t axis) noexcept = 0;
689 virtual int32_t getGatherAxis() const noexcept = 0;
690 virtual void setNbElementWiseDims(int32_t k) noexcept = 0;
691 virtual int32_t getNbElementWiseDims() const noexcept = 0;
692 virtual void setMode(GatherMode mode) noexcept = 0;
693 virtual GatherMode getMode() const noexcept = 0;
694};
695
696class VPluginLayer : public VRoot
697{
698public:
699 virtual IPlugin& getPlugin() noexcept = 0;
700};
701
702class VPluginV2Layer : public VRoot
703{
704public:
705 virtual IPluginV2& getPlugin() noexcept = 0;
706};
707
708class VPluginV3Layer : public VRoot
709{
710public:
711 virtual IPluginV3& getPlugin() noexcept = 0;
712};
713
714class VUnaryLayer : public VRoot
715{
716public:
717 virtual void setOperation(UnaryOperation op) noexcept = 0;
718 virtual UnaryOperation getOperation() const noexcept = 0;
719};
720
721class VReduceLayer : public VRoot
722{
723public:
724 virtual void setOperation(ReduceOperation op) noexcept = 0;
725 virtual ReduceOperation getOperation() const noexcept = 0;
726 virtual void setReduceAxes(uint32_t reduceAxes) noexcept = 0;
727 virtual uint32_t getReduceAxes() const noexcept = 0;
728 virtual void setKeepDimensions(bool keepDimensions) noexcept = 0;
729 virtual bool getKeepDimensions() const noexcept = 0;
730};
731
732class VPaddingLayer : public VRoot
733{
734public:
735 virtual void setPrePaddingNd(Dims const& padding) noexcept = 0;
736 virtual Dims getPrePaddingNd() const noexcept = 0;
737 virtual void setPostPaddingNd(Dims const& padding) noexcept = 0;
738 virtual Dims getPostPaddingNd() const noexcept = 0;
739};
740
741class VShuffleLayer : public VRoot
742{
743public:
744 virtual void setFirstTranspose(Permutation const& permutation) noexcept = 0;
745 virtual Permutation const& getFirstTranspose() const noexcept = 0;
746 virtual void setReshapeDimensions(Dims const& dimensions) noexcept = 0;
747 virtual Dims getReshapeDimensions() const noexcept = 0;
748 virtual void setSecondTranspose(Permutation const& permutation) noexcept = 0;
749 virtual Permutation const& getSecondTranspose() const noexcept = 0;
750 virtual void setZeroIsPlaceholder(bool zeroIsPlaceholder) noexcept = 0;
751 virtual bool getZeroIsPlaceholder() const noexcept = 0;
752};
753
754class VSliceLayer : public VRoot
755{
756public:
757 virtual void setStart(Dims const& start) noexcept = 0;
758 virtual Dims getStart() const noexcept = 0;
759 virtual void setSize(Dims const& size) noexcept = 0;
760 virtual Dims getSize() const noexcept = 0;
761 virtual void setStride(Dims const& stride) noexcept = 0;
762 virtual Dims getStride() const noexcept = 0;
763 virtual void setMode(SampleMode mode) noexcept = 0;
764 virtual SampleMode getMode() const noexcept = 0;
765 virtual void setAxes(Dims const& axes) noexcept = 0;
766 virtual Dims getAxes() const noexcept = 0;
767};
768
769class VShapeLayer : public VRoot
770{
771public:
772};
773
774class VTopKLayer : public VRoot
775{
776public:
777 virtual void setOperation(TopKOperation op) noexcept = 0;
778 virtual TopKOperation getOperation() const noexcept = 0;
779 virtual void setK(int32_t k) noexcept = 0;
780 virtual int32_t getK() const noexcept = 0;
781 virtual void setReduceAxes(uint32_t reduceAxes) noexcept = 0;
782 virtual uint32_t getReduceAxes() const noexcept = 0;
783 virtual bool setIndicesType(DataType type) noexcept = 0;
784 virtual DataType getIndicesType() const noexcept = 0;
785};
786
787class VMatrixMultiplyLayer : public VRoot
788{
789public:
790 virtual void setOperation(int32_t index, MatrixOperation op) noexcept = 0;
791 virtual MatrixOperation getOperation(int32_t index) const noexcept = 0;
792};
793
794class VNonZeroLayer : public VRoot
795{
796public:
797 virtual bool setIndicesType(DataType type) noexcept = 0;
798 virtual DataType getIndicesType() const noexcept = 0;
799};
800
801class VRaggedSoftMaxLayer : public VRoot
802{
803public:
804};
805
806class VIdentityLayer : public VRoot
807{
808public:
809};
810
811class VCastLayer : public VRoot
812{
813public:
814 virtual void setToType(DataType toType) noexcept = 0;
815 virtual DataType getToType() const noexcept = 0;
816};
817
818class VConstantLayer : public VRoot
819{
820public:
821 virtual void setWeights(Weights weights) noexcept = 0;
822 virtual Weights getWeights() const noexcept = 0;
823 virtual void setDimensions(Dims const& dimensions) noexcept = 0;
824 virtual Dims getDimensions() const noexcept = 0;
825};
826
827class VParametricReLULayer : public VRoot
828{
829public:
830};
831
832class VResizeLayer : public VRoot
833{
834public:
835 virtual void setOutputDimensions(Dims const& dimensions) noexcept = 0;
836 virtual Dims getOutputDimensions() const noexcept = 0;
837 virtual void setScales(float const* scales, int32_t nbScales) noexcept = 0;
838 virtual int32_t getScales(int32_t size, float* scales) const noexcept = 0;
839 virtual void setResizeMode(InterpolationMode interpolationMode) noexcept = 0;
840 virtual InterpolationMode getResizeMode() const noexcept = 0;
841 virtual void setCoordinateTransformation(ResizeCoordinateTransformation coordTransform) noexcept = 0;
842 virtual ResizeCoordinateTransformation getCoordinateTransformation() const noexcept = 0;
843 virtual void setSelectorForSinglePixel(ResizeSelector selector) noexcept = 0;
844 virtual ResizeSelector getSelectorForSinglePixel() const noexcept = 0;
845 virtual void setNearestRounding(ResizeRoundMode value) noexcept = 0;
846 virtual ResizeRoundMode getNearestRounding() const noexcept = 0;
847 virtual void setCubicCoeff(float value) noexcept = 0;
848 virtual float getCubicCoeff() const noexcept = 0;
849 virtual void setExcludeOutside(bool value) noexcept = 0;
850 virtual bool getExcludeOutside() const noexcept = 0;
851};
852
853class VLoopBoundaryLayer : public VRoot
854{
855public:
856 virtual ILoop* getLoop() const noexcept = 0;
857};
858
859class VRecurrenceLayer : public VRoot
860{
861public:
862};
863
864class VLoopOutputLayer : public VRoot
865{
866public:
867 virtual LoopOutput getLoopOutput() const noexcept = 0;
868 virtual void setAxis(int32_t axis) noexcept = 0;
869 virtual int32_t getAxis() const noexcept = 0;
870};
871
872class VTripLimitLayer : public VRoot
873{
874public:
875 virtual TripLimit getTripLimit() const noexcept = 0;
876};
877
878class VIteratorLayer : public VRoot
879{
880public:
881 virtual void setAxis(int32_t axis) noexcept = 0;
882 virtual int32_t getAxis() const noexcept = 0;
883 virtual void setReverse(bool reverse) noexcept = 0;
884 virtual bool getReverse() const noexcept = 0;
885};
886class VLoop : public VRoot
887{
888public:
889 virtual IRecurrenceLayer* addRecurrence(ITensor& initialValue) noexcept = 0;
890 virtual ITripLimitLayer* addTripLimit(ITensor& tensor, TripLimit limit) noexcept = 0;
891 virtual IIteratorLayer* addIterator(ITensor& tensor, int32_t axis = 0, bool reverse = false) noexcept = 0;
892 virtual ILoopOutputLayer* addLoopOutput(ITensor& tensor, LoopOutput outputKind, int32_t axis = 0) noexcept = 0;
893 virtual void setName(char const* name) noexcept = 0;
894 virtual char const* getName() const noexcept = 0;
895};
896
897class VConditionalBoundaryLayer : public VRoot
898{
899public:
900 virtual IIfConditional* getConditional() const noexcept = 0;
901};
902
903class VConditionLayer : public VRoot
904{
905public:
906};
907
908class VConditionalInputLayer : public VRoot
909{
910public:
911};
912
913class VConditionalOutputLayer : public VRoot
914{
915public:
916};
917
918class VIfConditional : public VRoot
919{
920public:
921 virtual IConditionLayer* setCondition(ITensor& tensor) noexcept = 0;
922 virtual IIfConditionalInputLayer* addInput(ITensor& tensor) noexcept = 0;
923 virtual IIfConditionalOutputLayer* addOutput(ITensor& trueTensor, ITensor& falseTensor) noexcept = 0;
924 virtual void setName(char const* name) noexcept = 0;
925 virtual char const* getName() const noexcept = 0;
926};
927
928class VAttentionBoundaryLayer : public VRoot
929{
930public:
931 virtual IAttention* getAttention() const noexcept = 0;
932};
933
934class VAttentionInputLayer : public VRoot
935{
936public:
937};
938
939class VAttentionOutputLayer : public VRoot
940{
941public:
942};
943
944class VAttention : public VRoot
945{
946public:
947 TRT_NODISCARD virtual bool setInput(int32_t index, ITensor& input) noexcept = 0;
948 TRT_NODISCARD virtual int32_t getNbInputs() const noexcept = 0;
949 TRT_NODISCARD virtual ITensor* getInput(int32_t index) const noexcept = 0;
950 TRT_NODISCARD virtual int32_t getNbOutputs() const noexcept = 0;
951 TRT_NODISCARD virtual ITensor* getOutput(int32_t index) const noexcept = 0;
952 TRT_NODISCARD virtual bool setName(char const* name) noexcept = 0;
953 TRT_NODISCARD virtual char const* getName() const noexcept = 0;
954 TRT_NODISCARD virtual bool setNormalizationOperation(AttentionNormalizationOp op) noexcept = 0;
955 TRT_NODISCARD virtual AttentionNormalizationOp getNormalizationOperation() const noexcept = 0;
956 TRT_NODISCARD virtual bool setCausal(bool isCausal) noexcept = 0;
957 TRT_NODISCARD virtual bool getCausal() const noexcept = 0;
958 TRT_NODISCARD virtual bool setMask(ITensor& mask) noexcept = 0;
959 TRT_NODISCARD virtual ITensor* getMask() const noexcept = 0;
960 TRT_NODISCARD virtual bool setDecomposable(bool decomposable) noexcept = 0;
961 TRT_NODISCARD virtual bool getDecomposable() const noexcept = 0;
962 TRT_NODISCARD virtual bool setNormalizationQuantizeScale(ITensor& tensor) noexcept = 0;
963 TRT_NODISCARD virtual ITensor* getNormalizationQuantizeScale() const noexcept = 0;
964 TRT_NODISCARD virtual bool setNormalizationQuantizeToType(DataType type) noexcept = 0;
965 TRT_NODISCARD virtual DataType getNormalizationQuantizeToType() const noexcept = 0;
966 TRT_NODISCARD virtual bool setMetadata(char const* docString) noexcept = 0;
967 TRT_NODISCARD virtual char const* getMetadata() const noexcept = 0;
968}; // class VAttention
969
970class VSelectLayer : public VRoot
971{
972};
973
974class VAssertionLayer : public VRoot
975{
976public:
977 virtual void setMessage(char const* message) noexcept = 0;
978 virtual char const* getMessage() const noexcept = 0;
979};
980
981class VFillLayer : public VRoot
982{
983public:
984 virtual void setDimensions(Dims const& dimensions) noexcept = 0;
985 virtual Dims getDimensions() const noexcept = 0;
986 virtual void setOperation(FillOperation op) noexcept = 0;
987 virtual FillOperation getOperation() const noexcept = 0;
988 virtual void setAlpha(double alpha) noexcept = 0;
989 virtual double getAlpha() const noexcept = 0;
990 virtual void setBeta(double beta) noexcept = 0;
991 virtual double getBeta() const noexcept = 0;
992 virtual void setAlphaInt64(int64_t alpha) noexcept = 0;
993 virtual int64_t getAlphaInt64() const noexcept = 0;
994 virtual void setBetaInt64(int64_t beta) noexcept = 0;
995 virtual int64_t getBetaInt64() const noexcept = 0;
996 virtual bool isAlphaBetaInt64() const noexcept = 0;
997 virtual DataType getToType() const noexcept = 0;
998 virtual void setToType(DataType toType) noexcept = 0;
999};
1000
1001class VQuantizeLayer : public VRoot
1002{
1003public:
1004 virtual int32_t getAxis() const noexcept = 0;
1005 virtual void setAxis(int32_t axis) noexcept = 0;
1006 virtual DataType getToType() const noexcept = 0;
1007 virtual void setToType(DataType toType) noexcept = 0;
1008 virtual Dims getBlockShape() const noexcept = 0;
1009 virtual bool setBlockShape(Dims const& blockShape) noexcept = 0;
1010};
1011
1012class VDequantizeLayer : public VRoot
1013{
1014public:
1015 virtual int32_t getAxis() const noexcept = 0;
1016 virtual void setAxis(int32_t axis) noexcept = 0;
1017 virtual DataType getToType() const noexcept = 0;
1018 virtual void setToType(DataType toType) noexcept = 0;
1019 virtual Dims getBlockShape() const noexcept = 0;
1020 virtual bool setBlockShape(Dims const& blockShape) noexcept = 0;
1021};
1022
1023class VDynamicQuantizeLayer : public VRoot
1024{
1025public:
1026 TRT_DEPRECATED virtual int32_t getAxis() const noexcept = 0;
1027 TRT_DEPRECATED virtual void setAxis(int32_t axis) noexcept = 0;
1028 TRT_DEPRECATED virtual int32_t getBlockSize() const noexcept = 0;
1029 TRT_DEPRECATED virtual void setBlockSize(int32_t axis) noexcept = 0;
1030 virtual DataType getScaleType() const noexcept = 0;
1031 virtual void setScaleType(DataType axis) noexcept = 0;
1032 virtual DataType getToType() const noexcept = 0;
1033 virtual void setToType(DataType toType) noexcept = 0;
1034 virtual Dims getBlockShape() const noexcept = 0;
1035 virtual void setBlockShape(Dims const& blockShape) noexcept = 0;
1036};
1037
1038class VScatterLayer : public VRoot
1039{
1040public:
1041 virtual void setMode(ScatterMode mode) noexcept = 0;
1042 virtual ScatterMode getMode() const noexcept = 0;
1043 virtual void setAxis(int32_t axis) noexcept = 0;
1044 virtual int32_t getAxis() const noexcept = 0;
1045}; // class VScatterLayer
1046
1047class VEinsumLayer : public VRoot
1048{
1049public:
1050 virtual bool setEquation(char const* equation) noexcept = 0;
1051 virtual char const* getEquation() const noexcept = 0;
1052};
1053
1054class VOneHotLayer : public VRoot
1055{
1056public:
1057 virtual int32_t getAxis() const noexcept = 0;
1058 virtual void setAxis(int32_t axis) noexcept = 0;
1059}; // class VOneHotLayer
1060
1061class VGridSampleLayer : public VRoot
1062{
1063public:
1064 virtual void setInterpolationMode(InterpolationMode mode) noexcept = 0;
1065 virtual InterpolationMode getInterpolationMode() const noexcept = 0;
1066 virtual void setAlignCorners(bool alignCorners) noexcept = 0;
1067 virtual bool getAlignCorners() const noexcept = 0;
1068 virtual bool setSampleMode(SampleMode mode) noexcept = 0;
1069 virtual SampleMode getSampleMode() const noexcept = 0;
1070}; // class VGridSampleLayer
1071
1072class VNMSLayer : public VRoot
1073{
1074public:
1075 virtual void setBoundingBoxFormat(BoundingBoxFormat fmt) noexcept = 0;
1076 virtual BoundingBoxFormat getBoundingBoxFormat() const noexcept = 0;
1077 virtual void setTopKBoxLimit(int32_t limit) noexcept = 0;
1078 virtual int32_t getTopKBoxLimit() const noexcept = 0;
1079 virtual bool setIndicesType(DataType type) noexcept = 0;
1080 virtual DataType getIndicesType() const noexcept = 0;
1081}; // class VNMSLayer
1082
1083class VReverseSequenceLayer : public VRoot
1084{
1085public:
1086 virtual void setBatchAxis(int32_t batchAxis) noexcept = 0;
1087 virtual int32_t getBatchAxis() const noexcept = 0;
1088
1089 virtual void setSequenceAxis(int32_t sequenceAxis) noexcept = 0;
1090 virtual int32_t getSequenceAxis() const noexcept = 0;
1091}; // class VReverseSequenceLayer
1092
1093class VNormalizationLayer : public VRoot
1094{
1095public:
1096 virtual void setEpsilon(float eps) noexcept = 0;
1097 virtual float getEpsilon() const noexcept = 0;
1098 virtual void setAxes(uint32_t axesMask) noexcept = 0;
1099 virtual uint32_t getAxes() const noexcept = 0;
1100 virtual void setNbGroups(int64_t nbGroups) noexcept = 0;
1101 virtual int64_t getNbGroups() const noexcept = 0;
1102 virtual void setComputePrecision(DataType type) noexcept = 0;
1103 virtual DataType getComputePrecision() const noexcept = 0;
1104 virtual bool isV2() const noexcept = 0;
1105}; // class VNormalizationLayer
1106
1107class VSqueezeLayer : public VRoot
1108{
1109};
1110
1111class VUnsqueezeLayer : public VRoot
1112{
1113};
1114
1115class VCumulativeLayer : public VRoot
1116{
1117public:
1118 virtual bool setOperation(CumulativeOperation op) noexcept = 0;
1119 virtual CumulativeOperation getOperation() const noexcept = 0;
1120 virtual void setExclusive(bool exclusive) noexcept = 0;
1121 virtual bool getExclusive() const noexcept = 0;
1122 virtual void setReverse(bool reverse) noexcept = 0;
1123 virtual bool getReverse() const noexcept = 0;
1124}; // class VCumulativeLayer
1125
1126class VRotaryEmbeddingLayer : public VRoot
1127{
1128public:
1129 virtual void setInterleaved(bool interleaved) noexcept = 0;
1130 virtual bool getInterleaved() const noexcept = 0;
1131 virtual bool setRotaryEmbeddingDim(int32_t rotaryEmbeddingDim) noexcept = 0;
1132 virtual int32_t getRotaryEmbeddingDim() const noexcept = 0;
1133 virtual void setInput(int32_t index, ITensor& input) noexcept = 0;
1134}; // class VRotaryEmbeddingLayer
1135
1136class VKVCacheUpdateLayer : public VRoot
1137{
1138public:
1139 TRT_NODISCARD virtual bool setCacheMode(KVCacheMode cacheMode) noexcept = 0;
1140 TRT_NODISCARD virtual KVCacheMode getCacheMode() const noexcept = 0;
1141}; // class VKVCacheUpdateLayer
1142
1143
1144class VNetworkDefinition : public VRoot
1145{
1146public:
1147 virtual ITensor* addInput(char const* name, DataType type, Dims const& dimensions) noexcept = 0;
1148 virtual void markOutput(ITensor& tensor) noexcept = 0;
1149 virtual IActivationLayer* addActivation(ITensor& input, ActivationType type) noexcept = 0;
1150 virtual ILRNLayer* addLRN(ITensor& input, int64_t window, float alpha, float beta, float k) noexcept = 0;
1151 virtual IScaleLayer* addScale(
1152 ITensor& input, ScaleMode mode, Weights shift, Weights scale, Weights power) noexcept = 0;
1153 virtual ISoftMaxLayer* addSoftMax(ITensor& input) noexcept = 0;
1154 virtual IConcatenationLayer* addConcatenation(ITensor* const* inputs, int32_t nbInputs) noexcept = 0;
1155 virtual IElementWiseLayer* addElementWise(ITensor& input1, ITensor& input2, ElementWiseOperation op) noexcept = 0;
1156 virtual IUnaryLayer* addUnary(ITensor& input, UnaryOperation operation) noexcept = 0;
1157 virtual IShuffleLayer* addShuffle(ITensor& input) noexcept = 0;
1158 virtual int32_t getNbLayers() const noexcept = 0;
1159 virtual ILayer* getLayer(int32_t index) const noexcept = 0;
1160 virtual int32_t getNbInputs() const noexcept = 0;
1161 virtual ITensor* getInput(int32_t index) const noexcept = 0;
1162 virtual int32_t getNbOutputs() const noexcept = 0;
1163 virtual ITensor* getOutput(int32_t index) const noexcept = 0;
1164 virtual IReduceLayer* addReduce(
1165 ITensor& input, ReduceOperation operation, uint32_t reduceAxes, bool keepDimensions) noexcept
1166 = 0;
1167 virtual ITopKLayer* addTopK(ITensor& input, TopKOperation op, int32_t k, uint32_t reduceAxes) noexcept = 0;
1168 virtual IGatherLayer* addGather(ITensor& data, ITensor& indices, int32_t axis) noexcept = 0;
1169 virtual IRaggedSoftMaxLayer* addRaggedSoftMax(ITensor& input, ITensor& bounds) noexcept = 0;
1170 virtual IMatrixMultiplyLayer* addMatrixMultiply(
1171 ITensor& input0, MatrixOperation op0, ITensor& input1, MatrixOperation op1) noexcept = 0;
1172 virtual IConstantLayer* addConstant(Dims const& dimensions, Weights weights) noexcept = 0;
1173 virtual IIdentityLayer* addIdentity(ITensor& input) noexcept = 0;
1174 virtual void removeTensor(ITensor& tensor) noexcept = 0;
1175 virtual void unmarkOutput(ITensor& tensor) noexcept = 0;
1176 virtual IPluginV2Layer* addPluginV2(ITensor* const* inputs, int32_t nbInputs, IPluginV2& plugin) noexcept = 0;
1177 virtual IPluginV3Layer* addPluginV3(ITensor* const* inputs, int32_t nbInputs, ITensor* const* shapeInputs,
1178 int32_t nbShapeInputs, IPluginV3& plugin) noexcept = 0;
1179 virtual ISliceLayer* addSlice(ITensor& input, Dims const& start, Dims const& size, Dims const& stride) noexcept = 0;
1180 virtual void setName(char const* name) noexcept = 0;
1181 virtual char const* getName() const noexcept = 0;
1182 virtual IShapeLayer* addShape(ITensor& input) noexcept = 0;
1183 virtual bool hasImplicitBatchDimension() const noexcept = 0;
1184 virtual bool markOutputForShapes(ITensor& tensor) noexcept = 0;
1185 virtual bool unmarkOutputForShapes(ITensor& tensor) noexcept = 0;
1186 virtual IParametricReLULayer* addParametricReLU(ITensor& input, ITensor& slope) noexcept = 0;
1187 virtual IConvolutionLayer* addConvolutionNd(
1188 ITensor& input, int64_t nbOutputMaps, Dims const& kernelSize, Weights kernelWeights, Weights biasWeights) noexcept
1189 = 0;
1190 virtual IPoolingLayer* addPoolingNd(ITensor& input, PoolingType type, Dims const& windowSize) noexcept = 0;
1191 virtual IDeconvolutionLayer* addDeconvolutionNd(
1192 ITensor& input, int64_t nbOutputMaps, Dims const& kernelSize, Weights kernelWeights, Weights biasWeights) noexcept
1193 = 0;
1194 virtual IScaleLayer* addScaleNd(
1195 ITensor& input, ScaleMode mode, Weights shift, Weights scale, Weights power, int32_t channelAxis) noexcept = 0;
1196 virtual IResizeLayer* addResize(ITensor& input) noexcept = 0;
1197 virtual ILoop* addLoop() noexcept = 0;
1198 virtual ISelectLayer* addSelect(ITensor& condition, ITensor& thenInput, ITensor& elseInput) noexcept = 0;
1199 virtual IFillLayer* addFill(Dims const& dimensions, FillOperation op) noexcept = 0;
1200 virtual IPaddingLayer* addPaddingNd(ITensor& input, Dims const& prePadding, Dims const& postPadding) noexcept = 0;
1201 virtual bool setWeightsName(Weights weights, char const* name) noexcept = 0;
1202 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
1203 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
1204 virtual IDequantizeLayer* addDequantize(ITensor& input, ITensor& scale) noexcept = 0;
1205 virtual IQuantizeLayer* addQuantize(ITensor& input, ITensor& scale) noexcept = 0;
1206 virtual IGatherLayer* addGatherV2(ITensor& data, ITensor& indices, GatherMode mode) noexcept = 0;
1207 virtual IIfConditional* addIfConditional() noexcept = 0;
1208 virtual IScatterLayer* addScatter(ITensor& data, ITensor& indices, ITensor& updates, ScatterMode mode) noexcept = 0;
1209 virtual IEinsumLayer* addEinsum(ITensor* const* inputs, int32_t nbInputs, char const* equation) noexcept = 0;
1210 virtual IAssertionLayer* addAssertion(ITensor& condition, char const* message) noexcept = 0;
1211 virtual IOneHotLayer* addOneHot(ITensor& indices, ITensor& values, ITensor& depth, int32_t axis) noexcept = 0;
1212 virtual INonZeroLayer* addNonZero(ITensor& input) noexcept = 0;
1213 virtual IGridSampleLayer* addGridSample(ITensor& input, ITensor& grid) noexcept = 0;
1214 virtual INMSLayer* addNMS(ITensor& boxes, ITensor& scores, ITensor& maxOutputBoxesPerClass) noexcept = 0;
1215 virtual IReverseSequenceLayer* addReverseSequence(ITensor& input, ITensor& sequenceLens) noexcept = 0;
1216 virtual INormalizationLayer* addNormalization(
1217 ITensor& input, ITensor& scale, ITensor& bias, uint32_t axesMask) noexcept = 0;
1218 virtual ICastLayer* addCast(ITensor& input, DataType toType) noexcept = 0;
1219 virtual IBuilder& getBuilder() const noexcept = 0;
1220 virtual NetworkDefinitionCreationFlags getFlags() const noexcept = 0;
1221 virtual bool getFlag(NetworkDefinitionCreationFlag networkDefinitionCreationFlag) const noexcept = 0;
1222 virtual IQuantizeLayer* addQuantizeV2(ITensor& input, ITensor& scale, DataType outputType) noexcept = 0;
1223 virtual IDequantizeLayer* addDequantizeV2(ITensor& input, ITensor& scale, DataType outputType) noexcept = 0;
1224 virtual IFillLayer* addFillV2(Dims const& dimensions, FillOperation op, DataType outputType) noexcept = 0;
1225 virtual bool markDebug(ITensor& tensor) noexcept = 0;
1226 virtual bool unmarkDebug(ITensor& tensor) noexcept = 0;
1227 virtual bool isDebugTensor(ITensor const& tensor) const noexcept = 0;
1228 virtual bool markWeightsRefittable(char const* name) noexcept = 0;
1229 virtual bool unmarkWeightsRefittable(char const* name) noexcept = 0;
1230 virtual bool areWeightsMarkedRefittable(char const* name) const noexcept = 0;
1231 virtual ISqueezeLayer* addSqueeze(ITensor& input, ITensor& axes) noexcept = 0;
1232 virtual IUnsqueezeLayer* addUnsqueeze(ITensor& input, ITensor& axes) noexcept = 0;
1233 virtual IDynamicQuantizeLayer* addDynamicQuantize(
1234 ITensor& input, int32_t axis, int32_t blockSize, DataType toType, DataType scaleType) noexcept = 0;
1235 virtual ICumulativeLayer* addCumulative(
1236 ITensor& input, ITensor& axis, CumulativeOperation operation, bool exclusive, bool reverse) noexcept = 0;
1237 virtual bool markUnfusedTensorsAsDebugTensors() noexcept = 0;
1238 virtual bool unmarkUnfusedTensorsAsDebugTensors() noexcept = 0;
1239 virtual ITopKLayer* addTopKV2(
1240 ITensor& input, TopKOperation op, int32_t k, uint32_t reduceAxes, DataType indicesType) noexcept = 0;
1241 virtual INonZeroLayer* addNonZeroV2(ITensor& input, DataType indicesType) noexcept = 0;
1242 virtual INMSLayer* addNMSV2(
1243 ITensor& boxes, ITensor& scores, ITensor& maxOutputBoxesPerClass, DataType indicesType) noexcept = 0;
1244 virtual IAttention* addAttention(
1245 ITensor& query, ITensor& key, ITensor& value, AttentionNormalizationOp normOp, bool isCausal) noexcept = 0;
1246 virtual IRotaryEmbeddingLayer* addRotaryEmbedding(ITensor& input, ITensor& cosCache, ITensor& sinCache,
1247 bool interleaved, int32_t rotaryEmbeddingDim) noexcept = 0;
1248 virtual IDynamicQuantizeLayer* addDynamicQuantizeV2(
1249 ITensor& input, Dims const& blockShape, DataType toType, DataType scaleType) noexcept = 0;
1250 virtual IKVCacheUpdateLayer* addKVCacheUpdate(
1251 ITensor& cache, ITensor& update, ITensor& writeIndices, KVCacheMode cacheMode) noexcept = 0;
1252 virtual INormalizationLayer* addNormalizationV2(
1253 ITensor& input, ITensor& scale, ITensor& bias, uint32_t axesMask) noexcept = 0;
1254};
1255
1256class VAlgorithmIOInfo : public VRoot
1257{
1258public:
1259 virtual DataType getDataType() const noexcept = 0;
1260 virtual Dims getStrides() const noexcept = 0;
1261 virtual int64_t getVectorizedDim() const noexcept = 0;
1262 virtual int64_t getComponentsPerElement() const noexcept = 0;
1263};
1264
1265class VAlgorithmVariant : public VRoot
1266{
1267public:
1268 virtual int64_t getImplementation() const noexcept = 0;
1269 virtual int64_t getTactic() const noexcept = 0;
1270};
1271
1272class VAlgorithmContext : public VRoot
1273{
1274public:
1275 virtual char const* getName() const noexcept = 0;
1276 virtual Dims getDimensions(int32_t index, OptProfileSelector select) const noexcept = 0;
1277 virtual int32_t getNbInputs() const noexcept = 0;
1278 virtual int32_t getNbOutputs() const noexcept = 0;
1279};
1280
1281class VAlgorithm : public VRoot
1282{
1283public:
1284 virtual IAlgorithmVariant const& getAlgorithmVariant() const noexcept = 0;
1285 virtual float getTimingMSec() const noexcept = 0;
1286 virtual std::size_t getWorkspaceSize() const noexcept = 0;
1287 virtual IAlgorithmIOInfo const* getAlgorithmIOInfoByIndex(int32_t index) const noexcept = 0;
1288};
1289
1290
1291class VTimingCache : public VRoot
1292{
1293public:
1294 virtual nvinfer1::IHostMemory* serialize() const noexcept = 0;
1295 virtual bool combine(ITimingCache const& inputCache, bool ignoreMismatch) noexcept = 0;
1296 virtual bool reset() noexcept = 0;
1297 virtual int64_t queryKeys(TimingCacheKey* keyBuffer, int64_t capacity) const noexcept = 0;
1298 virtual TimingCacheValue query(TimingCacheKey const& key) const noexcept = 0;
1299 virtual bool update(TimingCacheKey const& key, TimingCacheValue const& value) noexcept = 0;
1300};
1301
1302class VBuilderConfig : public VRoot
1303{
1304public:
1305 virtual void setAvgTimingIterations(int32_t avgTiming) noexcept = 0;
1306 virtual int32_t getAvgTimingIterations() const noexcept = 0;
1307 virtual void setEngineCapability(EngineCapability capability) noexcept = 0;
1308 virtual EngineCapability getEngineCapability() const noexcept = 0;
1309 virtual void setInt8Calibrator(IInt8Calibrator* calibrator) noexcept = 0;
1310 virtual IInt8Calibrator* getInt8Calibrator() const noexcept = 0;
1311 virtual void setFlags(BuilderFlags builderFlags) noexcept = 0;
1312 virtual BuilderFlags getFlags() const noexcept = 0;
1313 virtual void clearFlag(BuilderFlag builderFlag) noexcept = 0;
1314 virtual void setFlag(BuilderFlag builderFlag) noexcept = 0;
1315 virtual bool getFlag(BuilderFlag builderFlag) const noexcept = 0;
1316 virtual void setDeviceType(ILayer const* layer, DeviceType deviceType) noexcept = 0;
1317 virtual DeviceType getDeviceType(ILayer const* layer) const noexcept = 0;
1318 virtual bool isDeviceTypeSet(ILayer const* layer) const noexcept = 0;
1319 virtual void resetDeviceType(ILayer const* layer) noexcept = 0;
1320 virtual bool canRunOnDLA(ILayer const* layer) const noexcept = 0;
1321 virtual void setDLACore(int32_t dlaCore) noexcept = 0;
1322 virtual int32_t getDLACore() const noexcept = 0;
1323 virtual void setDefaultDeviceType(DeviceType deviceType) noexcept = 0;
1324 virtual DeviceType getDefaultDeviceType() const noexcept = 0;
1325 virtual void reset() noexcept = 0;
1326 virtual void setProfileStream(const cudaStream_t stream) noexcept = 0;
1327 virtual cudaStream_t getProfileStream() const noexcept = 0;
1328 virtual int32_t addOptimizationProfile(IOptimizationProfile const* profile) noexcept = 0;
1329 virtual int32_t getNbOptimizationProfiles() const noexcept = 0;
1330 virtual void setProfilingVerbosity(ProfilingVerbosity verbosity) noexcept = 0;
1331 virtual ProfilingVerbosity getProfilingVerbosity() const noexcept = 0;
1332 virtual void setAlgorithmSelector(IAlgorithmSelector* selector) noexcept = 0;
1333 virtual IAlgorithmSelector* getAlgorithmSelector() const noexcept = 0;
1334 virtual bool setCalibrationProfile(IOptimizationProfile const* profile) noexcept = 0;
1335 virtual IOptimizationProfile const* getCalibrationProfile() noexcept = 0;
1336 virtual void setQuantizationFlags(QuantizationFlags flags) noexcept = 0;
1337 virtual QuantizationFlags getQuantizationFlags() const noexcept = 0;
1338 virtual void clearQuantizationFlag(QuantizationFlag flag) noexcept = 0;
1339 virtual void setQuantizationFlag(QuantizationFlag flag) noexcept = 0;
1340 virtual bool getQuantizationFlag(QuantizationFlag flag) const noexcept = 0;
1341 virtual bool setTacticSources(TacticSources tacticSources) noexcept = 0;
1342 virtual TacticSources getTacticSources() const noexcept = 0;
1343 virtual nvinfer1::ITimingCache* createTimingCache(void const* blob, std::size_t size) const noexcept = 0;
1344 virtual bool setTimingCache(ITimingCache const& cache, bool ignoreMismatch) noexcept = 0;
1345 virtual nvinfer1::ITimingCache const* getTimingCache() const noexcept = 0;
1346 virtual void setMemoryPoolLimit(MemoryPoolType pool, std::size_t poolSize) noexcept = 0;
1347 virtual std::size_t getMemoryPoolLimit(MemoryPoolType pool) const noexcept = 0;
1348 virtual void setPreviewFeature(PreviewFeature feature, bool enable) noexcept = 0;
1349 virtual bool getPreviewFeature(PreviewFeature feature) const noexcept = 0;
1350 virtual void setBuilderOptimizationLevel(int32_t level) noexcept = 0;
1351 virtual int32_t getBuilderOptimizationLevel() const noexcept = 0;
1352 virtual void setHardwareCompatibilityLevel(HardwareCompatibilityLevel hardwareCompatibilityLevel) noexcept = 0;
1353 virtual HardwareCompatibilityLevel getHardwareCompatibilityLevel() const noexcept = 0;
1354 virtual void setPluginsToSerialize(char const* const* paths, int32_t nbPaths) noexcept = 0;
1355 virtual char const* getPluginToSerialize(int32_t index) const noexcept = 0;
1356 virtual int32_t getNbPluginsToSerialize() const noexcept = 0;
1357 virtual void setMaxAuxStreams(int32_t nbStreams) noexcept = 0;
1358 virtual int32_t getMaxAuxStreams() const noexcept = 0;
1359 virtual void setProgressMonitor(IProgressMonitor* monitor) noexcept = 0;
1360 virtual IProgressMonitor* getProgressMonitor() const noexcept = 0;
1361 virtual void setRuntimePlatform(RuntimePlatform runtimePlatform) noexcept = 0;
1362 virtual RuntimePlatform getRuntimePlatform() const noexcept = 0;
1363 virtual void setMaxNbTactics(int32_t maxTactics) noexcept = 0;
1364 virtual int32_t getMaxNbTactics() const noexcept = 0;
1365 virtual bool setTilingOptimizationLevel(TilingOptimizationLevel level) noexcept = 0;
1366 virtual TilingOptimizationLevel getTilingOptimizationLevel() const noexcept = 0;
1367 virtual bool setL2LimitForTiling(int64_t size) noexcept = 0;
1368 virtual int64_t getL2LimitForTiling() const noexcept = 0;
1369 virtual bool setRemoteAutoTuningConfig(char const* config) noexcept = 0;
1370 virtual char const* getRemoteAutoTuningConfig() const noexcept = 0;
1371};
1372
1373class VSerializationConfig : public VRoot
1374{
1375public:
1376 virtual bool setFlags(SerializationFlags serializationFlags) noexcept = 0;
1377 virtual SerializationFlags getFlags() const noexcept = 0;
1378 virtual bool clearFlag(SerializationFlag serializationFlag) noexcept = 0;
1379 virtual bool setFlag(SerializationFlag serializationFlag) noexcept = 0;
1380 virtual bool getFlag(SerializationFlag serializationFlag) const noexcept = 0;
1381};
1382
1383class VBuilder : public VRoot
1384{
1385public:
1386 virtual bool platformHasFastFp16() const noexcept = 0;
1387 virtual bool platformHasFastInt8() const noexcept = 0;
1388 virtual int32_t getMaxDLABatchSize() const noexcept = 0;
1389 virtual int32_t getNbDLACores() const noexcept = 0;
1390 virtual void setGpuAllocator(IGpuAllocator* allocator) noexcept = 0;
1391 virtual nvinfer1::IBuilderConfig* createBuilderConfig() noexcept = 0;
1392 virtual nvinfer1::INetworkDefinition* createNetworkV2(NetworkDefinitionCreationFlags flags) noexcept = 0;
1393 virtual nvinfer1::IOptimizationProfile* createOptimizationProfile() noexcept = 0;
1394 virtual void setErrorRecorder(IErrorRecorder* recorder) noexcept = 0;
1395 virtual IErrorRecorder* getErrorRecorder() const noexcept = 0;
1396 virtual void reset() noexcept = 0;
1397 virtual bool platformHasTf32() const noexcept = 0;
1398 virtual nvinfer1::IHostMemory* buildSerializedNetwork(
1399 INetworkDefinition& network, IBuilderConfig& config) noexcept = 0;
1400 virtual bool isNetworkSupported(INetworkDefinition const& network, IBuilderConfig const& config) const noexcept = 0;
1401 virtual ILogger* getLogger() const noexcept = 0;
1402 virtual bool setMaxThreads(int32_t maxThreads) noexcept = 0;
1403 virtual int32_t getMaxThreads() const noexcept = 0;
1404 virtual IPluginRegistry& getPluginRegistry() noexcept = 0;
1405 virtual ICudaEngine* buildEngineWithConfig(INetworkDefinition& network, IBuilderConfig& config) noexcept = 0;
1406 virtual bool buildSerializedNetworkToStream(
1407 INetworkDefinition& network, IBuilderConfig& config, IStreamWriter& writer) noexcept = 0;
1408 virtual nvinfer1::IHostMemory* buildSerializedNetworkWithKernelText(
1409 INetworkDefinition& network, IBuilderConfig& config, IHostMemory*& kernelText) noexcept = 0;
1410};
1411
1412class VRuntimeConfig : public VRoot
1413{
1414public:
1415 virtual IRuntimeConfig* getPImpl() noexcept = 0;
1416 virtual void setExecutionContextAllocationStrategy(ExecutionContextAllocationStrategy strategy) noexcept = 0;
1417 virtual ExecutionContextAllocationStrategy getExecutionContextAllocationStrategy() const noexcept = 0;
1418};
1419
1420
1421} // namespace apiv
1422} // namespace nvinfer1
1423
1424// @endcond
1425
1426#endif // NV_INFER_RUNTIME_IMPL_H
TENSORRTAPI nvinfer1::IPluginRegistry * getPluginRegistry() noexcept
Return the plugin registry.
TENSORRTAPI nvinfer1::ILogger * getLogger() noexcept
Return the logger object.
#define TRT_NODISCARD
A stand-in for [[nodiscard]] and [[nodiscard(REASON)]] that works with older compilers.
Definition: NvInferRuntimeBase.h:57
#define TRT_DEPRECATED
Definition: NvInferRuntimeBase.h:42
Structure to define the dimensions of a tensor.
Interface implemented by application for selecting and reporting algorithms of a layer provided by th...
User-implemented callback for notification when value of a debug tensor is updated.
Reference counted application-implemented error reporting interface for TensorRT objects.
Application-implemented class for controlling allocation on the GPU.
Callback from ExecutionContext::enqueueV3()
Plugin class for the V3 generation of user-implemented layers.
Application-implemented interface for profiling.
Application-implemented progress reporting interface for TensorRT.
Application-implemented class for reading data in a stream-based manner.
Application-implemented class for reading data in a stream-based manner asynchronously....
Application-implemented class for writing data in a stream-based manner.
Class to handle library allocated memory that is accessible to the user.
Definition: NvInferRuntime.h:142
The TensorRT API version 1 namespace.
Definition: NvInferPluginBase.h:29
uint32_t TacticSources
Represents a collection of one or more TacticSource values combine using bitwise-OR operations.
Definition: NvInferRuntime.h:2961
v_1_0::IOutputAllocator IOutputAllocator
Definition: NvInferRuntime.h:4264
ResizeSelector
The coordinate selector when resize to single pixel output.
Definition: NvInfer.h:4114
EngineCapability
List of supported engine capability flows.
Definition: NvInferRuntime.h:76
DimensionOperation
An operation on two IDimensionExpr, which represent integer expressions used in dimension computation...
Definition: NvInferRuntime.h:179
MemoryPoolType
The type for memory pools used by TensorRT.
Definition: NvInfer.h:10227
ScaleMode
Controls how shift, scale and power are applied in a Scale layer.
Definition: NvInfer.h:1855
RuntimePlatform
Describes the intended runtime platform (operating system and CPU architecture) for the execution of ...
Definition: NvInfer.h:9810
uint32_t QuantizationFlags
Represents one or more QuantizationFlag values using binary OR operations.
Definition: NvInfer.h:9762
TensorIOMode
Definition of tensor IO Mode.
Definition: NvInferRuntimeBase.h:658
HardwareCompatibilityLevel
Describes requirements of compatibility with GPU architectures other than that of the GPU on which th...
Definition: NvInfer.h:10346
CumulativeOperation
Enumerates the cumulative operations that may be performed by a Cumulative layer.
Definition: NvInfer.h:6715
SerializationFlag
List of valid flags that the engine can enable when serializing the bytes.
Definition: NvInferRuntime.h:3002
BoundingBoxFormat
Representation of bounding box data used for the Boxes input tensor in INMSLayer.
Definition: NvInfer.h:6257
v_1_0::IPluginV3 IPluginV3
Definition: NvInferPluginBase.h:273
UnaryOperation
Enumerates the unary operations that may be performed by a Unary layer.
Definition: NvInfer.h:2800
v_1_0::IStreamWriter IStreamWriter
Definition: NvInferRuntime.h:720
v_1_0::IProfiler IProfiler
Definition: NvInferRuntime.h:1318
v_1_0::IAlgorithmSelector IAlgorithmSelector
Definition: NvInfer.h:9754
v_1_0::IStreamReaderV2 IStreamReaderV2
Definition: NvInferRuntime.h:797
ActivationType
Enumerates the types of activation to perform in an activation layer.
Definition: NvInfer.h:141
uint32_t TempfileControlFlags
Represents a collection of one or more TempfileControlFlag values combined using bitwise-OR operation...
Definition: NvInferRuntime.h:1396
FillOperation
Enumerates the tensor fill operations that may performed by a fill layer.
Definition: NvInfer.h:5095
EngineStat
The kind of engine statistics that queried from the ICudaEngine.
Definition: NvInferRuntime.h:3170
ResizeRoundMode
The rounding mode for nearest neighbor resize.
Definition: NvInfer.h:4144
PaddingMode
Enumerates the modes of padding to perform in convolution, deconvolution and pooling layer,...
Definition: NvInfer.h:1033
TripLimit
Enum that describes kinds of trip limits.
Definition: NvInfer.h:4503
uint32_t NetworkDefinitionCreationFlags
Represents one or more NetworkDefinitionCreationFlag flags using binary OR operations....
Definition: NvInfer.h:11480
PreviewFeature
Define preview features.
Definition: NvInfer.h:10302
TilingOptimizationLevel
Define the optimization levels for Tiling.
Definition: NvInfer.h:10399
DataType
The type of weights and tensors. The datatypes other than kBOOL, kINT32, and kINT64 are "activation d...
Definition: NvInferRuntimeBase.h:145
uint32_t BuilderFlags
Represents one or more BuilderFlag values using binary OR operations, e.g., 1U << BuilderFlag::kFP16 ...
Definition: NvInfer.h:9842
DeviceType
The device that this layer/network will execute on.
Definition: NvInferRuntime.h:1350
CalibrationAlgoType
Version of calibration algorithm to use.
Definition: NvInfer.h:9188
LayerType
The type values of layer classes.
Definition: NvInfer.h:58
SampleMode
Controls how ISliceLayer and IGridSample handle out-of-bounds coordinates.
Definition: NvInfer.h:3258
GatherMode
Control form of IGatherLayer.
Definition: NvInfer.h:2547
v_1_0::IDebugListener IDebugListener
Definition: NvInferRuntime.h:4305
WeightsRole
How a layer uses particular Weights.
Definition: NvInferRuntime.h:1328
uint32_t TensorFormats
It is capable of representing one or more TensorFormat by binary OR operations, e....
Definition: NvInfer.h:133
ProfilingVerbosity
List of verbosity levels of layer information exposed in NVTX annotations and in IEngineInspector.
Definition: NvInferRuntime.h:2973
NetworkDefinitionCreationFlag
List of immutable network properties expressed at network creation time. NetworkDefinitionCreationFla...
Definition: NvInfer.h:11491
ElementWiseOperation
Enumerates the binary operations that may be performed by an ElementWise layer.
Definition: NvInfer.h:2457
QuantizationFlag
List of valid flags for quantizing the network to int8.
Definition: NvInfer.h:9774
uint32_t SerializationFlags
Represents one or more SerializationFlag values using binary OR operations, e.g., 1U << Serialization...
Definition: NvInferRuntime.h:2992
InterpolationMode
Enumerates various modes of interpolation.
Definition: NvInfer.h:4032
BuilderFlag
List of valid modes that the builder can enable when creating an engine from a network definition.
Definition: NvInfer.h:9852
TensorFormat
Format of the input/output tensors.
Definition: NvInferRuntime.h:1430
ExecutionContextAllocationStrategy
Different memory allocation behaviors for IExecutionContext.
Definition: NvInferRuntime.h:3107
TopKOperation
Enumerates the operations that may be performed by a TopK layer.
Definition: NvInfer.h:3539
ReduceOperation
Enumerates the reduce operations that may be performed by a Reduce layer.
Definition: NvInfer.h:2895
LayerInformationFormat
The format in which the IEngineInspector prints the layer information.
Definition: NvInferRuntime.h:5261
ScatterMode
Control form of IScatterLayer.
Definition: NvInfer.h:5991
MatrixOperation
Enumerates the operations that may be performed on a tensor by IMatrixMultiplyLayer before multiplica...
Definition: NvInfer.h:3692
ResizeCoordinateTransformation
The resize coordinate transformation function.
Definition: NvInfer.h:4060
LoopOutput
Enum that describes kinds of loop outputs.
Definition: NvInfer.h:4475
KVCacheMode
Enumerates the KVCache modes that may be performed by a KVCacheUpdate layer.
Definition: NvInfer.h:7364
v_1_0::IStreamReader IStreamReader
Definition: NvInferRuntime.h:710
PoolingType
The type of pooling to perform in a pooling layer.
Definition: NvInfer.h:1469
v_1_0::IProgressMonitor IProgressMonitor
Definition: NvInfer.h:10515
TensorLocation
The location for tensor data storage, device or host.
Definition: NvInferRuntime.h:204
OptProfileSelector
When setting or querying optimization profile parameters (such as shape tensor inputs or dynamic dime...
Definition: NvInferRuntime.h:2635
AttentionNormalizationOp
Enumerates the operations that may be performed by the normalization in the attention subgraph.
Definition: NvInfer.h:6850

  Copyright © 2024 NVIDIA Corporation
  Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact