编译与性能分析工具

HAT集成了编译定点模型的能力,将pytorch的模型编译为可以上板运行的形式。您可以选择下面的方式来编译模型。

使用方法

此方式使用 tools/compile_perf_hbir.py 脚本,命令如下:

python3 tools/compile_perf_hbir.py -c {$CONFIG_FILE}

config配置文件的详细介绍可参考config配置章节。

注意

如果要将参考算法包提供的模型部署在nash-p ,nash-b或nash-h上面,需要传入对应的march参数。

参数介绍

参数描述
--config, -cconfig文件目录。
--only-export是否仅导出预编译的 hbir 文件,可选值为True和False。

使用示例

此命令会从config文件的 hbir_compiler 字段获取编译相关配置,举例说明如下:

import horizon_plugin_pytorch

hbir_compiler = dict(
    march=March.NASH_M,  # 可以选择 NASH_E, NASH_M, NASH_P
    opt=2, # 优化等级,可以选择 0, 1, 2,优化程度从低到高
    jobs=32, # 多线程编译
    debug=False, # 是否开启debug模式
    only_export=args.only_export, #是否只是导出编译前的hbir
    layer_details=True,  # 是否输出每层的性能情况
    input_source=["pyramid"],  # 模型上板时的输入来源
    model_path="./qat.bc", # qat 模型的路径
    out_path="tmp_compile/model.hbm", # 编译出的模型文件路径
    hbdk3_compatible_mode=False, # 是否编译兼容模式的hbm
    transpose_dim=dict(
        inputs={
            "1": [0, 2, 3, 1],
        }
    ),      # 重新排布输入/输出的张量维度
    split_dim=dict(
        inputs={
            "0": [0, 6],
        }
    ),      # 切分输入张量
    enable_vpu=False, # 是否开启VPU
)

编译完成后,生成的 model.hbm 文件会保存到预先设定的编译模型文件存储路径中。