Ascend ATC相关参数说明和描述

参考《ATC工具使用指南》

--net_optimize_enable

功能说明:所有融合规则的使能开关。

关联参数:--fusion_switch_file 是控制指定某个融合规则开关,

--net_optimize_enable 是控制所有融合规则的开关。

● 当配置--net_optimize_enable=0 时,关闭所有融合规则,--fusion_switch_file 不 生效。

● 当配置--net_optimize_enable=1 时,使能所有融合规则,如果配置了-- fusion_switch_file,以配置的融合规则文件为准。

推荐配置及收益:融合可以减少算子,提升性能,推荐配置1。

--layer_fusion_enable

功能说明:层间深度融合的使能开关。层间深度融合是指多层之间融合在一起,切小 块循环计算,数据在内部 RAM 传递,不读写 DDR。

关联参数:无

 ● 参数默认值:1

推荐配置及收益:层间深度融合可以减少 DDR 读写,提升性能,推荐配置 1。

 --layer_m2m_enable

功能说明:层间数据共享的使能开关。层间数据共享是指两层之间,上一层的输出数 据在内部 RAM 共享给下一层作为输入数据,不读写 DDR。

关联参数:无

推荐配置及收益:层间数据共享可以减少 DDR 读写,提升性能,推荐配置 1。

--compile_mode

功能说明:编译模式,量化后的数据 bit 位宽,不影响权重量化的 bit 位宽,权重固定是8bit量化。

关联参数:--gfpq_param_file:优先使用配置的量化参数。未配置量化参数时,compile_mode 才生效。

● 参数值 − 0:量化使用 8bit。 − 1:量化使用 16bit。

● 参数默认值:0

推荐配置及收益: ● 配置为 0 时,带宽小,板端缓存小,耗时少,精度损失大。 ● 配置为 1 时,带宽大,板端缓存大,耗时大,精度损失小。

--weight_quant_per_channel

功能说明:权重是否每个卷积单独量化,对应一组量化参数。只有 Convolution 和 Deconvolution 支持。

关联参数: --gfpq_param_file:优先使用配置的量化参数。未配置量化参数时, -- weight_quant_per_channel 才生效。

推荐配置及收益:配置为 1 时,权重量化粒度细,精度更好。

--forward_quantization_option

功能说明:ATC 转换模型校准时的量化选项。控制推理时是否使能数据量化或权重量 化。

关联参数:无

● 参数值:

0:关闭数据和权重量化。 1:使能数据量化。 2:使能权重量化。 3:使能数据和权重量化。

● 参数默认值:3

--online_model_type

功能说明:转换生成模型的类型,用于板端执行 profiling 或 dump 数据。

关联参数: --layer_fusion_enable:深度融合的层不支持 dump,即*.om 转 json 文件里,属性 is_dump_available 为 0 的层不支持 dump。

参数取值:

● 参数值:[0,7]。

        0: 没有调试相关的内容,没有网络结构和算子信息。

        1: 调试带层信息。

        2: 调试带层开始和结束标记,板端 profiling 用。

        3: 调试带层信息、层开始和结束标记。

         4: 调试带层 TRAP 指令,板端 dump 数据用。

         5: 调试带层信息、层 TRAP 指令。

         6: 调试带层开始和结束标记、层 TRAP 指令。

         7: 调试带层信息、层开始和结束标记、TRAP 指令。

● 参数默认值:1

推荐配置及收益: ● Release 配置 0。 ● Debug for profile 配置 2。 ● Debug for dump and compare 配置 4。

--output_type

功能说明:指定网络输出数据类型或指定输出节点的输出类型。

关联参数: 若指定某个输出节点的输出类型,则需要和--out_nodes 参数配合使用。

参数取值:

        ● 参数值:支持两种格式。

        格式 1:data_type, 表示指定所有输出节点的输出数据类型。

        格式 2:op_name:output_index:data_type,表示指定某个输出节点的某个输出的 输出数据类型。

        − op_name:指定算子的层名,必须为--out_nodes 指定的输出层。

         − output_index:指定输出层的第几个输出。

         − data_type:支持数据类型 FP16, FP32, INT16, INT8, S16, S8, U16, U8, UINT16, UINT8

● 参数默认值:FP32

推荐配置及收益:无

示例:

        ● 指定网络输出类型

        --output_type=FP32

        ● 指定某个输出节点的输出类型 output_type="conv1:0:FP32" --out_nodes="conv1:0"

依赖约束:AACPU 算子只支持输出 FP32。

其他说明:

1.在配置参数:

--net_optimize_enable=0 --layer_fusion_enable=0 --compile_mode=1 \
 
--weight_quant_per_channel=1 --forward_quantization_option=3

可能会解决精度下降问题。

2.为了导出模型推理时的相关信息,在转换om模型时需加入--online_model_type=2 选项

3.可以通过关闭对应算子的Fusion-Pass进行拆分:

# atc转换模型时添加参数
--fusion_switch_file=switch_fusion.cfg
# fusion_switch_file内容
LayerNormONNXFusionPass:off
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值