wego_torch::core::CompileOptions
该 C++ 类对象用于为 WeGO-Torch 指定编译选项。您需创建该类的实例,并将其作为实参传递给 wego_torch::core::Compile 函数。
类型 | 名称 | 描述 |
---|---|---|
wego_torch::AccuracyMode | accuracy_mode | 确定精度模式。它有 2 种不同类型:
|
wego_torch::core::PartitionOptions | partition_options | 设置分区选项。请参阅 wego_torch::core::PartitionOptions 类,获取更多详细信息。 |
std::vector<InputMeta> | inputs_meta | wego_torch::InputMeta 的矢量,对应模型的每项输入。 |
uint32_t | thread_parallel | 该参数用于最优化性能。 |
uint32_t | core_parallel | 该参数用于最优化性能。 |
wego_torch::core::DebugOptions | debug_options | 设置调试选项。请参阅 wego_torch::core::DebugOptions 类,获取更多详细信息。 |
wego_torch::core::PartitionOptions
适用于 WeGO 分区配置的选项。
类型 | 名称 | 描述 |
---|---|---|
uint32_t | wego_subgraph_min_ops_number |
当前,WeGO 使用贪婪方法将运算符分配 DPU,前提是 DPU 兼容这些运算符。但此方法可能导致下列问题:
以下选项是专为解决此问题而添加的:wego_subgraph_min_ops_number。它会为要在 DPU 上执行的 DPU 子计算图设置最小运算符数。如不使用该选项,那么即使 DPU 支持所有运算符,也仍会在 CPU 上执行。
注释: wego_subgraph_min_ops_number = 0 表示无限。
|
std::vector<std::string> | extra_accel_op_list | DPU 可运行各种 DL 运算符,但存在一些约束(例如,DPUCVDX8H_ISA1_F2W4_4PE 只能支持含 1 到 16 个内核与 1 到 4 个步幅的卷积)。WeGO 使用 DPU 限制检查引擎基于运算符的 DPU 兼容性来进行运算符分区。但某些运算符具有复杂的兼容性规则,这些规则可能导致开销过多。WeGO 默认不会将其分派给 DPU,而是由您在 extra_accel_op_list 中指定要加速的运算符。下列运算符可添加到 extra_accel_op_list 中以供 DPU 执行:
注释: 如果 WeGO 在编译 extra_accel_op_list 中列出的运算符时遇到错误,则表明 DPU 无法对该特定运算符进行加速。但如未报告错误,则表示确实可以成功加速这些运算符。
|
wego_torch::core::DebugOptions
用于 WeGO 调试的选项。
类型 | 名称 | 描述 |
---|---|---|
bool | accuracy_debug | 要为存在精度问题的子计算图启用输入和输出值的转储,请将该值设置为 true。这样即可记录这些子计算图的输入和输出。默认值为 false。 |
wego_torch::InputMeta
用于描述量化模型的输入的元信息。由于 Vitis AI 工具链的限制,WeGO-Torch 仅支持以静态类型和形状进行编译。您必须明确传递每个输入的日期类型和形状信息,以便 WeGO-Torch 进行类型和形状推理。
类型 | 名称 | 描述 |
---|---|---|
wego_torch::DataType | type_ | 当前输入张量的数据类型。可设为:wego_torch::DataType::kBool、wego_torch::DataType::kInt32 或 wego_torch::DataType::kFloat32。 |
wego_torch::ShapeType | input_shape_ | 当前输入张量的输入形状。 |
wego_torch::TargetInfo
该 C++ 类对象充当 DPU 目标信息的封装文件,可提供对板载 DPU 目标的 批次、名称、指纹和指纹驱动的信息的访问。
类型 | 名称 | 描述 |
---|---|---|
std::string | name | DPU 目标的名称 |
uint64_t | fingerprint | 板载 DPU 目标的指纹 |
bool | is_fingerprint_driven | 指示 DPU 子计算图是基于指纹还是目标名称来编译的。 |
uint32_t | batch | 板载 DPU 目标所支持的批次大小 |