快捷方式

Struct CompileSpec

結構體文件

struct CompileSpec

Torch-TensorRT TorchScript 編譯的設定資料結構

公共函式

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

從描述輸入張量大小的向量構造新的 Compile Spec 物件。用於設定固定輸入大小的便捷建構函式。向量中的每個條目代表一個輸入,應按呼叫順序提供。

在所有輸入均為靜態大小且您可以使用預設輸入資料型別和格式(對於 FP32 和 INT8 權重使用 FP32,對於 FP16 權重使用 FP16,contiguous)的情況下,應使用此建構函式作為便捷方式。

引數

fixed_sizes

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

從 c10::ArrayRef (tensor.sizes() 的輸出) 描述輸入張量大小構造新的 Compile Spec 物件。用於設定固定輸入大小的便捷建構函式。向量中的每個條目代表一個輸入,應按呼叫順序提供。

在所有輸入均為靜態大小且您可以使用預設輸入資料型別和格式(對於 FP32 和 INT8 權重使用 FP32,對於 FP16 權重使用 FP16,contiguous)的情況下,應使用此建構函式作為便捷方式。

引數

fixed_sizes

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

從輸入範圍構造新的 Compile Spec 物件。向量中的每個條目代表一個輸入,應按呼叫順序提供。

使用此建構函式定義具有動態形狀、特定輸入型別或張量格式的輸入

引數

inputs

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

從表示模組輸入張量巢狀的 IValue 構造新的 Compile Spec 物件。

引數

input_signature

公共成員

GraphInputs graph_inputs

引擎輸入的規範,可以儲存具有複雜 Input 的 IValue 或扁平化的 Input

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

TensorRT 在編譯期間允許用於核心的精度集。

bool disable_tf32 = false

阻止 Float32 層使用 TF32 資料格式

TF32 透過在乘法前將輸入四捨五入到 10 位尾數來計算內積,但使用 23 位尾數累積總和。這是 FP32 層預設的行為。

bool sparse_weights = false

對卷積層和全連線層的權重啟用稀疏性

bool refit = false

構建一個可重配(refitable)的引擎

bool debug = false

構建一個可除錯(debugable)的引擎

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 全面的開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源