TensorRT 10.8.0
nvinfer1::IExprBuilder 类参考

用于构建 IDimensionExpr 的对象。 更多...

#include <NvInferRuntime.h>

nvinfer1::IExprBuilder 的继承关系图
nvinfer1::INoCopy

公共成员函数

IDimensionExpr const * constant (int64_t value) noexcept
 返回指向给定值的 IDimensionExpr 的指针。 更多...
 
IDimensionExpr const * operation (DimensionOperation op, IDimensionExpr const &first, IDimensionExpr const &second) noexcept
 获取运算。 更多...
 
IDimensionExpr const * declareSizeTensor (int32_t outputIndex, IDimensionExpr const &opt, IDimensionExpr const &upper)
 在给定的输出索引处声明一个尺寸张量,带有指定的自动调优公式和上限。 更多...
 

受保护成员函数

virtual ~IExprBuilder () noexcept=default
 
- 从 nvinfer1::INoCopy 继承的受保护成员函数
 INoCopy ()=default
 
virtual ~INoCopy ()=default
 
 INoCopy (INoCopy const &other)=delete
 
INoCopyoperator= (INoCopy const &other)=delete
 
 INoCopy (INoCopy &&other)=delete
 
INoCopyoperator= (INoCopy &&other)=delete
 

受保护属性

apiv::VExprBuilder * mImpl
 

详细描述

用于构建 IDimensionExpr 的对象。

没有公开的方式来构建 IExprBuilder。 它作为方法 IPluginV2DynamicExt::getOutputDimensions()IPluginV3OneBuild::getOutputShapes() 的参数出现。 该方法的重写可以使用该 IExprBuilder 参数来构造表达式,这些表达式定义了以输入维度表示的输出维度。

客户端应假定由 IExprBuilder 构建的任何值在 IPluginV2DynamicExt::getOutputDimensions()IPluginV3OneBuild::getOutputShapes() 返回后被销毁。

警告
不要从此类继承,因为这样做会破坏 API 和 ABI 的向前兼容性。
参见
IDimensionExpr

构造函数 & 析构函数文档

◆ ~IExprBuilder()

virtual nvinfer1::IExprBuilder::~IExprBuilder ( )
protectedvirtualdefaultnoexcept

成员函数文档

◆ constant()

IDimensionExpr const * nvinfer1::IExprBuilder::constant ( int64_t  value)
inlinenoexcept

返回指向给定值的 IDimensionExpr 的指针。

◆ declareSizeTensor()

IDimensionExpr const * nvinfer1::IExprBuilder::declareSizeTensor ( int32_t  outputIndex,
IDimensionExpr const &  opt,
IDimensionExpr const &  upper 
)
inline

在给定的输出索引处声明一个尺寸张量,带有指定的自动调优公式和上限。

尺寸张量允许插件具有无法仅从输入维度计算的输出维度。 例如,假设一个插件为 2D 输入实现了 INonZeroLayer 的等效功能。 该插件可以有一个输出用于非零元素的索引,以及第二个输出包含非零元素的数量。 假设输入的大小为 [M,N] 并且有 K 个非零元素。 插件可以将 K 写入第二个输出。 当告诉 TensorRT 第一个输出的形状为 [2,K] 时,插件使用 IExprBuilder::constant() 和 IExprBuilder::declareSizeTensor(1,...) 来创建分别表示 2 和 K 的 IDimensionExpr

TensorRT 还需要知道 K 的值,以便用于自动调优以及 K 的上限,以便它可以为输出张量分配内存。 在示例中,假设通常插件输入元素的一半是非零的,并且所有元素都可能为非零。 那么使用 M*N/2 可能是 opt 参数的一个很好的表达式,而 M*N 是上限。 这些表达式的 IDimensionsExpr 可以从输入维度的 IDimensionsExpr 构建。

参数
outputIndex作为尺寸张量的插件输出的索引。
opt用于计算自动调优值的公式。 不得依赖于尺寸张量。
upper尺寸张量的上限。
返回值
表示尺寸张量值的 IDimensionExpr
参见
IPluginV3OneBuild::getOutputShapes()

◆ operation()

IDimensionExpr const * nvinfer1::IExprBuilder::operation ( DimensionOperation  op,
IDimensionExpr const &  first,
IDimensionExpr const &  second 
)
inlinenoexcept

获取运算。

返回指向 IDimensionExpr 的指针,该指针表示应用于 first 和 second 的给定运算。 如果 op 不是有效的 DimensionOperation,则返回 nullptr。

成员数据文档

◆ mImpl

apiv::VExprBuilder* nvinfer1::IExprBuilder::mImpl
protected

此类文档根据以下文件生成

  版权所有 © 2024 NVIDIA Corporation
  隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 辅助功能 | 公司政策 | 产品安全 | 联系我们