TensorRT 10.8.0
|
用户实现层的插件类。 更多...
#include <NvInferRuntimePlugin.h>
公共成员函数 | |
virtual int32_t | getTensorRTVersion () const noexcept |
返回构建此插件所使用的 API 版本。 更多... | |
virtual AsciiChar const * | getPluginType () const noexcept=0 |
返回插件类型。应与相应插件创建器返回的插件名称匹配。 更多... | |
virtual AsciiChar const * | getPluginVersion () const noexcept=0 |
返回插件版本。应与相应插件创建器返回的插件版本匹配。 更多... | |
virtual int32_t | getNbOutputs () const noexcept=0 |
获取层的输出数量。 更多... | |
virtual Dims | getOutputDimensions (int32_t index, Dims const *inputs, int32_t nbInputDims) noexcept=0 |
获取输出张量的维度。 更多... | |
virtual bool | supportsFormat (DataType type, PluginFormat format) const noexcept=0 |
检查格式支持。 更多... | |
virtual void | configureWithFormat (Dims const *inputDims, int32_t nbInputs, Dims const *outputDims, int32_t nbOutputs, DataType type, PluginFormat format, int32_t maxBatchSize) noexcept=0 |
配置层。 更多... | |
virtual int32_t | initialize () noexcept=0 |
初始化层以供执行。这在创建引擎时调用。 更多... | |
virtual void | terminate () noexcept=0 |
释放插件层初始化期间获取的资源。这在引擎销毁时调用。 更多... | |
virtual size_t | getWorkspaceSize (int32_t maxBatchSize) const noexcept=0 |
查找层所需的工作区大小。 更多... | |
virtual int32_t | enqueue (int32_t batchSize, void const *const *inputs, void *const *outputs, void *workspace, cudaStream_t stream) noexcept=0 |
执行层。 更多... | |
virtual size_t | getSerializationSize () const noexcept=0 |
查找存储插件配置到二进制文件所需的序列化缓冲区大小。 更多... | |
virtual void | serialize (void *buffer) const noexcept=0 |
序列化层。 更多... | |
virtual void | destroy () noexcept=0 |
销毁插件对象。这将在网络、构建器或引擎销毁时调用。 更多... | |
virtual IPluginV2 * | clone () const noexcept=0 |
克隆插件对象。这会复制内部插件参数,并返回一个包含这些参数的新插件对象。 更多... | |
virtual void | setPluginNamespace (AsciiChar const *pluginNamespace) noexcept=0 |
设置此插件对象所属的命名空间。理想情况下,来自同一插件库的所有插件对象必须具有相同的命名空间。 更多... | |
virtual AsciiChar const * | getPluginNamespace () const noexcept=0 |
返回插件对象的命名空间。 更多... | |
用户实现层的插件类。
插件是应用程序实现自定义层的一种机制。当与 IPluginCreator 结合使用时,它提供了一种机制来注册插件并在反序列化期间查找插件注册表。
|
pure virtualnoexcept |
克隆插件对象。这会复制内部插件参数,并返回一个包含这些参数的新插件对象。
在引擎创建后,当为引擎创建执行上下文时,TensorRT 运行时调用 clone() 来克隆插件。运行时不会对克隆的插件调用 initialize(),因此克隆的插件必须在已初始化的状态下创建。
使用注意事项
在 nvinfer1::IPluginV2DynamicExt 和 nvinfer1::IPluginV2Ext 中实现。
|
pure virtualnoexcept |
配置层。
此函数在 initialize() 之前由构建器调用。它为层提供了一个机会,使其可以根据其权重、维度和最大批大小来做出算法选择。
inputDims | 输入张量维度。将是长度为 nbInputs 的 Dims 数组的起始地址。 |
nbInputs | 输入数量。将是非负整数。 |
outputDims | 输出张量维度。将是长度为 nbOutputs 的 Dims 数组的起始地址。 |
nbOutputs | 输出数量。将是与 getNbOutputs() 的返回值相同的正整数。 |
type | 为引擎选择的数据类型。 |
format | 为引擎选择的格式。 |
maxBatchSize | 最大批大小。将是正整数。 |
此处传递的维度不包括最外层的批大小(即,对于 2D 图像网络,它们将是 3 维 CHW 维度)。
使用注意事项
在 nvinfer1::IPluginV2Ext 中实现。
|
pure virtualnoexcept |
销毁插件对象。这将在网络、构建器或引擎销毁时调用。
使用注意事项
|
pure virtualnoexcept |
执行层。
batchSize | 批次中的输入数量。 |
inputs | 输入张量的内存。将是一个设备地址数组,对应于长度为 nbInputs 的输入张量,其中 nbInputs 是传递给 configureWithFormat() 的第二个参数。第 i 个输入张量将具有维度 inputDims[i],其中 inputDims 是传递给 configureWithFormat() 的第一个参数。 |
outputs | 输出张量的内存。将是一个设备地址数组,对应于长度为 getNbOutputs() 的输出张量。 |
workspace | 用于执行的工作区。将是设备缓冲区的起始地址,其长度至少为 getWorkspaceSize(batchSize)。 |
stream | 在其中执行内核的流。这将是一个有效的 CUDA 流。 |
使用注意事项
|
pure virtualnoexcept |
获取层的输出数量。
此函数由 INetworkDefinition 和 IBuilder 的实现调用。特别是,它在任何调用 initialize() 之前调用。
使用注意事项
|
pure virtualnoexcept |
获取输出张量的维度。
index | 输出张量的索引。将位于有效范围内(介于 0 和 getNbOutputs()-1 之间,包括两者)。 |
inputs | 输入张量维度。将是长度为 nbInputDims 的 Dims 数组的起始地址。 |
nbInputDims | 输入张量的数量。将是非负整数。 |
此函数由 INetworkDefinition 和 IBuilder 的实现调用。特别是,它在任何调用 initialize() 之前调用。
使用注意事项
|
pure virtualnoexcept |
返回插件对象的命名空间。
使用注意事项
|
pure virtualnoexcept |
返回插件类型。应与相应插件创建器返回的插件名称匹配。
使用注意事项
|
pure virtualnoexcept |
返回插件版本。应与相应插件创建器返回的插件版本匹配。
使用注意事项
|
pure virtualnoexcept |
查找存储插件配置到二进制文件所需的序列化缓冲区大小。
使用注意事项
|
inlinevirtualnoexcept |
返回构建此插件所使用的 API 版本。
请勿覆盖此方法,因为它被 TensorRT 库用于维护与插件的向后兼容性。
使用注意事项
在 nvinfer1::IPluginV2DynamicExt, nvinfer1::IPluginV2Ext, 和 nvinfer1::IPluginV2IOExt 中重新实现。
|
pure virtualnoexcept |
查找层所需的工作区大小。
此函数在引擎启动期间、initialize() 之后调用。返回的工作区大小必须足以满足最大批大小。
maxBatchSize | 最大批大小,这将是一个正整数。 |
使用注意事项
|
pure virtualnoexcept |
初始化层以供执行。这在创建引擎时调用。
使用注意事项
|
pure virtualnoexcept |
序列化层。
buffer | 指向用于序列化数据的主机缓冲区的指针。缓冲区的大小将至少与 getSerializationSize 返回的值一样大。 |
使用注意事项
|
pure virtualnoexcept |
设置此插件对象所属的命名空间。理想情况下,来自同一插件库的所有插件对象必须具有相同的命名空间。
pluginNamespace | 插件对象的命名空间。 |
使用注意事项
|
pure virtualnoexcept |
检查格式支持。
type | 请求的数据类型。 |
format | 请求的插件格式。 |
此函数由 INetworkDefinition、IBuilder 和 safe::ICudaEngine/ICudaEngine 的实现调用。特别是,它在创建引擎和反序列化引擎时调用。
使用注意事项
|
pure virtualnoexcept |
释放插件层初始化期间获取的资源。这在引擎销毁时调用。
使用注意事项
版权所有 © 2024 NVIDIA Corporation
隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 可访问性 | 公司政策 | 产品安全 | 联系我们