ICudaEngine¶
- tensorrt.TensorIOMode¶
TensorRT 的 IO 张量模式。
成员
NONE : 张量既不是输入也不是输出。
INPUT : 张量是引擎的输入。
OUTPUT : 张量是引擎的输出。
- class tensorrt.ICudaEngine¶
用于在构建的网络上执行推理的
ICudaEngine
。引擎可以使用
[]
进行索引。当使用整数进行索引时,它将返回相应的绑定名称。当使用字符串进行索引时,它将返回相应的绑定索引。- 变量:
num_io_tensors –
int
IO 张量的数量。has_implicit_batch_dimension –
bool
[已弃用] 在 TensorRT 10.0 中已弃用。由于已删除隐式批次维度支持,因此始终为 false。num_layers –
int
网络中的层数。网络中的层数不一定是原始INetworkDefinition
中的数量,因为在优化ICudaEngine
时,层可能会被组合或消除。此值在构建每层表时可能很有用,例如在聚合多次执行的性能分析数据时。max_workspace_size –
int
ICudaEngine
使用的工作区大小。工作区大小将不大于构建ICudaEngine
时提供给Builder
的值,并且通常会更小。将为每个IExecutionContext
分配工作区。device_memory_size –
int
IExecutionContext
所需的设备内存量。device_memory_size_v2 –
int
IExecutionContext
所需的设备内存量。返回值取决于是否启用了权重流式传输预算。refittable –
bool
引擎是否可以重拟合。name –
str
与引擎关联的网络名称。名称在网络创建期间设置,并在构建或反序列化后检索。num_optimization_profiles –
int
为此引擎定义的优化配置数量。这始终至少为 1。error_recorder –
IErrorRecorder
应用程序实现的 TensorRT 对象错误报告接口。engine_capability –
EngineCapability
引擎能力。有关详细信息,请参阅EngineCapability
。tactic_sources –
int
此引擎所需的策略来源。profiling_verbosity – 构建引擎时构建器配置设置的性能分析详细程度。
hardware_compatibility_level – 引擎的硬件兼容性级别。
num_aux_streams – 只读。此引擎使用的辅助流数量,它将小于或等于通过在构建引擎时设置 builder_config.max_aux_streams 允许的最大辅助流数量。
weight_streaming_budget – [已弃用] 在 TensorRT 10.1 中已弃用,已被 weight_streaming_budget_v2 取代。设置和获取当前用于推理的权重流式传输预算。预算可以设置为 -1(在运行时禁用权重流式传输),0(默认值)(使 TRT 选择是否进行权重流式传输),或包含范围 [minimum_weight_streaming_budget, streamable_weights_size - 1] 内的正值。
minimum_weight_streaming_budget – [已弃用] 在 TensorRT 10.1 中已弃用,已被 weight_streaming_budget_v2 取代。返回成功运行网络所需的最小权重流式传输预算(以字节为单位)。引擎必须已使用 kWEIGHT_STREAMING 构建。
streamable_weights_size – 返回引擎中可流式传输权重的大小。这可能不包括所有权重。
weight_streaming_budget_v2 – 设置和获取当前用于推理的权重流式传输预算。预算可以设置为任何非负值。值为 0 时流式传输的权重最多。值等于 streamable_weights_size(默认值)或更大值将禁用权重流式传输。
weight_streaming_scratch_memory_size – TensorRT ExecutionContext 执行推理所需的暂存内存量。此值可能会根据当前的权重流式传输预算而变化。请使用 V2 内存 API,engine.device_memory_size_v2 和 ExecutionContext.set_device_memory() 来提供包含当前权重流式传输暂存内存的内存。不指定这些 API 或使用 V1 API 将不包括此内存,因此 TensorRT 将自行分配。
- __del__(self: tensorrt.tensorrt.ICudaEngine) None ¶
- __exit__(exc_type, exc_value, traceback)¶
上下文管理器已弃用,并且没有效果。当引用计数达到 0 时,对象会自动释放。
- __getitem__(self: tensorrt.tensorrt.ICudaEngine, arg0: int) str ¶
- __init__(*args, **kwargs)¶
- create_engine_inspector(self: tensorrt.tensorrt.ICudaEngine) tensorrt.tensorrt.EngineInspector ¶
创建一个
IEngineInspector
,它会打印出引擎或执行上下文的层信息。- 返回:
IEngineInspector
。
- create_execution_context(self: tensorrt.tensorrt.ICudaEngine, strategy: tensorrt.tensorrt.ExecutionContextAllocationStrategy = <ExecutionContextAllocationStrategy.STATIC: 0>) tensorrt.tensorrt.IExecutionContext ¶
创建一个
IExecutionContext
并指定设备内存分配策略。- 返回:
新创建的
IExecutionContext
。
- create_execution_context_without_device_memory(self: tensorrt.tensorrt.ICudaEngine) tensorrt.tensorrt.IExecutionContext ¶
创建一个未分配任何设备内存的
IExecutionContext
。此设备上下文的执行内存必须由应用程序提供。- 返回:
一个未分配设备内存的
IExecutionContext
。
- create_serialization_config(self: tensorrt.tensorrt.ICudaEngine) tensorrt.tensorrt.ISerializationConfig ¶
创建一个序列化配置对象。
- get_device_memory_size_for_profile(self: tensorrt.tensorrt.ICudaEngine, profile_index: int) int ¶
返回特定配置所需的设备内存大小。
- 参数:
profile_index – 配置的索引。
- get_device_memory_size_for_profile_v2(self: tensorrt.tensorrt.ICudaEngine, profile_index: int) int ¶
返回特定配置所需的设备内存大小。
返回值将根据以下 API 调用而更改 1. setWeightStreamingBudgetV2
- 参数:
profile_index – 配置的索引。
- get_tensor_bytes_per_component(*args, **kwargs)¶
重载函数。
get_tensor_bytes_per_component(self: tensorrt.tensorrt.ICudaEngine, name: str) -> int
get_tensor_bytes_per_component(self: tensorrt.tensorrt.ICudaEngine, name: str, profile_index: int) -> int
- get_tensor_components_per_element(*args, **kwargs)¶
重载函数。
get_tensor_components_per_element(self: tensorrt.tensorrt.ICudaEngine, name: str) -> int
get_tensor_components_per_element(self: tensorrt.tensorrt.ICudaEngine, name: str, profile_index: int) -> int
- get_tensor_dtype(self: tensorrt.tensorrt.ICudaEngine, name: str) tensorrt.tensorrt.DataType ¶
从张量名称返回缓冲区所需的数据类型。
- 参数:
name – 张量名称。
- get_tensor_format(*args, **kwargs)¶
重载函数。
get_tensor_format(self: tensorrt.tensorrt.ICudaEngine, name: str) -> tensorrt.tensorrt.TensorFormat
返回张量格式。
- arg name:
张量名称。
get_tensor_format(self: tensorrt.tensorrt.ICudaEngine, name: str, profile_index: int) -> tensorrt.tensorrt.TensorFormat
返回张量格式。
- arg name:
张量名称。
- get_tensor_format_desc(*args, **kwargs)¶
重载函数。
get_tensor_format_desc(self: tensorrt.tensorrt.ICudaEngine, name: str) -> str
返回张量格式的人类可读描述。
描述包括顺序、向量化、数据类型、步幅等。例如
示例 1:CHW + FP32“行主序线性 FP32 格式”示例 2:CHW2 + FP16“两通道宽向量化行主序 FP16 格式”示例 3:HWC8 + FP16 + 行步幅 = 32“通道主序 FP16 格式,其中 C % 8 == 0 且 H 步幅 % 32 == 0”- arg name:
张量名称。
get_tensor_format_desc(self: tensorrt.tensorrt.ICudaEngine, name: str, profile_index: int) -> str
返回张量格式的人类可读描述。
描述包括顺序、向量化、数据类型、步幅等。例如
示例 1:CHW + FP32“行主序线性 FP32 格式”示例 2:CHW2 + FP16“两通道宽向量化行主序 FP16 格式”示例 3:HWC8 + FP16 + 行步幅 = 32“通道主序 FP16 格式,其中 C % 8 == 0 且 H 步幅 % 32 == 0”- arg name:
张量名称。
- get_tensor_location(self: tensorrt.tensorrt.ICudaEngine, name: str) tensorrt.tensorrt.TensorLocation ¶
确定输入或输出张量是否必须在 GPU 或 CPU 上。
- 参数:
name – 张量名称。
- get_tensor_mode(self: tensorrt.tensorrt.ICudaEngine, name: str) tensorrt.tensorrt.TensorIOMode ¶
确定张量是输入张量还是输出张量。
- 参数:
name – 张量名称。
- get_tensor_name(self: tensorrt.tensorrt.ICudaEngine, index: int) str ¶
返回输入或输出张量的名称。
- 参数:
index – 张量索引。
- get_tensor_profile_shape(self: tensorrt.tensorrt.ICudaEngine, name: str, profile_index: int) List[tensorrt.tensorrt.Dims] ¶
获取优化配置下特定张量的最小/最佳/最大维度。
- 参数:
name – 张量名称。
profile_index – 配置的索引。
- get_tensor_profile_values(self: tensorrt.tensorrt.ICudaEngine, name: int, profile_index: str) List[List[int]] ¶
获取优化配置下输入形状绑定的最小/最佳/最大值。如果指定的绑定不是输入形状绑定,则会引发异常。
- 参数:
name – 张量名称。
profile_index – 配置的索引。
- 返回:
长度为 3 的
List[List[int]]
,按顺序包含最小值、最佳值和最大值。如果尚未设置值,则返回一个空列表。
- get_tensor_shape(self: tensorrt.tensorrt.ICudaEngine, name: str) tensorrt.tensorrt.Dims ¶
返回输入或输出张量的形状。
- 参数:
name – 张量名称。
- get_tensor_vectorized_dim(*args, **kwargs)¶
重载函数。
get_tensor_vectorized_dim(self: tensorrt.tensorrt.ICudaEngine, name: str) -> int
返回缓冲区向量化的维度索引。
具体来说,如果每个向量的标量数为 1,则返回 -1。
- arg name:
张量名称。
get_tensor_vectorized_dim(self: tensorrt.tensorrt.ICudaEngine, name: str, profile_index: int) -> int
返回缓冲区向量化的维度索引。
具体来说,如果每个向量的标量数为 1,则返回 -1。
- arg name:
张量名称。
- get_weight_streaming_automatic_budget(self: tensorrt.tensorrt.ICudaEngine) int ¶
根据可用的设备内存获取自动权重流式传输预算。此值可能会在 TensorRT 主要版本和次要版本之间发生变化。请使用 CudaEngine.weight_streaming_budget_v2 设置返回的预算。
- is_debug_tensor(self: tensorrt.tensorrt.ICudaEngine, name: str) bool ¶
确定给定的名称是否对应于调试张量。
- 参数:
name – 张量名称。
- is_shape_inference_io(self: tensorrt.tensorrt.ICudaEngine, name: str) bool ¶
确定张量是否被 infer_shapes 读取或写入。
- 参数:
name – 张量名称。
- serialize(self: tensorrt.tensorrt.ICudaEngine) tensorrt.tensorrt.IHostMemory ¶
将引擎序列化为流。
- 返回:
包含序列化
ICudaEngine
的IHostMemory
对象。
- serialize_with_config(self: tensorrt.tensorrt.ICudaEngine, arg0: tensorrt.tensorrt.ISerializationConfig) tensorrt.tensorrt.IHostMemory ¶
将网络序列化为流。