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

  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