TensorRT 10.8.0
nvinfer1::IBuilderConfig 类参考

包含用于配置构建器以生成引擎的属性。 更多...

#include <NvInfer.h>

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

公共成员函数

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 IInt8CalibratorgetInt8Calibrator () 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 IAlgorithmSelectorgetAlgorithmSelector () 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::ITimingCachecreateTimingCache (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
 为构建网络设置进度监视器。 更多...
 
IProgressMonitorgetProgressMonitor () 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
 

附加的继承成员

- 继承自 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
 

详细描述

包含用于配置构建器以生成引擎的属性。

参见
BuilderFlags

构造函数 & 析构函数文档

◆ ~IBuilderConfig()

virtual nvinfer1::IBuilderConfig::~IBuilderConfig ( )
virtualdefaultnoexcept

成员函数文档

◆ addOptimizationProfile()

int32_t nvinfer1::IBuilderConfig::addOptimizationProfile ( IOptimizationProfile const *  profile)
inlinenoexcept

添加优化配置文件。

如果网络具有动态或形状输入张量,则必须至少调用此函数一次。在构建可重装配引擎时,此函数最多可以调用一次,因为可重装配引擎不支持多个优化配置文件。

参数
profile新的优化配置文件,必须满足 profile->isValid() == true
返回值
如果输入有效,则返回优化配置文件的索引(从 0 开始),如果输入无效,则返回 -1。

◆ canRunOnDLA()

bool nvinfer1::IBuilderConfig::canRunOnDLA ( ILayer const *  layer) const
inlinenoexcept

检查层是否可以在 DLA 上运行。

返回值
如果层可以在 DLA 上运行,则状态为 true,否则返回 false。

◆ clearFlag()

void nvinfer1::IBuilderConfig::clearFlag ( BuilderFlag  builderFlag)
inlinenoexcept

清除单个构建模式标志。

从已启用的标志中清除构建器模式标志。

参见
setFlags()

◆ clearQuantizationFlag()

void nvinfer1::IBuilderConfig::clearQuantizationFlag ( QuantizationFlag  flag)
inlinenoexcept

清除量化标志。

从已启用的量化标志中清除量化标志。

参见
setQuantizationFlags()

◆ createTimingCache()

nvinfer1::ITimingCache * nvinfer1::IBuilderConfig::createTimingCache ( void const *  blob,
std::size_t  size 
) const
inlinenoexcept

创建计时缓存。

从序列化的原始数据创建 ITimingCache 实例。创建的计时缓存不属于特定的 IBuilderConfig。它可以由多个构建器实例共享。在启动构建器之前调用 setTimingCache() 以将缓存附加到构建器实例。

参数
blob指向包含序列化计时缓存的原始数据的指针
size序列化计时缓存的大小(以字节为单位)。大小为 0 表示从头开始创建新缓存
参见
setTimingCache
返回值
指向创建的 ITimingCache 的指针

◆ getAlgorithmSelector()

TRT_DEPRECATED IAlgorithmSelector * nvinfer1::IBuilderConfig::getAlgorithmSelector ( ) const
inlinenoexcept

获取算法选择器。

已弃用
在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。

◆ getAvgTimingIterations()

int32_t nvinfer1::IBuilderConfig::getAvgTimingIterations ( ) const
inlinenoexcept

查询平均迭代次数。

默认情况下,平均迭代次数为 1。

参见
setAvgTimingIterations()

◆ getBuilderOptimizationLevel()

int32_t nvinfer1::IBuilderConfig::getBuilderOptimizationLevel ( )
inlinenoexcept

获取构建器优化级别。

返回值
当前的构建器优化级别
参见
setBuilderOptimizationLevel

◆ getCalibrationProfile()

TRT_DEPRECATED IOptimizationProfile const * nvinfer1::IBuilderConfig::getCalibrationProfile ( )
inlinenoexcept

获取当前的校准配置文件。

返回值
指向当前校准配置文件的指针,如果未设置校准配置文件,则为 nullptr。
已弃用
在 TensorRT 10.1 中已弃用。已由显式量化取代。

◆ getDefaultDeviceType()

DeviceType nvinfer1::IBuilderConfig::getDefaultDeviceType ( ) const
inlinenoexcept

获取由 setDefaultDeviceType 设置的默认 DeviceType。

默认情况下,它返回 DeviceType::kGPU

◆ getDeviceType()

DeviceType nvinfer1::IBuilderConfig::getDeviceType ( ILayer const *  layer) const
inlinenoexcept

获取此层在其上执行的设备。

返回值
返回层的 DeviceType。

◆ getDLACore()

int32_t nvinfer1::IBuilderConfig::getDLACore ( ) const
inlinenoexcept

获取引擎在其上执行的 DLA 核心。

返回值
分配的 DLA 核心,如果 DLA 不存在或未设置,则为 -1。

◆ getEngineCapability()

EngineCapability nvinfer1::IBuilderConfig::getEngineCapability ( ) const
inlinenoexcept

查询为构建器配置的 EngineCapability 流。

默认情况下,它返回 EngineCapability::kSTANDARD

参见
setEngineCapability()

◆ getFlag()

bool nvinfer1::IBuilderConfig::getFlag ( BuilderFlag  builderFlag) const
inlinenoexcept

如果设置了构建模式标志,则返回 true。

参见
getFlags()
返回值
如果设置了标志,则为 True,如果未设置,则为 false。

◆ getFlags()

BuilderFlags nvinfer1::IBuilderConfig::getFlags ( ) const
inlinenoexcept

获取此构建器配置的构建模式标志。默认为 0。

返回值
构建选项作为位掩码。
参见
setFlags()

◆ getHardwareCompatibilityLevel()

HardwareCompatibilityLevel nvinfer1::IBuilderConfig::getHardwareCompatibilityLevel ( ) const
inlinenoexcept

获取硬件兼容性级别。

返回值
hardwareCompatibilityLevel 硬件兼容性级别。
参见
setHardwareCompatiblityLevel()

◆ getInt8Calibrator()

TRT_DEPRECATED IInt8Calibrator * nvinfer1::IBuilderConfig::getInt8Calibrator ( ) const
inlinenoexcept

获取 Int8 校准接口。

已弃用
在 TensorRT 10.1 中已弃用。已由显式量化取代。

◆ getL2LimitForTiling()

int64_t nvinfer1::IBuilderConfig::getL2LimitForTiling ( ) const
inlinenoexcept

获取分块优化的 L2 缓存使用限制。

返回值
分块优化的 L2 缓存使用限制。
参见
setL2LimitForTiling()

◆ getMaxAuxStreams()

int32_t nvinfer1::IBuilderConfig::getMaxAuxStreams ( ) const
inlinenoexcept

获取 TRT 允许使用的最大辅助流数量。

参见
setMaxAuxStreams()

◆ getMaxNbTactics()

int32_t nvinfer1::IBuilderConfig::getMaxNbTactics ( ) const
inlinenoexcept

查询在有策略选择时要计时的最大策略数量。

默认情况下,该值为 -1,表示 TensorRT 可以根据自己的启发式方法确定策略的数量。

参见
setMaxNbTactics()

◆ getMemoryPoolLimit()

std::size_t nvinfer1::IBuilderConfig::getMemoryPoolLimit ( MemoryPoolType  pool) const
inlinenoexcept

获取内存池的内存大小限制。

检索对应池的内存大小限制(以字节为单位)。如果尚未调用池的 setMemoryPoolLimit,则此函数返回 TensorRT 使用的默认值。此默认值不一定是该配置的最大可能值。

参数
pool要获取限制的内存池。
返回值
对应池的内存限制大小(以字节为单位)。
参见
setMemoryPoolLimit

◆ getNbOptimizationProfiles()

int32_t nvinfer1::IBuilderConfig::getNbOptimizationProfiles ( ) const
inlinenoexcept

获取优化配置文件的数量。

这比已定义的最后一个优化配置文件的索引高 1(如果尚未定义任何优化配置文件,则为零)。

返回值
优化配置文件的数量。

◆ getNbPluginsToSerialize()

int32_t nvinfer1::IBuilderConfig::getNbPluginsToSerialize ( ) const
inlinenoexcept

获取要与版本兼容的引擎一起序列化的插件库路径的数量。

返回值
路径的数量。

◆ getPluginToSerialize()

char const * nvinfer1::IBuilderConfig::getPluginToSerialize ( int32_t  index) const
inlinenoexcept

获取要与版本兼容的引擎一起序列化的插件库路径。

参数
index列表中插件库路径的索引。应在范围 [0, getNbPluginsToSerialize()) 内。
返回值
插件库的路径。

◆ getPreviewFeature()

bool nvinfer1::IBuilderConfig::getPreviewFeature ( PreviewFeature  feature) const
inlinenoexcept

获取预览功能的状态。

参数
feature要查询的功能
返回值
如果 feature 已启用,则为 true,否则为 false
参见
PreviewFeature, setPreviewFeature

◆ getProfileStream()

cudaStream_t nvinfer1::IBuilderConfig::getProfileStream ( ) const
inlinenoexcept

获取用于分析此网络的 CUDA 流。

返回值
由 setProfileStream 设置的 CUDA 流,如果尚未调用 setProfileStream,则为 nullptr。
参见
setProfileStream()

◆ getProfilingVerbosity()

ProfilingVerbosity nvinfer1::IBuilderConfig::getProfilingVerbosity ( ) const
inlinenoexcept

获取 NVTX 注解和 IEngineInspector 中公开的层信息的详细程度级别。

获取 NVTX 注解和 IEngineInspector 中公开的层信息的详细程度级别的当前设置。默认值为 ProfilingVerbosity::kLAYER_NAMES_ONLY

参见
ProfilingVerbosity, setProfilingVerbosity(), IEngineInspector

◆ getProgressMonitor()

IProgressMonitor * nvinfer1::IBuilderConfig::getProgressMonitor ( ) const
inlinenoexcept
返回值
应用程序设置的进度监视器,如果未设置,则为 nullptr。
参见
IBuilderConfig::setProgressMonitor

◆ getQuantizationFlag()

bool nvinfer1::IBuilderConfig::getQuantizationFlag ( QuantizationFlag  flag) const
inlinenoexcept

如果设置了量化标志,则返回 true。

参见
getQuantizationFlags()
返回值
如果设置了量化标志,则为 True,如果未设置,则为 false。

◆ getQuantizationFlags()

QuantizationFlags nvinfer1::IBuilderConfig::getQuantizationFlags ( ) const
inlinenoexcept

获取量化标志。

返回值
量化标志作为位掩码。
参见
setQuantizationFlag()

◆ getRuntimePlatform()

RuntimePlatform nvinfer1::IBuilderConfig::getRuntimePlatform ( ) const
inlinenoexcept

获取运行时执行的目标平台。

返回值
运行时执行的目标平台。
参见
IBuilderConfig::setRuntimePlatform()

◆ getTacticSources()

TacticSources nvinfer1::IBuilderConfig::getTacticSources ( ) const
inlinenoexcept

获取策略来源。

获取当前在引擎构建配置中设置的策略来源。

参见
setTacticSources()
返回值
策略来源

◆ getTilingOptimizationLevel()

TilingOptimizationLevel nvinfer1::IBuilderConfig::getTilingOptimizationLevel ( ) const
inlinenoexcept

获取分块优化级别。

返回值
TilingOptimizationLevel 分块优化的级别。
参见
setTilingOptimizationLevel()

◆ getTimingCache()

nvinfer1::ITimingCache const * nvinfer1::IBuilderConfig::getTimingCache ( ) const
inlinenoexcept

从当前的 IBuilderConfig 获取指向计时缓存的指针。

返回值
当前 IBuilderConfig 中使用的 timing cache 的指针

◆ isDeviceTypeSet()

bool nvinfer1::IBuilderConfig::isDeviceTypeSet ( ILayer const *  layer) const
inlinenoexcept

是否已为此层显式设置 DeviceType

返回值
如果设备类型不是默认类型,则为 true
参见
setDeviceType() getDeviceType() resetDeviceType()

◆ reset()

void nvinfer1::IBuilderConfig::reset ( )
inlinenoexcept

将构建器配置重置为默认值。

用于将构建器配置对象初始化为其原始状态非常有用。

◆ resetDeviceType()

void nvinfer1::IBuilderConfig::resetDeviceType ( ILayer const *  layer)
inlinenoexcept

重置此层的 DeviceType

参见
setDeviceType() getDeviceType() isDeviceTypeSet()

◆ setAlgorithmSelector()

TRT_DEPRECATED void nvinfer1::IBuilderConfig::setAlgorithmSelector ( IAlgorithmSelector selector)
inlinenoexcept

设置算法选择器。

参数
selector要在构建配置中设置的算法选择器。
已弃用
在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。

◆ setAvgTimingIterations()

virtual void nvinfer1::IBuilderConfig::setAvgTimingIterations ( int32_t  avgTiming)
inlinevirtualnoexcept

设置对层进行计时时使用的平均迭代次数。

对层进行计时时,构建器会最小化一组层执行平均时间。此参数控制平均中使用的迭代次数。

参见
getAvgTimingIterations()

◆ setBuilderOptimizationLevel()

void nvinfer1::IBuilderConfig::setBuilderOptimizationLevel ( int32_t  level)
inlinenoexcept

设置构建器优化级别。

设置构建器优化级别。设置较高的优化级别允许优化器花费更多时间搜索优化机会。与使用较低优化级别构建的引擎相比,生成的引擎可能具有更好的性能。

默认优化级别为 3。有效值包括从 0 到最大优化级别的整数,当前最大优化级别为 5。将其设置为大于最大级别的值会导致行为与最大级别相同。

以下是关于每个构建器优化级别的描述

  • 级别 0:这通过禁用动态内核生成并选择第一个成功执行的策略来实现最快的编译。这也将不考虑 timing cache。
  • 级别 1:可用策略按启发式方法排序,但仅测试顶部策略以选择最佳策略。如果生成动态内核,则其编译优化较低。
  • 级别 2:可用策略按启发式方法排序,但仅测试最快的策略以选择最佳策略。
  • 级别 3:应用启发式方法来查看是否适用静态预编译内核,或者是否必须动态编译新内核。
  • 级别 4:始终编译动态内核。
  • 级别 5:始终编译动态内核,并将其与静态内核进行比较。
参数
level要设置的优化级别。必须为非负数。
参见
getBuilderOptimizationLevel

◆ setCalibrationProfile()

TRT_DEPRECATED bool nvinfer1::IBuilderConfig::setCalibrationProfile ( IOptimizationProfile const *  profile)
inlinenoexcept

添加校准配置文件。

如果 int8 校准用于为具有运行时维度的网络设置比例,则必须设置校准优化配置文件。

参数
profile新的校准配置文件,必须满足 profile->isValid() == true 或为 nullptr。MIN 和 MAX 值将被 kOPT 覆盖。
返回值
如果校准配置文件设置正确,则为 True。
已弃用
在 TensorRT 10.1 中已弃用。已由显式量化取代。

◆ setDefaultDeviceType()

void nvinfer1::IBuilderConfig::setDefaultDeviceType ( DeviceType  deviceType)
inlinenoexcept

设置构建器要使用的默认 DeviceType。它确保所有可以在此设备上运行的层都将在此设备上运行,除非使用 setDeviceType 覆盖层的默认 DeviceType。

参见
getDefaultDeviceType()

◆ setDeviceType()

void nvinfer1::IBuilderConfig::setDeviceType ( ILayer const *  layer,
DeviceType  deviceType 
)
inlinenoexcept

设置此层必须在其上执行的设备。

参数
layer要执行的层。
deviceType此层必须在其上执行。如果未设置 DeviceType 或已重置,TensorRT 将使用构建器中设置的默认 DeviceType。
注意
层的设备类型必须与安全流(如果指定)兼容。例如,当构建器配置为 kSAFETY 时,层不能标记为 DLA 执行。
参见
getDeviceType()

◆ setDLACore()

void nvinfer1::IBuilderConfig::setDLACore ( int32_t  dlaCore)
inlinenoexcept

设置网络使用的 DLA 核心。默认为 -1。

参数
dlaCore要在其上执行引擎的 DLA 核心,范围为 [0, getNbDlaCores())。

如果多个 DLA 核心可用,则此函数用于通过索引指定要使用的 DLA 核心。

警告
如果 getNbDLACores() 返回 0,则此函数不执行任何操作。
参见
IRuntime::setDLACore() getDLACore()

◆ setEngineCapability()

void nvinfer1::IBuilderConfig::setEngineCapability ( EngineCapability  capability)
inlinenoexcept

配置构建器以定位指定的 EngineCapability 流。

流是指 API 调用的序列,这些调用允许应用程序设置运行时、引擎和执行上下文,以便运行推理。

支持的流在 EngineCapability 枚举中指定。

◆ setFlag()

void nvinfer1::IBuilderConfig::setFlag ( BuilderFlag  builderFlag)
inlinenoexcept

设置单个构建模式标志。

将输入构建器模式标志添加到已启用的标志。

参见
setFlags()

◆ setFlags()

void nvinfer1::IBuilderConfig::setFlags ( BuilderFlags  builderFlags)
inlinenoexcept

设置构建模式标志以为此网络开启构建器选项。

标志在 BuilderFlags 枚举中列出。标志设置配置选项以构建网络。

参数
builderFlags引擎的构建选项。
注意
此函数将覆盖先前设置的标志,而不是按位或运算新标志。
参见
getFlags()

◆ setHardwareCompatibilityLevel()

void nvinfer1::IBuilderConfig::setHardwareCompatibilityLevel ( HardwareCompatibilityLevel  hardwareCompatibilityLevel)
inlinenoexcept

设置硬件兼容性级别。

硬件兼容性允许引擎在构建引擎的 GPU 架构之外的其他 GPU 架构上运行。

默认硬件兼容性级别为 HardwareCompatibilityLevel::kNONE

参数
hardwareCompatibilityLevel硬件兼容性的级别。

◆ setInt8Calibrator()

TRT_DEPRECATED void nvinfer1::IBuilderConfig::setInt8Calibrator ( IInt8Calibrator calibrator)
inlinenoexcept

设置 Int8 校准接口。

校准器旨在最大限度地减少 INT8 量化过程中的信息损失。

已弃用
在 TensorRT 10.1 中已弃用。已由显式量化取代。

◆ setL2LimitForTiling()

bool nvinfer1::IBuilderConfig::setL2LimitForTiling ( int64_t  size)
inlinenoexcept

设置 Tiling 优化的 L2 缓存使用限制。

用于 tiling 优化的参数。此 API 仅在 TilingOptimizationLevel 不是 kNONE 时生效。

注意
如果未调用 setL2LimitForTiling(),TensorRT 将选择介于 0 和 L2 容量大小之间的默认值。
参数
sizeTiling 优化的 L2 缓存使用限制的大小。
返回值
如果成功,则为 True,否则为 false

◆ setMaxAuxStreams()

void nvinfer1::IBuilderConfig::setMaxAuxStreams ( int32_t  nbStreams)
inlinenoexcept

设置 TRT 允许使用的最大辅助流数量。

如果网络包含可以并行运行的算子,则 TRT 可以使用辅助流(除了提供给 IExecutionContext::enqueueV3() 调用的流之外)来执行它们。

默认的最大辅助流数量由 TensorRT 中的启发式方法确定,以确定启用多流是否会提高性能。可以通过调用此 API 显式设置最大辅助流数量来覆盖此行为。将其设置为 0 以强制执行单流推理。

如果网络不包含足够的并行性,或者 TensorRT 确定使用更多辅助流无助于提高性能,则生成的引擎可能使用少于最大值的辅助流。

注意
允许更多辅助流并不总是能带来更好的性能,因为流之间会存在同步开销。在运行时使用 CUDA 图可以帮助减少跨流同步引起的开销。
使用更多辅助流会导致运行时占用更多内存,因为某些激活内存块将无法重复使用。
参数
nbStreamsTRT 允许使用的最大辅助流数量。
参见
getMaxAuxStreams(), ICudaEngine::getNbAuxStreams(), IExecutionContext::setAuxStreams()

◆ setMaxNbTactics()

void nvinfer1::IBuilderConfig::setMaxNbTactics ( int32_t  maxNbTactics)
inlinenoexcept

设置在有策略选择时要计时的最大策略数量。

当有多个策略可供选择时,此函数控制计时的策略数量。

参见
getMaxNbTactics()

◆ setMemoryPoolLimit()

void nvinfer1::IBuilderConfig::setMemoryPoolLimit ( MemoryPoolType  pool,
std::size_t  poolSize 
)
inlinenoexcept

设置内存池的内存大小。

TensorRT 层根据操作访问不同的内存池。此函数在 IBuilderConfig 中设置由 poolSize 指定的大小限制,用于由 pool 指定的相应内存池。TensorRT 将构建一个受这些限制约束的 plan 文件,或报告哪个约束导致了失败。

如果由 poolSize 指定的池的大小不满足池的大小要求,则此函数不执行任何操作,并向注册的 IErrorRecorder 发出可恢复错误 ErrorCode::kINVALID_ARGUMENT

如果池的大小大于配置的最大可能值,则此函数不执行任何操作,并发出 ErrorCode::kUNSUPPORTED_STATE

如果在构建网络时请求的设备类型上不存在该池,则会向记录器发出警告,并且内存池值将被忽略。

请参阅 MemoryPoolType 以查看每个池的大小要求。

参数
pool要限制可用内存的内存池。
poolSize池的大小(以字节为单位)。
参见
getMemoryPoolLimit, MemoryPoolType

◆ setPluginsToSerialize()

void nvinfer1::IBuilderConfig::setPluginsToSerialize ( char const *const *  paths,
int32_t  nbPaths 
)
inlinenoexcept

设置要与版本兼容的引擎一起序列化的插件库。

库列表中的每个条目都必须是唯一的。

参数
paths插件库的路径。
nbPaths路径的数量。

◆ setPreviewFeature()

void nvinfer1::IBuilderConfig::setPreviewFeature ( PreviewFeature  feature,
bool  enable 
)
inlinenoexcept

启用或禁用特定的预览功能。

允许启用或禁用实验性功能,这些功能在当前版本中默认未启用。

有关更多信息和可用功能列表,请参阅 PreviewFeature。

参数
feature要启用/禁用的功能
enabletrue 表示启用,false 表示禁用
参见
PreviewFeature, getPreviewFeature

◆ setProfileStream()

void nvinfer1::IBuilderConfig::setProfileStream ( const cudaStream_t  stream)
inlinenoexcept

设置用于分析此网络的 CUDA 流。

参数
stream构建器用于分析的 CUDA 流。
参见
getProfileStream()

◆ setProfilingVerbosity()

void nvinfer1::IBuilderConfig::setProfilingVerbosity ( ProfilingVerbosity  verbosity)
inlinenoexcept

设置 NVTX 注释和 IEngineInspector 中公开的层信息的详细程度。

控制 NVTX 注释和 IEngineInspector 中将公开多少层信息。

参见
ProfilingVerbosity, getProfilingVerbosity(), IEngineInspector

◆ setProgressMonitor()

void nvinfer1::IBuilderConfig::setProgressMonitor ( IProgressMonitor monitor)
inlinenoexcept

设置用于构建网络的进度监视器。

参数
monitor要分配给 IBuilderConfig 的进度监视器。

进度监视器在执行编译器的不同阶段时向应用程序发出信号。设置为 nullptr 将取消设置监视器,以便不向应用程序发出信号。

参见
IBuilderConfig::getProgressMonitor

◆ setQuantizationFlag()

void nvinfer1::IBuilderConfig::setQuantizationFlag ( QuantizationFlag  flag)
inlinenoexcept

设置单个量化标志。

将输入量化标志添加到已启用的量化标志。

参见
setQuantizationFlags()

◆ setQuantizationFlags()

void nvinfer1::IBuilderConfig::setQuantizationFlags ( QuantizationFlags  flags)
inlinenoexcept

设置量化标志。

标志在 QuantizationFlag 枚举中列出。标志设置配置选项以在 int8 中量化网络。

参数
flags量化标志。
注意
此函数将覆盖先前设置的标志,而不是按位或运算新标志。
参见
getQuantizationFlags()

◆ setRuntimePlatform()

void nvinfer1::IBuilderConfig::setRuntimePlatform ( RuntimePlatform  runtimePlatform)
inlinenoexcept

设置运行时执行的目标平台。

跨平台兼容性允许在不同平台上构建和执行引擎。

默认跨平台目标为 RuntimePlatform::kSAME_AS_BUILD

参数
runtimePlatform运行时执行的目标平台。
参见
IBuilderConfig::getRuntimePlatform()

◆ setTacticSources()

bool nvinfer1::IBuilderConfig::setTacticSources ( TacticSources  tacticSources)
inlinenoexcept

设置策略来源。

此位集控制 TensorRT 允许使用哪些策略来源进行策略选择。

多个策略来源可以使用按位 OR 运算组合。例如,要启用 cublas 和 cublasLt 作为策略来源,请使用以下值

1U << static_cast<uint32_t>(TacticSource::kCUBLAS) | 1U << static_cast<uint32_t>(TacticSource::kCUBLAS_LT)

参见
getTacticSources
返回值
如果构建配置中的策略来源已更新,则为 true。如果提供的值无效,则不会更新构建配置中的策略来源。

◆ setTilingOptimizationLevel()

bool nvinfer1::IBuilderConfig::setTilingOptimizationLevel ( TilingOptimizationLevel  level)
inlinenoexcept

设置 Tiling 优化级别。

Tiling 允许 TensorRT 尝试片上缓存策略。

默认 getTilingOptimizationLevel 为 TilingOptimizationLevel::kNONE

参数
levelTiling 优化的级别。
返回值
如果成功,则为 True,否则为 false

◆ setTimingCache()

bool nvinfer1::IBuilderConfig::setTimingCache ( ITimingCache const &  cache,
bool  ignoreMismatch 
)
inlinenoexcept

将 timing cache 附加到 IBuilderConfig

timing cache 具有验证标头,以确保提供的缓存可以在当前环境中使用。如果提供的缓存中的 CUDA 设备属性与当前环境不同,则将报告失败。ignoreMismatch = true 会跳过严格验证,并允许加载从不同设备创建的缓存。

在构建引擎之前,不得销毁缓存。

参数
cache要使用的 timing cache
ignoreMismatch是否允许使用包含不同 CUDA 设备属性的缓存
返回值
如果设置成功,则为 true,否则为 false
警告
使用从具有不同 CUDA 设备属性的设备生成的缓存可能会导致功能/性能错误。

成员数据文档

◆ mImpl

apiv::VBuilderConfig* nvinfer1::IBuilderConfig::mImpl
protected

此类文档从以下文件生成

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