TensorRT 10.8.0
|
包含用于配置构建器以生成引擎的属性。 更多...
#include <NvInfer.h>
公共成员函数 | |
virtual | ~IBuilderConfig () noexcept=default |
virtual void | setAvgTimingIterations (int32_t avgTiming) noexcept |
设置在层计时时使用的平均迭代次数。 更多... | |
int32_t | getAvgTimingIterations () const noexcept |
查询平均迭代次数。 更多... | |
void | setEngineCapability (EngineCapability capability) noexcept |
配置构建器以面向指定的 EngineCapability 流。 更多... | |
EngineCapability | getEngineCapability () const noexcept |
查询为构建器配置的 EngineCapability 流。 更多... | |
TRT_DEPRECATED void | setInt8Calibrator (IInt8Calibrator *calibrator) noexcept |
设置 Int8 校准接口。 更多... | |
TRT_DEPRECATED IInt8Calibrator * | getInt8Calibrator () const noexcept |
获取 Int8 校准接口。 更多... | |
void | setFlags (BuilderFlags builderFlags) noexcept |
设置构建模式标志以启用此网络的构建器选项。 更多... | |
BuilderFlags | getFlags () const noexcept |
获取此构建器配置的构建模式标志。默认为 0。 更多... | |
void | clearFlag (BuilderFlag builderFlag) noexcept |
清除单个构建模式标志。 更多... | |
void | setFlag (BuilderFlag builderFlag) noexcept |
设置单个构建模式标志。 更多... | |
bool | getFlag (BuilderFlag builderFlag) const noexcept |
如果设置了构建模式标志,则返回 true。 更多... | |
void | setDeviceType (ILayer const *layer, DeviceType deviceType) noexcept |
设置此层必须在其上执行的设备。 更多... | |
DeviceType | getDeviceType (ILayer const *layer) const noexcept |
获取此层在其上执行的设备。 更多... | |
bool | isDeviceTypeSet (ILayer const *layer) const noexcept |
是否为此层显式设置了 DeviceType 更多... | |
void | resetDeviceType (ILayer const *layer) noexcept |
重置此层的 DeviceType 更多... | |
bool | canRunOnDLA (ILayer const *layer) const noexcept |
检查层是否可以在 DLA 上运行。 更多... | |
void | setDLACore (int32_t dlaCore) noexcept |
设置网络使用的 DLA 核心。默认为 -1。 更多... | |
int32_t | getDLACore () const noexcept |
获取引擎在其上执行的 DLA 核心。 更多... | |
void | setDefaultDeviceType (DeviceType deviceType) noexcept |
设置构建器要使用的默认 DeviceType。它确保所有可以在此设备上运行的层都将在其上运行,除非使用 setDeviceType 覆盖层的默认 DeviceType。 更多... | |
DeviceType | getDefaultDeviceType () const noexcept |
获取由 setDefaultDeviceType 设置的默认 DeviceType。 更多... | |
void | reset () noexcept |
将构建器配置重置为默认值。 更多... | |
void | setProfileStream (const cudaStream_t stream) noexcept |
设置用于分析此网络的 CUDA 流。 更多... | |
cudaStream_t | getProfileStream () const noexcept |
获取用于分析此网络的 CUDA 流。 更多... | |
int32_t | addOptimizationProfile (IOptimizationProfile const *profile) noexcept |
添加优化配置文件。 更多... | |
int32_t | getNbOptimizationProfiles () const noexcept |
获取优化配置文件的数量。 更多... | |
void | setProfilingVerbosity (ProfilingVerbosity verbosity) noexcept |
设置 NVTX 注解和 IEngineInspector 中公开的层信息的详细程度级别。 更多... | |
ProfilingVerbosity | getProfilingVerbosity () const noexcept |
获取 NVTX 注解和 IEngineInspector 中公开的层信息的详细程度级别。 更多... | |
TRT_DEPRECATED void | setAlgorithmSelector (IAlgorithmSelector *selector) noexcept |
设置算法选择器。 更多... | |
TRT_DEPRECATED IAlgorithmSelector * | getAlgorithmSelector () const noexcept |
获取算法选择器。 更多... | |
TRT_DEPRECATED bool | setCalibrationProfile (IOptimizationProfile const *profile) noexcept |
添加校准配置文件。 更多... | |
TRT_DEPRECATED IOptimizationProfile const * | getCalibrationProfile () noexcept |
获取当前的校准配置文件。 更多... | |
void | setQuantizationFlags (QuantizationFlags flags) noexcept |
设置量化标志。 更多... | |
QuantizationFlags | getQuantizationFlags () const noexcept |
获取量化标志。 更多... | |
void | clearQuantizationFlag (QuantizationFlag flag) noexcept |
清除量化标志。 更多... | |
void | setQuantizationFlag (QuantizationFlag flag) noexcept |
设置单个量化标志。 更多... | |
bool | getQuantizationFlag (QuantizationFlag flag) const noexcept |
如果设置了量化标志,则返回 true。 更多... | |
bool | setTacticSources (TacticSources tacticSources) noexcept |
设置策略来源。 更多... | |
TacticSources | getTacticSources () const noexcept |
获取策略来源。 更多... | |
nvinfer1::ITimingCache * | createTimingCache (void const *blob, std::size_t size) const noexcept |
创建计时缓存。 更多... | |
bool | setTimingCache (ITimingCache const &cache, bool ignoreMismatch) noexcept |
将计时缓存附加到 IBuilderConfig。 更多... | |
nvinfer1::ITimingCache const * | getTimingCache () const noexcept |
从当前的 IBuilderConfig 获取指向计时缓存的指针。 更多... | |
void | setMemoryPoolLimit (MemoryPoolType pool, std::size_t poolSize) noexcept |
设置内存池的内存大小。 更多... | |
std::size_t | getMemoryPoolLimit (MemoryPoolType pool) const noexcept |
获取内存池的内存大小限制。 更多... | |
void | setPreviewFeature (PreviewFeature feature, bool enable) noexcept |
启用或禁用特定的预览功能。 更多... | |
bool | getPreviewFeature (PreviewFeature feature) const noexcept |
获取预览功能的状态。 更多... | |
void | setBuilderOptimizationLevel (int32_t level) noexcept |
设置构建器优化级别。 更多... | |
int32_t | getBuilderOptimizationLevel () noexcept |
获取构建器优化级别。 更多... | |
void | setHardwareCompatibilityLevel (HardwareCompatibilityLevel hardwareCompatibilityLevel) noexcept |
设置硬件兼容性级别。 更多... | |
HardwareCompatibilityLevel | getHardwareCompatibilityLevel () const noexcept |
获取硬件兼容性级别。 更多... | |
void | setPluginsToSerialize (char const *const *paths, int32_t nbPaths) noexcept |
设置要与版本兼容的引擎一起序列化的插件库。 更多... | |
char const * | getPluginToSerialize (int32_t index) const noexcept |
获取要与版本兼容的引擎一起序列化的插件库路径。 更多... | |
int32_t | getNbPluginsToSerialize () const noexcept |
获取要与版本兼容的引擎一起序列化的插件库路径的数量。 更多... | |
void | setMaxAuxStreams (int32_t nbStreams) noexcept |
设置 TRT 允许使用的最大辅助流数量。 更多... | |
int32_t | getMaxAuxStreams () const noexcept |
获取 TRT 允许使用的最大辅助流数量。 更多... | |
void | setProgressMonitor (IProgressMonitor *monitor) noexcept |
为构建网络设置进度监视器。 更多... | |
IProgressMonitor * | getProgressMonitor () const noexcept |
void | setRuntimePlatform (RuntimePlatform runtimePlatform) noexcept |
设置运行时执行的目标平台。 更多... | |
RuntimePlatform | getRuntimePlatform () const noexcept |
获取运行时执行的目标平台。 更多... | |
void | setMaxNbTactics (int32_t maxNbTactics) noexcept |
设置在有策略选择时要计时的最大策略数量。 更多... | |
int32_t | getMaxNbTactics () const noexcept |
查询在有选择时计时的最大策略数量。 更多... | |
bool | setTilingOptimizationLevel (TilingOptimizationLevel level) noexcept |
设置分块优化级别。 更多... | |
TilingOptimizationLevel | getTilingOptimizationLevel () const noexcept |
获取分块优化级别。 更多... | |
bool | setL2LimitForTiling (int64_t size) noexcept |
设置分块优化的 L2 缓存使用限制。 更多... | |
int64_t | getL2LimitForTiling () const noexcept |
获取分块优化的 L2 缓存使用限制。 更多... | |
保护属性 | |
apiv::VBuilderConfig * | mImpl |
附加的继承成员 | |
![]() | |
INoCopy ()=default | |
virtual | ~INoCopy ()=default |
INoCopy (INoCopy const &other)=delete | |
INoCopy & | operator= (INoCopy const &other)=delete |
INoCopy (INoCopy &&other)=delete | |
INoCopy & | operator= (INoCopy &&other)=delete |
包含用于配置构建器以生成引擎的属性。
|
virtualdefaultnoexcept |
|
inlinenoexcept |
添加优化配置文件。
如果网络具有动态或形状输入张量,则必须至少调用此函数一次。在构建可重装配引擎时,此函数最多可以调用一次,因为可重装配引擎不支持多个优化配置文件。
profile | 新的优化配置文件,必须满足 profile->isValid() == true |
|
inlinenoexcept |
检查层是否可以在 DLA 上运行。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
创建计时缓存。
从序列化的原始数据创建 ITimingCache 实例。创建的计时缓存不属于特定的 IBuilderConfig。它可以由多个构建器实例共享。在启动构建器之前调用 setTimingCache() 以将缓存附加到构建器实例。
blob | 指向包含序列化计时缓存的原始数据的指针 |
size | 序列化计时缓存的大小(以字节为单位)。大小为 0 表示从头开始创建新缓存 |
|
inlinenoexcept |
获取算法选择器。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
获取由 setDefaultDeviceType 设置的默认 DeviceType。
默认情况下,它返回 DeviceType::kGPU。
|
inlinenoexcept |
获取此层在其上执行的设备。
|
inlinenoexcept |
获取引擎在其上执行的 DLA 核心。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
获取硬件兼容性级别。
|
inlinenoexcept |
获取 Int8 校准接口。
|
inlinenoexcept |
|
inlinenoexcept |
获取 TRT 允许使用的最大辅助流数量。
|
inlinenoexcept |
|
inlinenoexcept |
获取内存池的内存大小限制。
检索对应池的内存大小限制(以字节为单位)。如果尚未调用池的 setMemoryPoolLimit,则此函数返回 TensorRT 使用的默认值。此默认值不一定是该配置的最大可能值。
pool | 要获取限制的内存池。 |
|
inlinenoexcept |
获取优化配置文件的数量。
这比已定义的最后一个优化配置文件的索引高 1(如果尚未定义任何优化配置文件,则为零)。
|
inlinenoexcept |
获取要与版本兼容的引擎一起序列化的插件库路径的数量。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
获取用于分析此网络的 CUDA 流。
|
inlinenoexcept |
获取 NVTX 注解和 IEngineInspector 中公开的层信息的详细程度级别。
获取 NVTX 注解和 IEngineInspector 中公开的层信息的详细程度级别的当前设置。默认值为 ProfilingVerbosity::kLAYER_NAMES_ONLY。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
从当前的 IBuilderConfig 获取指向计时缓存的指针。
|
inlinenoexcept |
|
inlinenoexcept |
将构建器配置重置为默认值。
用于将构建器配置对象初始化为其原始状态非常有用。
|
inlinenoexcept |
重置此层的 DeviceType
|
inlinenoexcept |
|
inlinevirtualnoexcept |
|
inlinenoexcept |
设置构建器优化级别。
设置构建器优化级别。设置较高的优化级别允许优化器花费更多时间搜索优化机会。与使用较低优化级别构建的引擎相比,生成的引擎可能具有更好的性能。
默认优化级别为 3。有效值包括从 0 到最大优化级别的整数,当前最大优化级别为 5。将其设置为大于最大级别的值会导致行为与最大级别相同。
以下是关于每个构建器优化级别的描述
level | 要设置的优化级别。必须为非负数。 |
|
inlinenoexcept |
添加校准配置文件。
如果 int8 校准用于为具有运行时维度的网络设置比例,则必须设置校准优化配置文件。
profile | 新的校准配置文件,必须满足 profile->isValid() == true 或为 nullptr。MIN 和 MAX 值将被 kOPT 覆盖。 |
|
inlinenoexcept |
设置构建器要使用的默认 DeviceType。它确保所有可以在此设备上运行的层都将在此设备上运行,除非使用 setDeviceType 覆盖层的默认 DeviceType。
|
inlinenoexcept |
设置此层必须在其上执行的设备。
layer | 要执行的层。 |
deviceType | 此层必须在其上执行。如果未设置 DeviceType 或已重置,TensorRT 将使用构建器中设置的默认 DeviceType。 |
|
inlinenoexcept |
设置网络使用的 DLA 核心。默认为 -1。
dlaCore | 要在其上执行引擎的 DLA 核心,范围为 [0, getNbDlaCores())。 |
如果多个 DLA 核心可用,则此函数用于通过索引指定要使用的 DLA 核心。
|
inlinenoexcept |
配置构建器以定位指定的 EngineCapability 流。
流是指 API 调用的序列,这些调用允许应用程序设置运行时、引擎和执行上下文,以便运行推理。
支持的流在 EngineCapability 枚举中指定。
|
inlinenoexcept |
|
inlinenoexcept |
设置构建模式标志以为此网络开启构建器选项。
标志在 BuilderFlags 枚举中列出。标志设置配置选项以构建网络。
builderFlags | 引擎的构建选项。 |
|
inlinenoexcept |
设置硬件兼容性级别。
硬件兼容性允许引擎在构建引擎的 GPU 架构之外的其他 GPU 架构上运行。
默认硬件兼容性级别为 HardwareCompatibilityLevel::kNONE。
hardwareCompatibilityLevel | 硬件兼容性的级别。 |
|
inlinenoexcept |
|
inlinenoexcept |
设置 Tiling 优化的 L2 缓存使用限制。
用于 tiling 优化的参数。此 API 仅在 TilingOptimizationLevel 不是 kNONE 时生效。
size | Tiling 优化的 L2 缓存使用限制的大小。 |
|
inlinenoexcept |
设置 TRT 允许使用的最大辅助流数量。
如果网络包含可以并行运行的算子,则 TRT 可以使用辅助流(除了提供给 IExecutionContext::enqueueV3() 调用的流之外)来执行它们。
默认的最大辅助流数量由 TensorRT 中的启发式方法确定,以确定启用多流是否会提高性能。可以通过调用此 API 显式设置最大辅助流数量来覆盖此行为。将其设置为 0 以强制执行单流推理。
如果网络不包含足够的并行性,或者 TensorRT 确定使用更多辅助流无助于提高性能,则生成的引擎可能使用少于最大值的辅助流。
nbStreams | TRT 允许使用的最大辅助流数量。 |
|
inlinenoexcept |
|
inlinenoexcept |
设置内存池的内存大小。
TensorRT 层根据操作访问不同的内存池。此函数在 IBuilderConfig 中设置由 poolSize
指定的大小限制,用于由 pool
指定的相应内存池。TensorRT 将构建一个受这些限制约束的 plan 文件,或报告哪个约束导致了失败。
如果由 poolSize
指定的池的大小不满足池的大小要求,则此函数不执行任何操作,并向注册的 IErrorRecorder 发出可恢复错误 ErrorCode::kINVALID_ARGUMENT。
如果池的大小大于配置的最大可能值,则此函数不执行任何操作,并发出 ErrorCode::kUNSUPPORTED_STATE。
如果在构建网络时请求的设备类型上不存在该池,则会向记录器发出警告,并且内存池值将被忽略。
请参阅 MemoryPoolType 以查看每个池的大小要求。
pool | 要限制可用内存的内存池。 |
poolSize | 池的大小(以字节为单位)。 |
|
inlinenoexcept |
设置要与版本兼容的引擎一起序列化的插件库。
库列表中的每个条目都必须是唯一的。
paths | 插件库的路径。 |
nbPaths | 路径的数量。 |
|
inlinenoexcept |
启用或禁用特定的预览功能。
允许启用或禁用实验性功能,这些功能在当前版本中默认未启用。
有关更多信息和可用功能列表,请参阅 PreviewFeature。
feature | 要启用/禁用的功能 |
enable | true 表示启用,false 表示禁用 |
|
inlinenoexcept |
|
inlinenoexcept |
设置 NVTX 注释和 IEngineInspector 中公开的层信息的详细程度。
控制 NVTX 注释和 IEngineInspector 中将公开多少层信息。
|
inlinenoexcept |
设置用于构建网络的进度监视器。
monitor | 要分配给 IBuilderConfig 的进度监视器。 |
进度监视器在执行编译器的不同阶段时向应用程序发出信号。设置为 nullptr 将取消设置监视器,以便不向应用程序发出信号。
|
inlinenoexcept |
|
inlinenoexcept |
设置量化标志。
标志在 QuantizationFlag 枚举中列出。标志设置配置选项以在 int8 中量化网络。
flags | 量化标志。 |
|
inlinenoexcept |
设置运行时执行的目标平台。
跨平台兼容性允许在不同平台上构建和执行引擎。
默认跨平台目标为 RuntimePlatform::kSAME_AS_BUILD。
runtimePlatform | 运行时执行的目标平台。 |
|
inlinenoexcept |
设置策略来源。
此位集控制 TensorRT 允许使用哪些策略来源进行策略选择。
多个策略来源可以使用按位 OR 运算组合。例如,要启用 cublas 和 cublasLt 作为策略来源,请使用以下值
1U << static_cast<uint32_t>(TacticSource::kCUBLAS) | 1U << static_cast<uint32_t>(TacticSource::kCUBLAS_LT)
|
inlinenoexcept |
设置 Tiling 优化级别。
Tiling 允许 TensorRT 尝试片上缓存策略。
默认 getTilingOptimizationLevel 为 TilingOptimizationLevel::kNONE。
level | Tiling 优化的级别。 |
|
inlinenoexcept |
将 timing cache 附加到 IBuilderConfig。
timing cache 具有验证标头,以确保提供的缓存可以在当前环境中使用。如果提供的缓存中的 CUDA 设备属性与当前环境不同,则将报告失败。ignoreMismatch = true 会跳过严格验证,并允许加载从不同设备创建的缓存。
在构建引擎之前,不得销毁缓存。
cache | 要使用的 timing cache |
ignoreMismatch | 是否允许使用包含不同 CUDA 设备属性的缓存 |
|
protected |
版权所有 © 2024 NVIDIA Corporation
隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 辅助功能 | 公司政策 | 产品安全 | 联系方式