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},则: 单击如下手册中的链接并进入该手册,CANN ${version} Ascend-DMI工具用户指南 01。 完成“使用工具>使用前准备”,然后进入“使用工具>设备实时状态查询”章节。 使用相关命令查看芯片的详细信息,例如使用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" } } } 需要注意的是: 关闭某些融合规则可能会导致功能问题,因此此处的一键式关闭仅关闭系统部分融合规则,而不是全部融合规则。 一键式关闭融合规则时,可以同时开启部分融合规则:{ "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处理器,支持该参数。 父主题: 数据类型