---
title: --allow_hf32
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/atctool/atlasatcparam_16_0077.html
sourcePath: /source/zh/canncommercial/900/devaids/atctool/atlasatcparam_16_0077.html
indexId: cd9bc872c8eddfed51fb2aeba3782df22daf09c187da47a6cd845546f0b5b3ff72
---
# --allow_hf32


#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | x |
| Atlas 推理系列产品 | x |
| Atlas 训练系列产品 | x |


#### 功能说明

该参数预留，当前版本暂不支持。

是否启用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_precision_mode(ByNodeName，按节点名称设置精度模式) > allow_hf32 > op_precision_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”则说明参数设置生效。


#### 依赖约束

无。
