TensorRT 10.0.1
nvinfer1::v_1_0::IPluginV3OneBuild Class Referenceabstract

#include <NvInferRuntime.h>

Inheritance diagram for nvinfer1::v_1_0::IPluginV3OneBuild:
nvinfer1::v_1_0::IPluginCapability nvinfer1::IVersionedInterface

Public Member Functions

InterfaceInfo getInterfaceInfo () const noexcept override
 Return version information associated with this interface. Applications must not override this method. More...
 
virtual int32_t configurePlugin (DynamicPluginTensorDesc const *in, int32_t nbInputs, DynamicPluginTensorDesc const *out, int32_t nbOutputs) noexcept=0
 Configure the plugin. More...
 
virtual int32_t getOutputDataTypes (DataType *outputTypes, int32_t nbOutputs, const DataType *inputTypes, int32_t nbInputs) const noexcept=0
 Provide the data types of the plugin outputs if the input tensors have the data types provided. More...
 
virtual int32_t getOutputShapes (DimsExprs const *inputs, int32_t nbInputs, DimsExprs const *shapeInputs, int32_t nbShapeInputs, DimsExprs *outputs, int32_t nbOutputs, IExprBuilder &exprBuilder) noexcept=0
 Provide expressions for computing dimensions of the output tensors from dimensions of the input tensors. More...
 
virtual bool supportsFormatCombination (int32_t pos, DynamicPluginTensorDesc const *inOut, int32_t nbInputs, int32_t nbOutputs) noexcept=0
 Return true if plugin supports the format and datatype for the input/output indexed by pos. More...
 
virtual int32_t getNbOutputs () const noexcept=0
 Get the number of outputs from the plugin. More...
 
virtual size_t getWorkspaceSize (DynamicPluginTensorDesc const *inputs, int32_t nbInputs, DynamicPluginTensorDesc const *outputs, int32_t nbOutputs) const noexcept
 Find the workspace size required by the layer. More...
 
virtual int32_t getValidTactics (int32_t *tactics, int32_t nbTactics) noexcept
 Query for any custom tactics that the plugin intends to use. More...
 
virtual int32_t getNbTactics () noexcept
 Query for the number of custom tactics the plugin intends to use. More...
 
virtual char const * getTimingCacheID () noexcept
 Called to query the suffix to use for the timing cache ID. May be called anytime after plugin creation. More...
 
virtual int32_t getFormatCombinationLimit () noexcept
 Return the maximum number of format combinations that will be timed by TensorRT during the build phase. More...
 
virtual char const * getMetadataString () noexcept
 Query for a string representing the configuration of the plugin. May be called anytime after plugin creation. More...
 
- Public Member Functions inherited from nvinfer1::IVersionedInterface
virtual APILanguage getAPILanguage () const noexcept
 The language used to build the implementation of this Interface. More...
 
virtual ~IVersionedInterface () noexcept=default
 

Static Public Attributes

static constexpr int32_t kDEFAULT_FORMAT_COMBINATION_LIMIT = 100
 The default maximum number of format combinations that will be timed by TensorRT during the build phase. More...
 

Additional Inherited Members

- Protected Member Functions inherited from nvinfer1::IVersionedInterface
 IVersionedInterface ()=default
 
 IVersionedInterface (IVersionedInterface const &)=default
 
 IVersionedInterface (IVersionedInterface &&)=default
 
IVersionedInterfaceoperator= (IVersionedInterface const &) &=default
 
IVersionedInterfaceoperator= (IVersionedInterface &&) &=default
 

Member Function Documentation

◆ configurePlugin()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::configurePlugin ( DynamicPluginTensorDesc const *  in,
int32_t  nbInputs,
DynamicPluginTensorDesc const *  out,
int32_t  nbOutputs 
)
pure virtualnoexcept

Configure the plugin.

configurePlugin() can be called multiple times in the build phase during creation of an engine by IBuilder.

configurePlugin() is called when a plugin is being prepared for profiling but not for any specific input size. This provides an opportunity for the plugin to make algorithmic choices on the basis of input and output formats, along with the bound of possible dimensions. The min, opt and max value of the DynamicPluginTensorDesc correspond to the kMIN, kOPT and kMAX value of the current profile that the plugin is being profiled for, with the desc.dims field corresponding to the dimensions of plugin specified at network creation. Wildcard dimensions may exist during this phase in the desc.dims field.

Parameters
inThe input tensors attributes that are used for configuration.
nbInputsNumber of input tensors.
outThe output tensors attributes that are used for configuration.
nbOutputsNumber of output tensors.

◆ getFormatCombinationLimit()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::getFormatCombinationLimit ( )
inlinevirtualnoexcept

Return the maximum number of format combinations that will be timed by TensorRT during the build phase.

◆ getInterfaceInfo()

InterfaceInfo nvinfer1::v_1_0::IPluginV3OneBuild::getInterfaceInfo ( ) const
inlineoverridevirtualnoexcept

Return version information associated with this interface. Applications must not override this method.

Implements nvinfer1::IVersionedInterface.

◆ getMetadataString()

virtual char const * nvinfer1::v_1_0::IPluginV3OneBuild::getMetadataString ( )
inlinevirtualnoexcept

Query for a string representing the configuration of the plugin. May be called anytime after plugin creation.

Returns
A string representing the plugin's creation state, especially with regard to its attribute values.

◆ getNbOutputs()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::getNbOutputs ( ) const
pure virtualnoexcept

Get the number of outputs from the plugin.

Returns
The number of outputs, which must be a positive integer.

◆ getNbTactics()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::getNbTactics ( )
inlinevirtualnoexcept

Query for the number of custom tactics the plugin intends to use.

◆ getOutputDataTypes()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::getOutputDataTypes ( DataType outputTypes,
int32_t  nbOutputs,
const DataType inputTypes,
int32_t  nbInputs 
) const
pure virtualnoexcept

Provide the data types of the plugin outputs if the input tensors have the data types provided.

Parameters
outputTypesPre-allocated array to which the output data types should be written.
nbOutputsThe number of output tensors. This matches the value returned from getNbOutputs().
inputTypesThe input data types.
nbInputsThe number of input tensors.
Returns
0 for success, else non-zero (which will cause engine termination). The returned code will be reported through the error recorder.
Note
Provide DataType::kFLOATs if the layer has no inputs. The data type for any size tensor outputs must be DataType::kINT32. The returned data types must each have a format that is supported by the plugin.
Warning
DataType:kBOOL and DataType::kUINT8 are not supported.

◆ getOutputShapes()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::getOutputShapes ( DimsExprs const *  inputs,
int32_t  nbInputs,
DimsExprs const *  shapeInputs,
int32_t  nbShapeInputs,
DimsExprs outputs,
int32_t  nbOutputs,
IExprBuilder exprBuilder 
)
pure virtualnoexcept

Provide expressions for computing dimensions of the output tensors from dimensions of the input tensors.

Parameters
inputsExpressions for dimensions of the input tensors
nbInputsThe number of input tensors
shapeInputsExpressions for values of the shape tensor inputs
nbShapeInputsThe number of shape tensor inputs
outputsPre-allocated array to which the output dimensions must be written
exprBuilderObject for generating new dimension expressions
Note
Any size tensor outputs must be declared to be 0-D.
The declaration of shapeInputs as DimsExprs is slightly abusive, because the "dimensions" are actually the values of the shape tensor. For example, if the input shape tensor is a 2x3 matrix, the DimsExprs will have six "dimensions": the three values from the first row of the matrix followed by the three values from the second row of the matrix.
Returns
0 for success, else non-zero (which will cause engine termination). Returned code will be reported through the error recorder.

◆ getTimingCacheID()

virtual char const * nvinfer1::v_1_0::IPluginV3OneBuild::getTimingCacheID ( )
inlinevirtualnoexcept

Called to query the suffix to use for the timing cache ID. May be called anytime after plugin creation.

Returns
Suffix to use for timing cache ID, considering only the creation state of the plugin. Returning nullptr will disable timing caching for the plugin altogether.
Note
If timing caching is enabled for the plugin (by returning non-null), the I/O shape and format information will be automatically considered to form the prefix of the timing cache ID. Therefore, only other factors determining the creation state of the plugin, such as its attribute values, should be considered to compose the return value.

◆ getValidTactics()

virtual int32_t nvinfer1::v_1_0::IPluginV3OneBuild::getValidTactics ( int32_t *  tactics,
int32_t  nbTactics 
)
inlinevirtualnoexcept

Query for any custom tactics that the plugin intends to use.

For each format combination supported by the plugin (up to a maximum indicated by getFormatCombinationLimit()), the plugin will be timed for each tactic advertised through this method.

Parameters
tacticsPre-allocated buffer to which the tactic values should be written
nbTacticsThe number of tactics advertised through getNbTactics()
Note
The provided tactic values must be unique and non-zero. The tactic value 0 is reserved for the default tactic attached to each format combination.
Returns
0 for success, else non-zero (which will cause engine termination). The returned code will be reported through the error recorder.

◆ getWorkspaceSize()

virtual size_t nvinfer1::v_1_0::IPluginV3OneBuild::getWorkspaceSize ( DynamicPluginTensorDesc const *  inputs,
int32_t  nbInputs,
DynamicPluginTensorDesc const *  outputs,
int32_t  nbOutputs 
) const
inlinevirtualnoexcept

Find the workspace size required by the layer.

This function is called after the plugin is configured, and possibly during execution. The result should be a sufficient workspace size to deal with inputs and outputs of the given size or any smaller problem.

Returns
The workspace size.

◆ supportsFormatCombination()

virtual bool nvinfer1::v_1_0::IPluginV3OneBuild::supportsFormatCombination ( int32_t  pos,
DynamicPluginTensorDesc const *  inOut,
int32_t  nbInputs,
int32_t  nbOutputs 
)
pure virtualnoexcept

Return true if plugin supports the format and datatype for the input/output indexed by pos.

For this method inputs are numbered 0.. (nbInputs - 1) and outputs are numbered nbInputs.. (nbInputs + nbOutputs

  • 1). Using this numbering, pos is an index into InOut, where 0 <= pos < nbInputs + nbOutputs - 1.

TensorRT invokes this method to ask if the input/output indexed by pos supports the format/datatype specified by inOut[pos].format and inOut[pos].type. The override should return true if that format/datatype at inOut[pos] are supported by the plugin. If support is conditional on other input/output formats/datatypes, the plugin can make its result conditional on the formats/datatypes in inOut[0.. pos - 1], which will be set to values that the plugin supports. The override should not inspect inOut[pos1.. nbInputs + nbOutputs - 1], which will have invalid values. In other words, the decision for pos must be based on inOut[0..pos] only.

Some examples:

  • A definition for a plugin that supports only FP16 NCHW:
      return inOut.format[pos] == TensorFormat::kLINEAR && inOut.type[pos] == DataType::kHALF;
    
  • A definition for a plugin that supports only FP16 NCHW for its two inputs, and FP32 NCHW for its single output:
      return inOut.format[pos] == TensorFormat::kLINEAR && (inOut.type[pos] == pos < 2 ?  DataType::kHALF :
      DataType::kFLOAT);
    
  • A definition for a "polymorphic" plugin with two inputs and one output that supports any format or type, but the inputs and output must have the same format and type:
      return pos == 0 || (inOut.format[pos] == inOut.format[0] && inOut.type[pos] == inOut.type[0]);
    
    Warning
    TensorRT will stop querying once it finds getFormatCombinationLimit() of combinations.
    See also
    getFormatCombinationLimit

Member Data Documentation

◆ kDEFAULT_FORMAT_COMBINATION_LIMIT

constexpr int32_t nvinfer1::v_1_0::IPluginV3OneBuild::kDEFAULT_FORMAT_COMBINATION_LIMIT = 100
staticconstexpr

The default maximum number of format combinations that will be timed by TensorRT during the build phase.

See also
getFormatCombinationLimit

The documentation for this class was generated from the following file:

  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