--allow_hf32
功能说明
该参数预留,当前版本暂不支持。
是否启用HF32自动代替float32数据类型的功能,当前版本该参数仅针对Conv类算子与Matmul类算子生效。
HF32是昇腾推出的专门用于算子内部计算的单精度浮点类型,与其他常用数据类型的比较如下图所示。可见,HF32与float32支持相同的数值范围,但尾数位精度(11位)却接近FP16(10位)。通过降低精度让HF32单精度数据类型代替原有的float32单精度数据类型,可大大降低数据所占空间大小,实现性能的提升。
图1 HF32与其他数据类型比较
关联参数
- 针对同一个算子,如果通过--op_precision_mode参数配置了enable_hi_float_32_execution或enable_float_32_execution,该场景下不建议再与--allow_hf32参数同时使用,若同时使用,则优先级如下:
op_precison_mode(ByNodeName,按节点名称设置精度模式) > allow_hf32 > op_precison_mode(ByOpType,按算子类型设置精度模式)
- 由于--allow_hf32是使用HF32自动代替float32,要想该参数生效,必须保证被使能的算子输入或者输出类型为float32。 由于--precision_mode_v2参数默认值为fp16,原始网络模型中算子类型为float32时会被强制转为float16类型,该场景下使用--allow_hf32参数不生效,建议修改--precision_mode_v2参数值为origin(--precision_mode参数默认值为force_fp16,建议修改为must_keep_origin_dtype或者force_fp32)。
参数取值
参数值:
- true:针对Conv类算子与Matmul类算子,使能FP32数据类型自动转换为HF32数据类型的功能。
具体哪些算子使能了该功能,请参见CANN软件安装后文件存储路径的opp/built-in/op_impl/ai_core/tbe/impl_mode/allow_hf32_matmul_t_conv_t.ini,该文件不支持用户修改。
- false:针对Conv类算子与Matmul类算子,不使能FP32数据类型自动转换为HF32数据类型的功能。
具体哪些算子未使能该功能,请参见CANN软件安装后文件存储路径的opp/built-in/op_impl/ai_core/tbe/impl_mode/allow_hf32_matmul_f_conv_f.ini,该文件不支持用户修改。
参数默认值:针对Conv类算子,使能FP32转换为HF32;针对Matmul类算子,不使能FP32转换为HF32。
推荐配置及收益
无。
示例
--allow_hf32=true
若在模型转换日志中能搜索到“ge.exec.allow_hf32”则说明参数设置生效。
支持的型号
Atlas A2训练系列产品/Atlas 800I A2推理产品
依赖约束
无。
父主题: 算子调优选项