快捷方式

Struct CompileSpec

Struct 文档

struct CompileSpec

Torch-TensorRT TorchScript 编译的设置数据结构

公共函数

TORCHTRT_API CompileSpec(std::vector<std::vector<int64_t>> fixed_sizes)

构造一个新的 Compile Spec 对象。便捷构造函数,用于从描述输入张量大小的向量设置固定输入大小。向量中的每个条目代表一个输入,应按调用顺序提供。

在所有输入均为静态大小,并且您可以接受默认输入 dtype 和格式(FP32 用于 FP32 和 INT8 权重,FP16 用于 FP16 权重,连续)的情况下,应使用此构造函数作为便捷方式

参数

fixed_sizes

TORCHTRT_API CompileSpec(std::vector<c10::ArrayRef<int64_t>> fixed_sizes)

构造一个新的 Compile Spec 对象。便捷构造函数,用于从 c10::ArrayRef(tensor.sizes() 的输出)设置固定输入大小,描述输入张量的大小。向量中的每个条目代表一个输入,应按调用顺序提供。

在所有输入均为静态大小,并且您可以接受默认输入 dtype 和格式(FP32 用于 FP32 和 INT8 权重,FP16 用于 FP16 权重,连续)的情况下,应使用此构造函数作为便捷方式

参数

fixed_sizes

TORCHTRT_API CompileSpec(std::vector<Input> inputs)

从输入范围构造一个新的 Compile Spec 对象。向量中的每个条目代表一个输入,应按调用顺序提供。

使用此构造函数定义具有动态形状、特定输入类型或张量格式的输入

参数

inputs

TORCHTRT_API CompileSpec(torch::jit::IValue input_signature)

从 IValue 构造一个新的 Compile Spec 对象,该 IValue 表示模块的输入张量的嵌套。

参数

input_signature

公共成员

GraphInputs graph_inputs

引擎输入的规范,可以存储 IValue,其中存储了复杂的 Input 或扁平化的 Input

std::set<DataType> enabled_precisions = {DataType::kFloat}

TensorRT 在编译期间允许内核使用的精度集。

bool disable_tf32 = false

阻止 Float32 层使用 TF32 数据格式

TF32 通过在乘法之前将输入四舍五入到 10 位尾数来计算内积,但使用 23 位尾数累积总和。这是 FP32 层的默认行为。

bool sparse_weights = false

为 conv 和 FC 层的权重启用稀疏性

bool refit = false

构建可重新拟合的引擎

bool debug = false

构建可调试的引擎

bool truncate_long_and_double = false

将 long/double 类型截断为 int/float 类型

bool allow_shape_tensors = false

允许图形中存在形状张量(来自 IShape 层)

Device device

目标 Device

EngineCapability capability = EngineCapability::kSTANDARD

设置引擎的限制(CUDA 安全性)

uint64_t num_avg_timing_iters = 1

用于选择内核的平均计时迭代次数

uint64_t workspace_size = 0

提供给 TensorRT 的最大工作区大小

uint64_t dla_sram_size = 1048576

DLA 使用的快速软件管理 RAM,用于在层内通信。

uint64_t dla_local_dram_size = 1073741824

DLA 使用的主机 RAM,用于跨操作共享中间张量数据

uint64_t dla_global_dram_size = 536870912

DLA 使用的主机 RAM,用于存储权重和元数据以供执行

nvinfer1::IInt8Calibrator *ptq_calibrator = nullptr

后训练量化的每个输入的校准数据加载器

bool require_full_compilation = false

要求将整个模块编译为 TensorRT,而不是可能在 PyTorch 中运行不受支持的操作

uint64_t min_block_size = 3

将子图编译为 TensorRT 的最小连续支持运算符数

std::vector<std::string> torch_executed_ops

必须在 PyTorch 中运行的 aten 运算符列表。如果此列表不为空但 require_full_compilation 为 True,则会抛出错误

std::vector<std::string> torch_executed_modules

必须在 PyTorch 中运行的模块列表。如果此列表不为空但 require_full_compilation 为 True,则会抛出错误

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源