配置
模块: polygraphy.backend.trt
- class CreateConfig(tf32=None, fp16=None, int8=None, profiles=None, calibrator=None, precision_constraints=None, load_timing_cache=None, algorithm_selector=None, sparse_weights=None, tactic_sources=None, restricted=None, use_dla=None, allow_gpu_fallback=None, profiling_verbosity=None, memory_pool_limits=None, refittable=None, strip_plan=None, preview_features=None, engine_capability=None, direct_io=None, builder_optimization_level=None, fp8=None, hardware_compatibility_level=None, max_aux_streams=None, version_compatible=None, exclude_lean_runtime=None, quantization_flags=None, error_on_timing_cache_miss=None, bf16=None, disable_compilation_cache=None, progress_monitor=None, weight_streaming=None, runtime_platform=None, tiling_optimization_level=None)[source]
基类:
BaseLoader
用于创建 TensorRT IBuilderConfig 的函子。
创建一个可被 EngineFromNetwork 使用的 TensorRT IBuilderConfig。
- 参数:
tf32 (bool) – 是否启用 TF32 精度构建引擎。默认为 False。
fp16 (bool) – 是否启用 FP16 精度构建引擎。默认为 False。
int8 (bool) – 是否启用 INT8 精度构建引擎。默认为 False。
profiles (List[Profile]) – 要添加到配置中的优化配置列表。仅当网络具有动态输入形状时才需要。如果对于具有动态形状的网络省略此项,则会创建一个默认配置,其中动态维度将替换为 Polygraphy 的 DEFAULT_SHAPE_VALUE (在 constants.py 中定义)。部分填充的配置将使用
Profile.fill_defaults()
中的值自动填充。 有关详细信息,请参阅Profile
。calibrator (trt.IInt8Calibrator) – int8 校准器。仅当网络在 int8 模式下没有显式精度时才需要。对于具有动态形状的网络,校准期间使用提供的最后一个配置(如果未提供配置,则使用默认配置)。
precision_constraints (Optional[str]) – 如果设置为“obey”,则要求层以指定的精度执行。如果设置为“prefer”,则优先让层以指定的精度执行,但如果请求的精度不存在实现,则允许 TRT 回退到其他精度。否则,精度约束将被忽略。默认为 None。
load_timing_cache (Union[str, file-like]) – 用于从中加载策略计时缓存的路径或类似文件的对象。提供策略计时缓存可以加快引擎构建过程。缓存可以在构建引擎时生成,例如使用 EngineFromNetwork。如果提供路径,则该文件将被锁定以进行独占访问,以便其他进程在读取缓存时无法更新缓存。如果路径指定的文件不存在,CreateConfig 将发出警告并回退到使用空的计时缓存。
algorithm_selector (trt.IAlgorithmSelector) – 算法选择器。允许用户控制如何选择策略,而不是让 TensorRT 自动选择。
sparse_weights (bool) – 是否启用稀疏权重优化。默认为 False。
tactic_sources (List[trt.TacticSource]) – 要启用的策略源。这控制 TensorRT 允许从哪些库(例如 cudnn、cublas 等)加载策略。使用空列表禁用所有策略源。默认为 TensorRT 的默认策略源。
restricted (bool) – 是否在构建器中启用安全范围检查。这将检查网络和构建器配置是否与安全范围兼容。默认为 False。
use_dla (bool) – [实验性] 是否启用 DLA 作为默认设备类型。默认为 False。
allow_gpu_fallback (bool) – [实验性] 当启用 DLA 时,是否允许层回退到 GPU(如果它们无法在 DLA 上运行)。如果未启用 DLA,则无效。默认为 False。
profiling_verbosity (trt.ProfilingVerbosity) – 生成引擎中 NVTX 注解的详细程度。较高的详细程度允许您确定有关引擎的更多信息。默认为
trt.ProfilingVerbosity.VERBOSE
。memory_pool_limits (Dict[trt.MemoryPoolType, int]) – 不同内存池的限制。这应该是池类型与其各自的字节限制的映射。
refittable (bool) – 启用在构建引擎后使用新权重重新拟合引擎。默认为 False。
strip_plan (bool) – 从引擎计划文件中剥离可重新拟合的权重。默认为 False。
preview_features (List[trt.PreviewFeature]) – 要启用的预览功能。使用空列表禁用所有预览功能。默认为 TensorRT 的默认预览功能。
engine_capability (trt.EngineCapability) – 要构建的引擎功能。默认为默认的 TensorRT 引擎功能。
direct_io (bool) – 是否禁止使用用户指定的格式在网络输入/输出张量处重新格式化层。默认为 False。
builder_optimization_level (int) – 构建器优化级别。较高的优化级别允许优化器花费更多时间搜索优化机会。与使用较低优化级别构建的引擎相比,生成的引擎可能具有更好的性能。有关详细信息,请参阅 TensorRT API 文档。默认为 TensorRT 的默认优化级别。
fp8 (bool) – 是否启用 FP8 精度构建引擎。默认为 False。
hardware_compatibility_level (trt.HardwareCompatibilityLevel) – 硬件兼容性级别。这允许在一个 GPU 架构上构建的引擎在其他架构的 GPU 上工作。默认为 TensorRT 的默认硬件兼容性级别。
max_aux_streams (int) – TensorRT 允许使用的最大辅助流数。如果网络包含可以并行运行的运算符,则 TRT 可以使用辅助流(除了提供给 IExecutionContext::enqueueV3() 调用的流之外)执行它们。默认的最大辅助流数由 TensorRT 中的启发式方法确定,以确定启用多流是否会提高性能。
version_compatible (bool) – 是否构建版本兼容的引擎。
exclude_lean_runtime (bool) – 是否在版本兼容引擎中排除精简运行时。需要启用版本兼容性。
quantization_flags (List[trt.QuantizationFlag]) – 要启用的量化标志。使用空列表禁用所有量化标志。默认为 TensorRT 的默认量化标志。
error_on_timing_cache_miss (bool) – 当计时的策略不在计时缓存中时发出错误。仅当 IBuilderConfig 具有关联的 ITimingCache 时,此标志才有效。默认为 False。
bf16 (bool) – 是否启用 BF16 精度构建引擎。默认为 False。
disable_compilation_cache (bool) – 是否禁用缓存 JIT 编译的代码。默认为 False。
progress_monitor (trt.IProgressMonitor) – 进度监视器。允许用户通过 CLI 查看引擎构建进度。
weight_streaming (bool) – 是否为 TensorRT 引擎启用权重流式传输。
runtime_platform (trt.RuntimePlatform) – 描述 TensorRT 引擎执行的预期运行时平台(操作系统和 CPU 架构)。当目标运行时平台与构建平台不同时,TensorRT 提供对跨平台引擎兼容性的支持。默认为 TensorRT 的默认运行时平台。
tiling_optimization_level (trt.TilingOptimizationLevel) – tiling 优化级别。设置较高的优化级别允许 TensorRT 花费更多构建时间来获得更多 tiling 策略。默认为 TensorRT 的默认 tiling 优化级别。有关详细信息,请参阅 TensorRT API 文档。
- call_impl(builder, network)[source]
- 参数:
builder (trt.Builder) – 用于创建配置的 TensorRT 构建器。
network (trt.INetworkDefinition) – 要为其创建配置的 TensorRT 网络。该网络用于在未提供优化配置时自动创建默认优化配置。
- 返回:
TensorRT 构建器配置。
- 返回类型:
trt.IBuilderConfig
- __call__(*args, **kwargs)
通过将参数转发到
call_impl
来调用加载器。注意:
call_impl
不应直接调用 - 请改用此函数。
- create_config(builder, network, tf32=None, fp16=None, int8=None, profiles=None, calibrator=None, precision_constraints=None, load_timing_cache=None, algorithm_selector=None, sparse_weights=None, tactic_sources=None, restricted=None, use_dla=None, allow_gpu_fallback=None, profiling_verbosity=None, memory_pool_limits=None, refittable=None, strip_plan=None, preview_features=None, engine_capability=None, direct_io=None, builder_optimization_level=None, fp8=None, hardware_compatibility_level=None, max_aux_streams=None, version_compatible=None, exclude_lean_runtime=None, quantization_flags=None, error_on_timing_cache_miss=None, bf16=None, disable_compilation_cache=None, progress_monitor=None, weight_streaming=None, runtime_platform=None, tiling_optimization_level=None)
立即求值的功能变体
CreateConfig
。创建一个可被 EngineFromNetwork 使用的 TensorRT IBuilderConfig。
- 参数:
tf32 (bool) – 是否启用 TF32 精度构建引擎。默认为 False。
fp16 (bool) – 是否启用 FP16 精度构建引擎。默认为 False。
int8 (bool) – 是否启用 INT8 精度构建引擎。默认为 False。
profiles (List[Profile]) – 要添加到配置中的优化配置列表。仅当网络具有动态输入形状时才需要。如果对于具有动态形状的网络省略此项,则会创建一个默认配置,其中动态维度将替换为 Polygraphy 的 DEFAULT_SHAPE_VALUE (在 constants.py 中定义)。部分填充的配置将使用
Profile.fill_defaults()
中的值自动填充。 有关详细信息,请参阅Profile
。calibrator (trt.IInt8Calibrator) – int8 校准器。仅当网络在 int8 模式下没有显式精度时才需要。对于具有动态形状的网络,校准期间使用提供的最后一个配置(如果未提供配置,则使用默认配置)。
precision_constraints (Optional[str]) – 如果设置为“obey”,则要求层以指定的精度执行。如果设置为“prefer”,则优先让层以指定的精度执行,但如果请求的精度不存在实现,则允许 TRT 回退到其他精度。否则,精度约束将被忽略。默认为 None。
load_timing_cache (Union[str, file-like]) – 用于从中加载策略计时缓存的路径或类似文件的对象。提供策略计时缓存可以加快引擎构建过程。缓存可以在构建引擎时生成,例如使用 EngineFromNetwork。如果提供路径,则该文件将被锁定以进行独占访问,以便其他进程在读取缓存时无法更新缓存。如果路径指定的文件不存在,CreateConfig 将发出警告并回退到使用空的计时缓存。
algorithm_selector (trt.IAlgorithmSelector) – 算法选择器。允许用户控制如何选择策略,而不是让 TensorRT 自动选择。
sparse_weights (bool) – 是否启用稀疏权重优化。默认为 False。
tactic_sources (List[trt.TacticSource]) – 要启用的策略源。这控制 TensorRT 允许从哪些库(例如 cudnn、cublas 等)加载策略。使用空列表禁用所有策略源。默认为 TensorRT 的默认策略源。
restricted (bool) – 是否在构建器中启用安全范围检查。这将检查网络和构建器配置是否与安全范围兼容。默认为 False。
use_dla (bool) – [实验性] 是否启用 DLA 作为默认设备类型。默认为 False。
allow_gpu_fallback (bool) – [实验性] 当启用 DLA 时,是否允许层回退到 GPU(如果它们无法在 DLA 上运行)。如果未启用 DLA,则无效。默认为 False。
profiling_verbosity (trt.ProfilingVerbosity) – 生成引擎中 NVTX 注解的详细程度。较高的详细程度允许您确定有关引擎的更多信息。默认为
trt.ProfilingVerbosity.VERBOSE
。memory_pool_limits (Dict[trt.MemoryPoolType, int]) – 不同内存池的限制。这应该是池类型与其各自的字节限制的映射。
refittable (bool) – 启用在构建引擎后使用新权重重新拟合引擎。默认为 False。
strip_plan (bool) – 从引擎计划文件中剥离可重新拟合的权重。默认为 False。
preview_features (List[trt.PreviewFeature]) – 要启用的预览功能。使用空列表禁用所有预览功能。默认为 TensorRT 的默认预览功能。
engine_capability (trt.EngineCapability) – 要构建的引擎功能。默认为默认的 TensorRT 引擎功能。
direct_io (bool) – 是否禁止使用用户指定的格式在网络输入/输出张量处重新格式化层。默认为 False。
builder_optimization_level (int) – 构建器优化级别。较高的优化级别允许优化器花费更多时间搜索优化机会。与使用较低优化级别构建的引擎相比,生成的引擎可能具有更好的性能。有关详细信息,请参阅 TensorRT API 文档。默认为 TensorRT 的默认优化级别。
fp8 (bool) – 是否启用 FP8 精度构建引擎。默认为 False。
hardware_compatibility_level (trt.HardwareCompatibilityLevel) – 硬件兼容性级别。这允许在一个 GPU 架构上构建的引擎在其他架构的 GPU 上工作。默认为 TensorRT 的默认硬件兼容性级别。
max_aux_streams (int) – TensorRT 允许使用的最大辅助流数。如果网络包含可以并行运行的运算符,则 TRT 可以使用辅助流(除了提供给 IExecutionContext::enqueueV3() 调用的流之外)执行它们。默认的最大辅助流数由 TensorRT 中的启发式方法确定,以确定启用多流是否会提高性能。
version_compatible (bool) – 是否构建版本兼容的引擎。
exclude_lean_runtime (bool) – 是否在版本兼容引擎中排除精简运行时。需要启用版本兼容性。
quantization_flags (List[trt.QuantizationFlag]) – 要启用的量化标志。使用空列表禁用所有量化标志。默认为 TensorRT 的默认量化标志。
error_on_timing_cache_miss (bool) – 当计时的策略不在计时缓存中时发出错误。仅当 IBuilderConfig 具有关联的 ITimingCache 时,此标志才有效。默认为 False。
bf16 (bool) – 是否启用 BF16 精度构建引擎。默认为 False。
disable_compilation_cache (bool) – 是否禁用缓存 JIT 编译的代码。默认为 False。
progress_monitor (trt.IProgressMonitor) – 进度监视器。允许用户通过 CLI 查看引擎构建进度。
weight_streaming (bool) – 是否为 TensorRT 引擎启用权重流式传输。
runtime_platform (trt.RuntimePlatform) – 描述 TensorRT 引擎执行的预期运行时平台(操作系统和 CPU 架构)。当目标运行时平台与构建平台不同时,TensorRT 提供对跨平台引擎兼容性的支持。默认为 TensorRT 的默认运行时平台。
tiling_optimization_level (trt.TilingOptimizationLevel) – tiling 优化级别。设置较高的优化级别允许 TensorRT 花费更多构建时间来获得更多 tiling 策略。默认为 TensorRT 的默认 tiling 优化级别。有关详细信息,请参阅 TensorRT API 文档。
builder (trt.Builder) – 用于创建配置的 TensorRT 构建器。
network (trt.INetworkDefinition) – 要为其创建配置的 TensorRT 网络。该网络用于在未提供优化配置时自动创建默认优化配置。
- 返回:
TensorRT 构建器配置。
- 返回类型:
trt.IBuilderConfig
- class PostprocessConfig(config, func)[source]
基类:
BaseLoader
[实验性] 用于将给定的后处理函数应用于 TensorRT
IBuilderConfig
的函子。将给定的后处理函数应用于 TensorRT
IBuilderConfig
。- 参数:
config (Union[trt.IBuilderConfig, Callable[[trt.Builder, trt.INetworkDefinition], trt.IBuilderConfig]) – TensorRT IBuilderConfig 或接受 TensorRT 构建器和网络并返回配置的可调用对象。
func (Callable[[trt.Builder, trt.INetworkDefinition, trt.IBuilderConfig], None]) – 接受构建器、网络和配置参数并在适当位置修改配置的可调用对象。
- call_impl(builder, network)[source]
- 参数:
builder (trt.Builder) – 用于创建配置的 TensorRT 构建器。
network (trt.INetworkDefinition) – 要为其创建配置的 TensorRT 网络。该网络用于在未提供优化配置时自动创建默认优化配置。
- 返回:
修改后的构建器配置。
- 返回类型:
trt.IBuilderConfig
- __call__(*args, **kwargs)
通过将参数转发到
call_impl
来调用加载器。注意:
call_impl
不应直接调用 - 请改用此函数。
- postprocess_config(config, func, builder, network)
立即求值的功能变体
PostprocessConfig
。将给定的后处理函数应用于 TensorRT
IBuilderConfig
。- 参数:
config (Union[trt.IBuilderConfig, Callable[[trt.Builder, trt.INetworkDefinition], trt.IBuilderConfig]) – TensorRT IBuilderConfig 或接受 TensorRT 构建器和网络并返回配置的可调用对象。
func (Callable[[trt.Builder, trt.INetworkDefinition, trt.IBuilderConfig], None]) – 接受构建器、网络和配置参数并在适当位置修改配置的可调用对象。
builder (trt.Builder) – 用于创建配置的 TensorRT 构建器。
network (trt.INetworkDefinition) – 要为其创建配置的 TensorRT 网络。该网络用于在未提供优化配置时自动创建默认优化配置。
- 返回:
修改后的构建器配置。
- 返回类型:
trt.IBuilderConfig