aclgrphBuildModel支持的配置参数 表1 aclgrphBuildModel支持的配置参数 参数 说明 INPUT_FORMAT 输入数据格式。 支持NCHW、NHWC、ND三种格式。 如果同时开启AIPP,在进行推理业务时,输入图片数据要求为NHWC排布。该场景下INPUT_FORMAT参数指定的数据格式不生效。 说明: 该参数仅针对动态Batch、动态分辨率和动态维度场景。 上述场景下,INPUT_FORMAT必须设置并且和所有Data算子的format保持一致,否则会导致模型编译失败。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 INPUT_SHAPE 模型输入数据的shape。 例如:"input_name1: n1,c1,h1,w1;input_name2: n2,c2,h2,w2"。指定的节点必须放在双引号中,节点中间使用英文分号分隔。 input_name必须是原始模型中的节点名称。 若原始模型为动态shape,例如input_name1:?,h,w,c,该参数必填。其中“?”为batch数,表示一次处理的图片数量。 如果设置为固定取值,例如,取值为“1,2,3...”,用于将动态shape的原始模型转换为固定shape的离线模型。 说明: 该参数仅针对动态Batch、动态分辨率和动态维度场景。 上述场景下,INPUT_SHAPE为可选设置。如果不设置,系统直接读取对应Data节点的shape信息,如果设置,以此处设置的为准,同时刷新对应Data节点的shape信息。 芯片支持情况: 昇腾310 AI处理器,支持该参数。如果设置为“-1”,与DYNAMIC_BATCH_SIZE参数配合使用,用于设置动态batch档位参数,详细使用请参见DYNAMIC_BATCH_SIZE参数。 昇腾910 AI处理器,支持该参数。如果设置为“-1”,与DYNAMIC_BATCH_SIZE参数配合使用,用于设置动态batch档位参数,详细使用请参见DYNAMIC_BATCH_SIZE参数。 昇腾710 AI处理器,支持该参数。如果设置为“-1”,与DYNAMIC_BATCH_SIZE参数配合使用,用于设置动态batch档位参数,详细使用请参见DYNAMIC_BATCH_SIZE参数。 INPUT_SHAPE_RANGE 指定模型输入数据的shape range。该功能不能与DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS同时使用。 支持按照name设置:"input_name1:[n1,c1,h1,w1];input_name2:[n2,c2,h2,w2]",例如:"input_name1:[8~20,3,5,-1];input_name2:[5,3~9,10,-1]"。指定的节点必须放在双引号中,节点中间使用英文分号分隔。input_name必须是转换前的网络模型中的节点名称, shape range值必须放在[]中。如果用户知道data节点的name,推荐按照name设置INPUT_SHAPE_RANGE。 支持按照index设置:"[n1,c1,h1,w1],[n2,c2,h2,w2]",例如:"[8~20,3,5,-1],[5,3~9,10,-1]"。可以不指定节点名,默认第一个中括号为第一个输入节点,节点中间使用英文逗号分隔。按照index设置INPUT_SHAPE_RANGE时,data节点需要设置属性index,说明是第几个输入,index从0开始。 动态维度有shape范围的用波浪号“~”表示,固定维度用固定数字表示,无限定范围的用-1表示; 对于标量输入,也需要填入shape范围,表示方法为:[]; 对于多输入场景,例如有三个输入时,如果只有第二个第三个输入具有shape范围,第一个输入为固定输入时,仍需要将固定输入shape填入。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 OP_NAME_MAP 扩展算子(非标准算子)映射配置文件路径和文件名,不同的网络中某扩展算子的功能不同,可以指定该扩展算子到具体网络中实际运行的扩展算子的映射。 路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 文件内容示例如下: OpA:Network1OpA 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 DYNAMIC_BATCH_SIZE 设置动态batch档位参数,适用于执行推理时,每次处理图片数量不固定的场景。 该参数需要与INPUT_SHAPE配合使用,不能与DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS、INPUT_SHAPE_RANGE同时使用。 最多支持100档配置,每一档通过英文逗号分隔,每个档位数值限制为:[1~2048]。 例如: {ge::ir_option::INPUT_SHAPE, "data:-1,3,416,416"}, {ge::ir_option::DYNAMIC_BATCH_SIZE, "1,2,4,8"} INPUT_SHAPE中的“-1”表示设置动态batch。 其他使用注意事项: 如果通过该参数设置了动态batch,则使用应用工程进行模型推理时,需要在aclmdlExecute接口之前,增加aclmdlSetDynamicBatchSize接口,用于设置真实的batch档位。关于aclmdlSetDynamicBatchSize接口的具体使用方法,请参见《应用软件开发指南 (C&C++)》。 若用户执行推理业务时,每次处理的图片数量不固定,则可以通过配置该参数来动态分配每次处理的图片数量。例如用户执行推理业务时需要每次处理2张,4张,8张图片,则可以配置为2,4,8,申请了档位后,模型推理时会根据实际档位申请内存。 如果用户设置的档位数值过大或档位过多,可能会导致模型编译失败,此时建议用户减少档位或调低档位数值。 如果用户设置的档位数值过大或档位过多,在运行环境执行推理时,建议执行swapoff -a命令关闭swap交换区间作为内存的功能,防止出现由于内存不足,将swap交换空间作为内存继续调用,导致运行环境异常缓慢的情况。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 DYNAMIC_IMAGE_SIZE 设置输入图片的动态分辨率参数。适用于执行推理时,每次处理图片宽和高不固定的场景。 该参数需要与INPUT_SHAPE配合使用,不能与DYNAMIC_BATCH_SIZE、DYNAMIC_DIMS、INPUT_SHAPE_RANGE同时使用。 最多支持100档配置,每一档通过英文分号分隔。 例如: "imagesize1_height,imagesize1_width;imagesize2_height,imagesize2_width",指定的参数必须放在双引号中,每一组参数中间使用英文分号分隔。 具体使用样例如下, INPUT_SHAPE中的“-1”表示设置动态分辨率。 INPUT_SHAPE="data:8,3,-1,-1" ,DYNAMIC_IMAGE_SIZE="416,416;832,832" 其他使用注意事项: 如果模型编译时通过该参数设置了动态分辨率,则使用应用工程进行模型推理时,需要在aclmdlExecute接口之前,增加aclmdlSetDynamicHWSize接口,用于设置真实的分辨率。关于aclmdlSetDynamicHWSize接口的具体使用方法,请参见《应用软件开发指南 (C&C++)》。 如果用户设置的分辨率数值过大或档位过多,可能会导致模型编译失败,此时建议用户减少档位或调低档位数值。 如果用户设置了动态分辨率,实际推理时,使用的数据集图片大小需要与具体使用的分辨率相匹配。 如果用户设置的分辨率数值过大或档位过多,在运行环境执行推理时,建议执行swapoff -a命令关闭swap交换区间作为内存的功能,防止出现由于内存不足,将swap交换空间作为内存继续调用,导致运行环境异常缓慢的情况。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 DYNAMIC_DIMS 设置ND格式下动态维度的档位。适用于执行推理时,每次处理任意维度的场景。 该参数需要与INPUT_SHAPE配合使用,不能与DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE、INPUT_SHAPE_RANGE同时使用。 参数通过"dim1,dim2,dim3;dim4,dim5,dim6;dim7,dim8,dim9"的形式设置,所有档位必须放在双引号中,每档中间使用英文分号分隔,每档中的dim值与INPUT_SHAPE参数中的-1标识的参数依次对应,INPUT_SHAPE参数中有几个-1,则每档必须设置几个维度。 支持的档位数取值范围为:(1,100],每档最多支持任意指定4个维度,建议配置为3~4档。 例如: {ge::ir_option::INPUT_SHAPE, "data:1,-1"}, {ge::ir_option::DYNAMIC_DIMS, "4;8;16;64"} // 模型编译时,支持的data算子的shape为1,4; 1,8; 1,16;1,64 {ge::ir_option::INPUT_SHAPE, "data:1,-1,-1"}, {ge::ir_option::DYNAMIC_DIMS, "1,2;3,4;5,6;7,8"} // 模型编译时,支持的data算子的shape为1,1,2; 1,3,4; 1,5,6; 1,7,8 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 INSERT_OP_FILE 输入预处理算子的配置文件路径,例如aipp算子。 若配置了该参数,则不能对同一个输入节点同时使用INPUT_FP16_NODES参数。 配置文件路径:支持大小写字母、数字,下划线;文件名部分:支持大小写字母、数字,下划线和点(.) 配置文件的内容示例如下: aipp_op { aipp_mode:static input_format:YUV420SP_U8 csc_switch:true var_reci_chn_0:0.00392157 var_reci_chn_1:0.00392157 var_reci_chn_2:0.00392157 } 说明: 配置文件详细配置说明,请参考《ATC工具使用指南》。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 PRECISION_MODE 选择算子精度模式。 force_fp16:表示算子支持fp16和fp32时,强制选择fp16。默认为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处理器,支持该参数。 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工具使用指南”章节。 OUTPUT_TYPE 网络输出数据类型: FP32:推荐分类网络、检测网络使用。 UINT8:图像超分辨率网络,推荐使用,推理性能更好。 FP16:推荐分类网络、检测网络使用。 模型编译后,在对应的*.om模型文件中,上述数据类型分别以1、4、2枚举值呈现。 若不指定具体数据类型,则以原始网络模型最后一层输出的算子数据类型为准。 若指定了类型,则以该参数指定的类型为准。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 OUT_NODES 指定输出节点。 如果不指定输出节点(算子名称),则模型的输出默认为最后一层的算子信息,如果指定,则以指定的为准。 某些情况下,用户想要查看某层算子参数是否合适,则需要将该层算子的参数输出,既可以在模型编译时通过该参数指定输出某层算子,模型编译后,在相应.om模型文件最后即可以看到指定输出算子的参数信息,如果通过.om模型文件无法查看,则可以将.om模型文件转换成json格式后查看。 例如:"node_name1:0;node_name1:1;node_name2:0"。 指定的输出节点必须放在双引号中,节点中间使用英文分号分隔。node_name必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如node_name1:0,表示节点名称为node_name1的第0个输出。 芯片支持情况: 昇腾310 AI处理器,不支持该参数。 昇腾910 AI处理器,不支持该参数。 昇腾710 AI处理器,不支持该参数。 INPUT_FP16_NODES 指定输入数据类型为FP16的输入节点名称。该参数必填。 例如:"node_name1;node_name2",指定的节点必须放在双引号中,节点中间使用英文分号分隔。若配置了该参数,则不能对同一个输入节点同时使用INSERT_OP_FILE参数。 芯片支持情况: 昇腾310 AI处理器,不支持该参数。 昇腾910 AI处理器,不支持该参数。 昇腾710 AI处理器,不支持该参数。 LOG_LEVEL 设置显示日志的级别。包括如下取值: debug:输出debug/info/warning/error/event级别的运行信息。 info:输出info/warning/error/event级别的运行信息。 warning:输出warning/error/event级别的运行信息。 error:输出/error/event级别的运行信息。 null:不输出日志。默认为null。 芯片支持情况: 昇腾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 用于配置算子编译磁盘缓存的目录。 路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel_cache。 默认值:$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处理器,支持该参数。 MDL_BANK_PATH 加载模型调优后自定义知识库的路径。该参数需要与BUFFER_OPTIMIZE参数配合使用。 参数值:模型调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:${install_path}/compiler/data/fusion_strategy/custom$ 如果默认路径下不存在自定义知识库,则会查找模型的内置知识库,该路径为:${install_path}/compiler/data/fusion_strategy/built-in 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,不支持该参数。 昇腾710 AI处理器,不支持该参数。 OP_BANK_PATH 加载Auto Tune调优后自定义知识库的路径。该参数不能与AUTO_TUNE_MODE参数同时使用。 参数值:Auto Tune调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值: GA调优后默认自定义知识库路径在CANN软件安装目录下的compiler/data/tiling/${soc_version}/custom/。 RL调优后默认自定义知识库路径在CANN软件安装目录下的compiler/data/rl/${soc_version}/custom/。 如果默认路径下不存在自定义知识库,则会查找Auto Tune的内置知识库。 如果模型转换前,通过TUNE_BANK_PATH环境变量指定了自定义知识库路径,模型转换时设置了OP_BANK_PATH参数,该场景下OP_BANK_PATH参数加载的自定义知识库路径不生效。以TUNE_BANK_PATH环境变量设置的自定义知识库路径为准。 芯片支持情况: 昇腾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处理器,支持该参数。 OP_PRECISION_MODE 设置具体某个算子的精度模式,通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。 ini文件格式要求: AvgPoolV2=high_precision ReduceMeanD=high_performance 该参数不能与OP_SELECT_IMPL_MODE、OPTYPELIST_FOR_IMPLMODE参数同时使用,若三个参数同时配置,则只有OP_PRECISION_MODE参数指定的模式生效。 该参数不建议配置,若使用高性能或者高精度模式,网络性能或者精度不是最优,则可以使用该参数,通过配置ini文件调整某个具体算子的精度模式。 芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾710 AI处理器,支持该参数。 SHAPE_GENERALIZED_BUILD_MODE 当前版本暂不支持。 父主题: 数据类型