算法选择器

警告

算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。

class tensorrt.IAlgorithmIOInfo

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。此类包含关于算法输入或输出的信息。所有输入和输出的 IAlgorithmIOInfo 以及 IAlgorithmVariant 表示算法的变体,可用于使用 IAlgorithmSelector.select_algorithms() 选择或重现算法。

变量:
  • dtypeDataType 算法输入/输出的 DataType。

  • stridesDims 算法输入/输出张量的 strides。

  • vectorized_dimint 向量化维度的索引,对于非向量化格式为 -1。

  • components_per_elementint 每个元素的组件数。对于非向量化格式,这始终为 1。

__init__(*args, **kwargs)
class tensorrt.IAlgorithmVariant

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。提供一个唯一的 128 位标识符,该标识符与输入和输出信息一起表示算法的变体,可用于使用 IAlgorithmSelector.select_algorithms() 选择或重现算法,请参阅 IAlgorithmIOInfo、IAlgorithm、IAlgorithmSelector.select_algorithms() 注意:单个实现可以有多种策略。

变量:
  • implementationint 算法的实现。

  • tacticint 算法的策略。

__init__(*args, **kwargs)
class tensorrt.IAlgorithmContext

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。描述了上下文和需求,这些上下文和需求可以由一个或多个 IAlgorithm 实例满足。请参阅 IAlgorithm

变量:
  • namestr 算法节点的名称。

  • num_inputsint 算法的输入数量。

  • num_outputsint 算法的输出数量。

__init__(*args, **kwargs)
get_shape(self: tensorrt.tensorrt.IAlgorithmContext, index: int) List[tensorrt.tensorrt.Dims]

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。获取动态输入张量的最小/最佳/最大维度。

参数:

index – 算法的输入或输出的索引。递增的数字分配给输入和输出的索引。

返回:

长度为 3 的 List[Dims],按顺序包含最小、最佳和最大形状。如果尚未设置形状,则返回一个空列表。

class tensorrt.IAlgorithm

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。应用程序实现的接口,用于选择和报告层的策略选择。策略选择是构建器执行的步骤,用于确定层的最佳算法。

变量:
  • algorithm_variantIAlgorithmVariant& 算法变体。

  • timing_msecfloat 执行算法的时间,以毫秒为单位。

  • workspace_sizeint 算法在执行时使用的 GPU 临时内存大小,以字节为单位。

__init__(*args, **kwargs)
get_algorithm_io_info(self: tensorrt.tensorrt.IAlgorithm, index: int) tensorrt.tensorrt.IAlgorithmIOInfo

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。对输入和输出的单个调用。递增的数字分配给输入和输出的索引。

参数:

index – 算法的输入或输出的索引。递增的数字分配给输入和输出的索引。

返回:

一个 IAlgorithmIOInfo&

class tensorrt.IAlgorithmSelector(self: tensorrt.tensorrt.IAlgorithmSelector)

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。应用程序实现的接口,用于选择和报告构建器提供的层的算法。注意:在算法选择的上下文中,层可能与 INetworkDefinition 中的 ILayer 不同。例如,一个算法可能正在实现 INetworkDefinition 中多个 ILayer 的组合。

要实现自定义算法选择器,请确保在 __init__() 中显式实例化基类

class MyAlgoSelector(trt.IAlgorithmSelector):
    def __init__(self):
        trt.IAlgorithmSelector.__init__(self)
__init__(self: tensorrt.tensorrt.IAlgorithmSelector) None
report_algorithms(self: tensorrt.tensorrt.IAlgorithmSelector, contexts: List[tensorrt.tensorrt.IAlgorithmContext], choices: List[tensorrt.tensorrt.IAlgorithm]) None

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。由 TensorRT 调用以报告其做出的选择。

注意:对于给定的优化配置文件,此调用在所有 select_algorithms 调用之后进行。choices[i] 是 TensorRT 为 algoContexts[i] 做出的选择,其中 i 在 [0, num_algorithms-1] 中

例如,可能的实现可能如下所示

def report_algorithms(self, contexts, choices):
    # Prints the time of the chosen algorithm by TRT from the
    # selection list passed in by select_algorithms
    for choice in choices:
        print(choice.timing_msec)
参数:
  • contexts – 所有算法上下文的列表。

  • choices – TensorRT 针对每个上下文做出的算法选择列表。

select_algorithms(self: tensorrt.tensorrt.IAlgorithmSelector, context: tensorrt.tensorrt.IAlgorithmContext, choices: List[tensorrt.tensorrt.IAlgorithm]) List[int]

[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。从给定的算法选择列表中为层选择算法。

注意:TRT 使用其默认算法选择从用户返回的列表中进行选择。如果返回的列表为空,则除非设置了严格的类型约束,否则将使用 TRT 的默认算法选择。选择列表仅对这个特定的算法上下文有效。

例如,最简单的实现如下所示

def select_algorithms(self, context, choices):
    assert len(choices) > 0
    return list(range(len(choices)))
参数:
  • context – 算法选择有效的上下文。

  • choices – 要为该层的实现选择的算法选择列表。

返回:

一个 List[int],指示 TensorRT 应从 choices 向量中选择的索引。