算法选择器¶
警告
算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。
- class tensorrt.IAlgorithmIOInfo¶
[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。此类包含关于算法输入或输出的信息。所有输入和输出的 IAlgorithmIOInfo 以及 IAlgorithmVariant 表示算法的变体,可用于使用 IAlgorithmSelector.select_algorithms() 选择或重现算法。
- 变量:
- __init__(*args, **kwargs)¶
- class tensorrt.IAlgorithmVariant¶
[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。提供一个唯一的 128 位标识符,该标识符与输入和输出信息一起表示算法的变体,可用于使用 IAlgorithmSelector.select_algorithms() 选择或重现算法,请参阅 IAlgorithmIOInfo、IAlgorithm、IAlgorithmSelector.select_algorithms() 注意:单个实现可以有多种策略。
- 变量:
implementation –
int
算法的实现。tactic –
int
算法的策略。
- __init__(*args, **kwargs)¶
- class tensorrt.IAlgorithmContext¶
[已弃用] 算法选择器在 TensorRT 10.8 中已弃用。请改用 ITimingCache 中的可编辑模式。描述了上下文和需求,这些上下文和需求可以由一个或多个 IAlgorithm 实例满足。请参阅 IAlgorithm
- 变量:
name –
str
算法节点的名称。num_inputs –
int
算法的输入数量。num_outputs –
int
算法的输出数量。
- __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_variant –
IAlgorithmVariant&
算法变体。timing_msec –
float
执行算法的时间,以毫秒为单位。workspace_size –
int
算法在执行时使用的 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 向量中选择的索引。