--op_precision_mode
功能说明
设置指定算子内部处理时的精度模式,支持指定一个算子或多个算子。
关联参数
- 该参数不能与--op_select_implmode、--optypelist_for_implmode参数同时使用,若三个参数同时配置,则只有--op_precision_mode参数指定的模式生效。
- 针对同一个算子,如果通过--op_precision_mode参数配置了enable_hi_float_32_execution或enable_float_32_execution,该场景下不建议再与--allow_hf32参数同时使用,若同时使用,则优先级如下:
op_precison_mode(ByNodeName,按节点名称设置精度模式) > allow_hf32 > op_precison_mode(ByOpType,按算子类型设置精度模式)
参数取值
参数值:设置算子精度模式的配置文件(.ini格式)路径以及文件名,配置文件中支持设置如下精度模式:
- high_precision:表示高精度。
- high_performance:表示高性能。
- enable_float_32_execution:算子内部处理时使用FP32数据类型功能,该场景下FP32数据类型不会自动转换为HF32数据类型;若使用HF32计算,精度损失超过预期时,可启用该配置,指定部分算子内部计算时使用FP32,保持精度。
Atlas A2训练系列产品/Atlas 800I A2推理产品
- enable_hi_float_32_execution:算子内部处理时使用HF32数据类型功能,使能后,FP32数据类型自动转换为HF32数据类型;该配置可以降低数据所占空间大小,实现性能提升。当前版本暂不支持。
- support_out_of_bound_index:表示对gather、scatter和segment类算子的indices输入进行越界校验, 校验会降低算子的执行性能。
具体某个算子支持配置的精度/性能模式取值,可以通过CANN软件安装后文件存储路径的opp/built-in/op_impl/ai_core/tbe/impl_mode/all_ops_impl_mode.ini文件查看。
参数值格式:路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、短横线(-)、句点(.)、中文汉字。
参数值约束:
- 当前仅支持通过.ini配置文件方式设置算子精度,配置文件中的内容以key_value(算子类型=精度模式)形式呈现,每一行设置一个算子的精度模式。
- 算子类型必须为基于Ascend IR定义的算子的OpType,算子类型查看方法请参见如何确定原始框架网络模型中的算子与昇腾AI处理器支持的算子的对应关系。
推荐配置及收益
- 该参数不建议配置,若使用高性能或者高精度模式,网络性能或者精度不是最优,则可以使用该参数,通过配置ini文件调整具体某个算子的精度模式。
- 通过该参数加载的ini配置文件,建议使用--op_select_implmode参数用户另存后的ini配置文件,详情请参见推荐配置及收益。
示例
构造算子精度模式配置文件op_precision.ini,并在该文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型。
配置样例如下:
[ByOpType] optype1=high_precision optype2=high_performance optype3=enable_hi_float_32_execution optype4=support_out_of_bound_index [ByNodeName] nodename1=high_precision nodename2=high_performance nodename3=enable_hi_float_32_execution nodename4=support_out_of_bound_index
将配置好的op_precision.ini文件上传到ATC工具所在服务器任意目录,例如上传到$HOME/conf,使用示例如下:
--op_precision_mode=$HOME/conf/op_precision.ini
支持的型号
Atlas 200/300/500 推理产品
Atlas 推理系列产品
Atlas 训练系列产品
Atlas 200/500 A2推理产品
Atlas A2训练系列产品/Atlas 800I A2推理产品
依赖约束
无。
父主题: 算子调优选项