配置

模块: 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