TensorRT 10.8.0
NvInferPluginBase.h
前往此文件的文档。
1/*
2 * SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. 保留所有权利。
3 * SPDX-License-Identifier: Apache-2.0
4 *
5 * 根据 Apache 许可证 2.0 版(“许可证”)获得许可;
6 * 除非遵守许可证的规定,否则您不得使用此文件。
7 * 您可以在以下网址获取许可证副本
8 *
9 * https://apache.ac.cn/licenses/LICENSE-2.0
10 *
11 * 除非适用法律要求或书面同意,否则按“原样”分发的
12 * 在许可证下分发的软件将按“原样”基础分发,
13 * 不附带任何种类的明示或暗示的保证或条件。
14 * 有关管理权限和限制的特定语言,请参阅许可证。
15 * 许可证下的限制。
16 */
17
18#ifndef NV_INFER_PLUGIN_BASE_H
19#define NV_INFER_PLUGIN_BASE_H
20
21#if !defined(NV_INFER_INTERNAL_INCLUDE)
22static_assert(false, "请勿直接包含此文件。请包含 NvInferRuntime.h 或 NvInferPluginUtils.h");
23#endif
24
25#define NV_INFER_INTERNAL_INCLUDE 1
26#include "NvInferRuntimeBase.h"
27#undef NV_INFER_INTERNAL_INCLUDE
28namespace nvinfer1
29{
30
36enum class PluginFieldType : int32_t
37{
39 kFLOAT16 = 0,
41 kFLOAT32 = 1,
43 kFLOAT64 = 2,
45 kINT8 = 3,
47 kINT16 = 4,
49 kINT32 = 5,
51 kCHAR = 6,
53 kDIMS = 7,
55 kUNKNOWN = 8,
57 kBF16 = 9,
59 kINT64 = 10,
61 kFP8 = 11,
63 kINT4 = 12,
65 kFP4 = 13,
66};
67
76{
77public
81 void const* data;
85 int32_t length;
86
87 PluginField(AsciiChar const* const name_ = nullptr, void const* const data_ = nullptr,
88 PluginFieldType const type_ = PluginFieldType::kUNKNOWN, int32_t const length_ = 0) noexcept
89 : name(name_)
90 , data(data_)
91 , type(type_)
92 , length(length_)
93 {
94 }
95};
96
103{
105 int32_t nbFields{};
108};
109
115enum class TensorRTPhase : int32_t
116{
118 kBUILD = 0,
120 kRUNTIME = 1
121};
122
128enum class PluginCapabilityType : int32_t
129{
131 kCORE = 0,
133 kBUILD = 1,
135 kRUNTIME = 2
136};
137
138namespace v_1_0
139{
141{
142};
143
145{
146public
150 InterfaceInfo getInterfaceInfo() const noexcept override
151 {
152 return InterfaceInfo{"IPluginResource", 1, 0};
153 }
167 virtual int32_t release() noexcept = 0;
168
181 virtual IPluginResource* clone() noexcept = 0;
182
183 ~IPluginResource() noexcept override = default;
184
185 IPluginResource() = default;
188 IPluginResource& operator=(IPluginResource const&) & = default;
189 IPluginResource& operator=(IPluginResource&&) & = default;
190}; // class IPluginResource
191
193{
194public
195 ~IPluginCreatorInterface() noexcept override = default;
196
197protected
201 IPluginCreatorInterface& operator=(IPluginCreatorInterface const&) & = default;
203};
204
206{
207public
211 InterfaceInfo getInterfaceInfo() const noexcept override
212 {
213 return InterfaceInfo{"PLUGIN", 1, 0};
214 }
215
228
239 virtual IPluginV3* clone() noexcept = 0;
240};
241} // namespace v_1_0
242
252
261
273using IPluginV3 = v_1_0::IPluginV3;
274
289} // namespace nvinfer1
290
291#endif /* NV_INFER_PLUGIN_BASE_H */
用于版本控制的接口类。
定义: NvInferRuntimeBase.h:263
与 TRT 接口关联的版本信息。
定义: NvInferRuntimeBase.h:228
包含插件属性字段名称和关联数据的结构。此信息可以被解析...
定义: NvInferPluginBase.h:76
AsciiChar const * name
插件字段属性名称。
定义: NvInferPluginBase.h:79
PluginField(AsciiChar const *const name_=nullptr, void const *const data_=nullptr, PluginFieldType const type_=PluginFieldType::kUNKNOWN, int32_t const length_=0) noexcept
定义: NvInferPluginBase.h:87
void const * data
插件字段属性数据。
定义: NvInferPluginBase.h:81
int32_t length
插件属性中的数据条目数。
定义: NvInferPluginBase.h:85
PluginFieldType type
插件字段属性类型。
定义: NvInferPluginBase.h:83
定义: NvInferPluginBase.h:141
定义: NvInferPluginBase.h:193
~IPluginCreatorInterface() noexcept override=default
定义: NvInferPluginBase.h:145
virtual IPluginResource * clone() noexcept=0
克隆资源对象。
virtual int32_t release() noexcept=0
释放底层资源。
InterfaceInfo getInterfaceInfo() const noexcept override
返回与此接口关联的版本信息。应用程序不得覆盖此方法...
定义: NvInferPluginBase.h:150
定义: NvInferPluginBase.h:206
virtual IPluginV3 * clone() noexcept=0
克隆插件对象。这将复制内部插件参数并返回一个新的插件对象...
virtual IPluginCapability * getCapabilityInterface(PluginCapabilityType type) noexcept=0
返回指向实现指定 PluginCapabilityType 的插件对象的指针。
InterfaceInfo getInterfaceInfo() const noexcept override
返回与此接口关联的版本信息。应用程序不得覆盖此方法...
定义: NvInferPluginBase.h:211
TensorRT API 版本 1 命名空间。
PluginFieldType
自定义层的可能字段类型。
定义: NvInferPluginBase.h:37
@ kUNKNOWN
未知字段类型。
@ kINT64
INT64 字段类型。
@ kFLOAT32
FP32 字段类型。
@ kCHAR
char 字段类型。
@ kFP4
FP4 字段类型。
@ kINT16
INT16 字段类型。
@ kDIMS
nvinfer1::Dims 字段类型。
@ kINT8
INT8 字段类型。
@ kFP8
FP8 字段类型。
@ kBF16
BF16 字段类型。
@ kINT4
INT4 字段类型。
@ kFLOAT64
FP64 字段类型。
@ kFLOAT16
FP16 字段类型。
@ kINT32
INT32 字段类型。
PluginCapabilityType
枚举 IPluginV3 对象可能具有的不同能力类型。
定义: NvInferPluginBase.h:129
@ kBUILD
构建能力。提供给 TensorRT 构建阶段的 IPluginV3 对象必须具有此能力。
@ kRUNTIME
运行时能力。提供给 TensorRT 构建和执行阶段的 IPluginV3 对象必须具有此能力。
@ kCORE
核心能力。每个 IPluginV3 对象都必须具有此能力。
char_t AsciiChar
定义: NvInferRuntimeBase.h:105
TensorRTPhase
指示 TensorRT 的操作阶段。
定义: NvInferPluginBase.h:116
@ kBUILD
TensorRT 的构建阶段。
@ kRUNTIME
TensorRT 的执行阶段。
插件字段集合结构体。
定义: NvInferPluginBase.h:103
PluginField const * fields
指向 PluginField 条目的指针。
定义: NvInferPluginBase.h:107
int32_t nbFields
PluginField 条目的数量。
定义: NvInferPluginBase.h:105

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