专栏算法工具链AITC-J6流程解读:hb_compile使用

AITC-J6流程解读:hb_compile使用

Huanghui2024-11-19
150
0

1. 功能与代码文件说明

hb_compile是算法工具链PTQ量化流程所需使用的命令行工具,其实现过程通过Python脚本代码构建,通过以下命令我们可以定位查查看命令的实现过程。

  • 用户侧接口命令文件

  • Python安装包位置

  • 业务主流程代码(Python安装包文件/usr/local/lib/python3.10/dist-packages/horizon_tc_ui/hb_compile.py)

2. 使用方式

从上述代码,我们可以看出使用hb_compile工具对模型进行量化编译时有

  • 两种模式:

    • 快速性能评测模式:以参数 --fast-perf作为检查开启条件
    • 传统模型转换编译模式:以参数 --config / -c 作为检查开启条件

    注意:两种模式在编译时必须存其一,即:一个都没有是错误的,两个都有也是错误的。

  • 四个处理方向

    序号

    判断条件

    动作

    说明

    --config / -c

    --model

    --fast-perf

1 √ onnx_config_mode(config) 传统模型转换编译:根据配置文件进行onnx编译
2 √ √ fast_perf_mode(model, proto, march, input_shape) 快速性能评测:自动生成配置文件后进行onnx编译 3 √ √ bc_config_mode(config, model, march)
BC编译模式:对通过hbdk4.compiler修改后的bc模型进行后续的编译和节点移除
注:
1. 该方式需要--model为.bc结尾的模型文件
2. 该方式对--config中的模型文件不检查&不使用,但要保证yaml语法正确 4 √ check_mode(model, proto, march, input_shape) 模型可支持性检查

3. 典型场景

> onnx_config_mode

传统模型转换编译,用于根据用户指定的配置文件进行onnx编译。

> fast_perf_mode

基于自动生成配置文件进行快速性能评测,可用于部分yaml文件构建困难的场景可以通过该模式生成的yaml进行微调后使用。

> bc_config_mode

  1. BC模型修改再编译,可用于在编译前对bc模型进行多batch输入拆分、插入特性前处理算子等。

  2. 同一中间表示(bc模型)跳过耗时的校准和量化阶段,直接应用不同编译配置

> check_mode

模型可支持性检查,对指定模型进行检查以判断工具链对齐支持能力。

算法工具链
社区征文征程6技术深度解析官方教程
评论0
0/1000