昇腾社区首页
中文
注册

aclgrphBuildInitialize支持的配置参数

表1 aclgrphBuildInitialize支持的配置参数

参数

说明

CORE_TYPE

设置网络模型使用的Core类型,若网络模型中包括Cube算子,则只能使用AiCore。

  • VectorCore
  • AiCore,默认为AiCore。

芯片支持情况:

昇腾310 AI处理器,不支持该参数。

昇腾910 AI处理器,不支持该参数。

昇腾710 AI处理器,支持该参数。

SOC_VERSION

该参数为必选配置。

昇腾AI处理器的版本,可以从Ascend-cann-toolkit安装目录/ascend-toolkit/latest/data/platform_config目录下查看,".ini"文件的文件名即为对应的${soc_version}

如果用户根据上述方法仍旧无法确定具体使用的${soc_version},则:
  1. 单击如下手册中的链接并进入该手册,CANN ${version} Ascend-DMI工具用户指南 01
  2. 完成使用工具>使用前准备,然后进入使用工具>设备实时状态查询章节。
  3. 使用相关命令查看芯片的详细信息,例如使用ascend-dmi -i -dt命令查看芯片的详细信息,返回信息中“Chip Name”对应取值,去掉空格后,即为具体使用的${soc_version}

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

BUFFER_OPTIMIZE

是否开启buffer优化。

  • l1_optimize:表示开启l1优化。
  • l2_optimize:表示开启l2优化。默认为l2_optimize。
  • off_optimize:表示关闭数据缓存优化。

芯片支持情况:

昇腾310 AI处理器,支持该参数,但配置为l1_optimize时效果等同于off_optimize。且该参数需要与MDL_BANK_PATH参数配合使用。

昇腾910 AI处理器,支持该参数,但配置为l1_optimize时效果等同于off_optimize。

昇腾710 AI处理器,支持该参数,但配置为l1_optimize时效果等同于off_optimize。

ENABLE_COMPRESS_WEIGHT

AICore支持Weight压缩功能,通过使能该参数,可以对Weight进行数据压缩,在进行算子计算时,对Weight进行解压缩,从而达到减少带宽、提高性能的目的。

该参数使能全局weight压缩,不能与COMPRESS_WEIGHT_CONF同时使用。

  • true:表示使能
  • false:表示关闭

芯片支持情况:

昇腾310 AI处理器,不支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,不支持该参数。

COMPRESS_WEIGHT_CONF

要压缩的node节点列表配置文件路径,node节点主要为conv算子、fc算子。

路径支持大小写字母、数字,下划线;文件名支持大小写字母、数字,下划线和点(.)。

该参数不能与ENABLE_COMPRESS_WEIGHT参数同时使用。

Weight压缩配置文件由昇腾模型压缩工具输出,文件内容即为node名称列表,node名称之间以“;”间隔开。

例如,compress_weight_nodes.cfg文件内容为:conv1; fc1; conv2_2/x1; fc2; conv5_32/x2;fc6。

芯片支持情况:

昇腾310 AI处理器,不支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,不支持该参数。

PRECISION_MODE

选择算子精度模式。

  • force_fp16:表示算子支持float16和float32时,强制选择float16。默认为force_fp16。
  • force_fp32:既支持float16又支持float32数据类型时,强制选择float32。
  • allow_mix_precision:表示使用混合精度模式。
  • allow_fp32_to_fp16:表示算子不支持fp32时,选择fp16。
  • must_keep_origin_dtype:表示保持原图精度。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

TUNE_DEVICE_IDS

当前版本暂不支持。

EXEC_DISABLE_REUSED_MEMORY

内存复用开关。

  • 1:关闭内存复用。如果网络模型较大,关闭内存复用开关时可能会造成内存不足,导致模型编译失败。
  • 0:开启内存复用。 默认为0。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

AUTO_TUNE_MODE

设置算子自动调优模式。用户可以控制TBE算子编译时,是否通过Auto Tune工具对算子进行调优,以便在昇腾AI处理器上寻找最好的性能配置。包括如下两种模式:

  • GA(Genetic Algorithm):遗传算法,用于设置Cube算子的调优性能,当前仅支持Conv2D卷积算子,depthwise、GEMM算子的调优性能。
  • RL(Reinforcement Learning):强化学习,用于设置Vector算子的调优性能。

如需支持多种模式,则需放在双引号中,中间用英文逗号分隔,例如"RL,GA"。若未配置该参数,表示自动关闭自动调优功能。

芯片支持情况:

昇腾310 AI处理器,支持该参数。关于Auto Tune工具的介绍和使用方法请参见CANN 开发工具指南》中的“Auto Tune工具使用指南”章节

昇腾910 AI处理器,支持该参数。关于Auto Tune工具的介绍和使用方法请参见CANN 开发工具指南》中的“Auto Tune工具使用指南”章节

昇腾710 AI处理器,支持该参数。关于Auto Tune工具的介绍和使用方法请参见CANN 开发工具指南》中的“Auto Tune工具使用指南”章节

ENABLE_SINGLE_STREAM

是否使能一个模型只能使用一条stream。

由于SoC的stream资源有限,在SoC场景下需要用户打开此开关。

  • true:使能
  • false:关闭,默认为false。

芯片支持情况:

昇腾310 AI处理器,不支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,不支持该参数。

AICORE_NUM

设置编译时使用的AI Core数目,默认为10。

芯片支持情况:

昇腾310 AI处理器,不支持该参数。

昇腾910 AI处理器,不支持该参数。

昇腾710 AI处理器,不支持该参数。

FUSION_SWITCH_FILE

融合开关配置文件路径以及文件名,路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。

系统内置了一些图融合和UB融合规则,均为默认开启,可以根据需要关闭指定的融合规则,当前可以关闭的融合规则请参见图融合和UB融合规则参考,但是由于系统机制,其他融合规则无法关闭。

配置文件样例fusion_switch.cfg,on表示开启,off表示关闭。

{
    "Switch":{
        "GraphFusion":{
            "RequantFusionPass":"on",
            "ConvToFullyConnectionFusionPass":"off",
            "SoftmaxFusionPass":"on",
            "NotRequantFusionPass":"on",
            "SplitConvConcatFusionPass":"on",
            "ConvConcatFusionPass":"on",
            "MatMulBiasAddFusionPass":"on",
            "PoolingFusionPass":"on",
            "ZConcatv2dFusionPass":"on",
            "ZConcatExt2FusionPass":"on",
            "TfMergeSubFusionPass":"on"
        },
        "UBFusion":{
            "TbePool2dQuantFusionPass":"on"
        }
    }
}

同时支持用户一键关闭融合规则:

{
    "Switch":{
        "GraphFusion":{
            "ALL":"off"
        },
        "UBFusion":{
            "ALL":"off"
         }
    }
}

需要注意的是:

  1. 关闭某些融合规则可能会导致功能问题,因此此处的一键式关闭仅关闭系统部分融合规则,而不是全部融合规则。
  2. 一键式关闭融合规则时,可以同时开启部分融合规则:
    {
        "Switch":{
            "GraphFusion":{
                "ALL":"off",
                "SoftmaxFusionPass":"on"
            },
            "UBFusion":{
                "ALL":"off",
                "TbePool2dQuantFusionPass":"on"
            }
        }
    }

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

ENABLE_SMALL_CHANNEL

是否使能small channel的优化,使能后在channel<=4的卷积层会有性能收益。

建议用户在推理场景下打开此开关。

  • 0:关闭,默认为0。
  • 1:使能。

芯片支持情况:

昇腾310 AI处理器,支持该参数。该参数使能后,当前只在Resnet50、Resnet101、Resnet152、GoogleNet网络模型能获得性能收益。其他网络模型性能可能会下降,用户根据实际情况决定是否使能该参数。

昇腾910 AI处理器,支持该参数。该参数使能后,当前只在Resnet50、Resnet101、Resnet152网络模型能获得性能收益。其他网络模型性能可能会下降,用户根据实际情况决定是否使能该参数。

昇腾710 AI处理器,支持该参数。该参数使能后,当前只在Resnet50、Resnet101、Resnet152网络模型能获得性能收益。其他网络模型性能可能会下降,用户根据实际情况决定是否使能该参数。

OP_SELECT_IMPL_MODE

昇腾AI处理器部分内置算子有高精度和高性能实现方式,用户可以通过该参数配置模型编译时选择哪种算子。取值包括:

  • high_precision:表示算子选择高精度实现。高精度实现算子是指在fp16输入的情况下,通过泰勒展开/牛顿迭代等手段进一步提升算子的精度。
  • high_performance:表示算子选择高性能实现。高性能实现算子是指在fp16输入的情况下,不影响网络精度前提的最优性能实现。默认为high_performance。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

OPTYPELIST_FOR_IMPLMODE

列举算子optype的列表,该列表中的算子使用OP_SELECT_IMPL_MODE参数指定的模式,当前支持的算子为Pooling、SoftmaxV2、LRN、ROIAlign。

该参数需要与OP_SELECT_IMPL_MODE参数配合使用,例如:

OP_SELECT_IMPL_MODE配置为high_precision

OPTYPELIST_FOR_IMPLMODE配置为Pooling。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

OP_COMPILER_CACHE_MODE

用于配置算子编译磁盘缓存模式。

  • enable:表示启用算子编译缓存。启用后可以避免针对相同编译参数及算子参数的算子重复编译,从而提升编译速度。
  • disable:表示禁用算子编译缓存。默认为disable。
  • force:表示强制刷新缓存,即先删除已有缓存,再重新编译并加入缓存。当用户的python或者依赖库等发生变化时,需要指定为force用于清理已有的缓存。

使用说明:

  • 该参数和OP_COMPILER_CACHE_DIR配合使用,且只有OP_DEBUG_LEVEL为0或3的情况下才能启用缓存功能。
  • 由于force选项会先删除已有缓存,所以不建议在程序并行编译时设置,否则可能会导致其他模型使用的缓存内容被清除而导致失败。
  • 建议模型最终发布时设置编译缓存选项为disable或者force。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

OP_COMPILER_CACHE_DIR

用于配置算子编译磁盘缓存的目录。

默认值:$HOME/atc_data

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

DEBUG_DIR

用于配置保存算子编译生成的调试相关的过程文件的路径,包括算子.o/.json/.cce等文件。

默认生成在当前路径下。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

OP_DEBUG_LEVEL

算子debug功能开关,取值:

  • 0:不开启算子debug功能,默认为0。
  • 1:开启算子debug功能,在当前目录下的kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),用于后续工具进行AICore Error问题定位。
  • 2:开启算子debug功能,在当前目录下的kernel_meta文件夹中生成TBE指令映射文件(算子cce文件*.cce、python-cce映射文件*_loc.json、.o和.json文件),并关闭ccec编译器的编译优化开关且打开ccec调试功能(ccec编译器选项设置为-O0-g),用于后续工具进行AICore Error问题定位。
  • 3:不开启算子debug功能,且在当前目录下的kernel_meta文件夹中保留.o和.json文件。
  • 4:不开启算子debug功能,在当前目录下的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件),生成TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json)。
须知:

模型编译时,建议配置为0或3。如果需要定位AICore Error问题,再选择调试开关选项1和2,是因为加入了调试功能会导致网络性能下降。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。

MODIFY_MIXLIST

配置混合精度黑白灰名单,配置为路径以及文件名,文件为json格式。

allow_mix_precision混合精度模式下,针对全网中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。用户可以在内置优化策略基础上进行调整,自行指定哪些算子允许降精度,哪些算子不允许降精度。

配置示例:
custom_op.parameter_map["modify_mixlist"].s = tf.compat.as_bytes("/home/test/ops_info.json")

ops_info.json中可以指定算子类型,多个算子使用英文逗号分隔,样例如下:

{
  "black-list": {                  // 黑名单
     "to-remove": [                // 黑名单算子转换为灰名单算子
     "Yolo"
     ],
     "to-add": [                   // 白名单或灰名单算子转换为黑名单算子
     "Matmul",
     "Cast"
     ]
  },
  "white-list": {                  // 白名单
     "to-remove": [                // 白名单算子转换为灰名单算子 
     "Conv2D"
     ],
     "to-add": [                   // 黑名单或灰名单算子转换为白名单算子
     "Bias"
     ]
  }
}

如何查询混合精度场景下算子的内置优化策略:内置优化策略在“OPP安装目录/opp/op_impl/built-in/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json”,例如:

"Conv2D":{
    "precision_reduce":{
        "flag":"true"
},
  • true:(白名单)允许将当前float32类型的算子,降低精度到float16。
  • false:(黑名单)不允许将当前float32类型的算子,降低精度到float16。
  • 不配置:(灰名单)当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。

芯片支持情况:

昇腾310 AI处理器,支持该参数。

昇腾910 AI处理器,支持该参数。

昇腾710 AI处理器,支持该参数。