开发者
资源

试验参数

ALLOW_HF32

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

是否启用HF32自动代替float32数据类型的功能,当前版本该参数仅针对Conv类算子与Matmul类算子生效。

HF32是昇腾推出的专门用于算子内部计算的单精度浮点类型,与其他常用数据类型的比较如下图所示。可见,HF32与float32支持相同的数值范围,但尾数位精度(11位)却接近FP16(10位)。通过降低精度让HF32单精度数据类型代替原有的float32单精度数据类型,可大大降低数据所占空间大小,实现性能的提升。

参数取值:

  • 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。

使用约束

  • 针对同一个算子,如果通过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)。

配置示例:

{ge::ir_option::ALLOW_HF32, "true"}

产品支持情况:

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品:不支持
  • Atlas 训练系列产品:不支持
  • IPV350:不支持

BUILD_INNER_MODEL

当前版本暂不支持。

OO_CONSTANT_FOLDING

调试功能扩展参数,当前不支持应用于商用产品中,后续版本会作为正式功能更新发布。

是否开启常量折叠优化。

常量折叠是将计算图中可以预先确定输出值的节点替换成常量,并对计算图进行一些结构简化的操作。

参数取值:

  • true:(默认值)开启。
  • false:关闭。

配置示例:

{ge::ir_option::OO_CONSTANT_FOLDING, "true"}

产品支持情况:

全量芯片支持。

OO_DEAD_CODE_ELIMINATION

调试功能扩展参数,当前不支持应用于商用产品中,后续版本会作为正式功能更新发布。

是否开启死边消除优化。

死边消除:switch死边消除,switch的pred输入(1号输入)为const节点时,根据const的值消除其中一条分支:const为true时,消除false分支;const为false时,消除true分支。

参数取值:

  • true:(默认值)开启。
  • false:关闭。

配置示例:

{ge::ir_option::OO_DEAD_CODE_ELIMINATION, "true"}

产品支持情况:

全量芯片支持。

OO_LEVEL

调试功能扩展参数,当前不支持应用于商用产品中,后续版本会作为正式功能更新发布。

图编译多级优化选项,包括子图优化、整图优化、静态Shape模型下沉等。

静态Shape模型下沉:静态Shape模型在编译时即可确定所有算子的输入输出Shape,完成模型级内存编排、算子的Tiling计算等Host侧计算,在模型加载时整体下发到Device流上,但不立即执行,通过下发模型执行Task触发模型中所有Task的执行。

参数取值:

  • O1:会关闭所有图融合和UB融合Pass,只做促成静态下沉的相关优化,如InferShape(进行输出Tensor的shape推导)、常量折叠、死边消除等。

    Ascend 950PR/Ascend 950DT不支持UB融合,只关闭图融合Pass。

  • O3:(默认值)开启所有优化。

使用约束:

取值为O1时,会关闭所有图融合和UB融合PASS,只开启静态下沉的相关PASS,但是如下路径文件中的图融合PASS,由于关闭后会有功能问题,会默认开启:

${INSTALL_DIR}/<arch>-linux/lib64/plugin/opskernel/fusion_pass/config/fusion_config.json”文件中"ExceptionalPassOfO1Level"字段下的所有图融合PASS。

其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。<arch>表示具体操作系统架构。

配置示例:

{ge::ir_option::OO_LEVEL, "O3"}

产品支持情况:

全量芯片支持。