aclgrphBuildModel支持的配置参数

表1 aclgrphBuildModel支持的配置参数

参数

说明

INPUT_FORMAT

输入数据格式。

支持NCHW、NHWC、ND三种格式。

如果同时开启AIPP,在进行推理业务时,输入图片数据要求为NHWC排布。该场景下INPUT_FORMAT参数指定的数据格式不生效。

说明:

该参数仅针对动态Batch、动态分辨率和动态维度场景。

上述场景下,INPUT_FORMAT必须设置并且和所有Data算子的format保持一致,否则会导致模型编译失败。

芯片支持情况:

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

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

昇腾310P 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参数。

昇腾310P 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处理器,支持该参数。

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

OP_NAME_MAP

扩展算子(非标准算子)映射配置文件路径和文件名,不同的网络中某扩展算子的功能不同,可以指定该扩展算子到具体网络中实际运行的扩展算子的映射。

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

文件内容示例如下:

OpA:Network1OpA

芯片支持情况:

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

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

昇腾310P 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处理器,支持该参数。

昇腾310P 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处理器,支持该参数。

昇腾310P 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处理器,支持该参数。

昇腾310P 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处理器,支持该参数。

昇腾310P 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:表示保持原图精度。如果原图中部分算子精度为float16,但在网络模型中该部分算子的实现不支持float16、仅支持float32,则系统内部会自动采用高精度float32;如果原图中部分算子精度为float32,但在网络模型中该部分算子的实现不支持float32类型、仅支持float16类型,则不能使用该参数值,系统不支持使用低精度。

芯片支持情况:

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

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

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

EXEC_DISABLE_REUSED_MEMORY

内存复用开关。

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

芯片支持情况:

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

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

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

OUTPUT_TYPE

网络输出数据类型:

  • FP32:推荐分类网络、检测网络使用。
  • UINT8:图像超分辨率网络,推荐使用,推理性能更好。
  • FP16:推荐分类网络、检测网络使用。

模型编译后,在对应的*.om模型文件中,上述数据类型分别以1、4、2枚举值呈现。

  • 若不指定具体数据类型,则以原始网络模型最后一层输出的算子数据类型为准。
  • 若指定了类型,则以该参数指定的类型为准。

芯片支持情况:

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

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

昇腾310P 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处理器,支持该参数。

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

INPUT_FP16_NODES

指定输入数据类型为FP16的输入节点名称。该参数必填。

例如:"node_name1;node_name2",指定的节点必须放在双引号中,节点中间使用英文分号分隔。若配置了该参数,则不能对同一个输入节点同时使用INSERT_OP_FILE参数。

芯片支持情况:

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

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

昇腾310P 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处理器,支持该参数。

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

OP_COMPILER_CACHE_MODE

用于配置算子编译磁盘缓存模式。默认值为enable。
  • enable:启用算子编译缓存功能。启用后,算子编译信息缓存至磁盘,相同编译参数的算子无需重复编译,直接使用缓存内容,从而提升编译速度。
  • force:启用算子编译缓存功能,区别于enable模式,force模式下会强制刷新缓存,即先删除已有缓存,再重新编译并加入缓存。比如当用户的python或者依赖库等发生变化时,需要指定为force用于清理已有的缓存。
    说明:

    配置为force模式完成编译后,建议后续编译修改为enable模式,以避免每次编译时都强制刷新缓存。

  • disable:禁用算子编译缓存功能。

使用说明:

  • 该参数和OP_COMPILER_CACHE_DIR配合使用。
  • 启用算子编译缓存功能时,可以通过环境变量ASCEND_MAX_OP_CACHE_SIZE来限制某个芯片下缓存文件夹磁盘空间的大小;通过环境变量ASCEND_REMAIN_CACHE_SIZE_RATIO来设置编译缓存空间大小达到ASCEND_MAX_OP_CACHE_SIZE需要删除旧的kernel文件时,保留缓存的空间大小比例。上述环境变量的具体使用说明请参考ASCEND_MAX_OP_CACHE_SIZEASCEND_REMAIN_CACHE_SIZE_RATIO
  • 由于force选项会先删除已有缓存,所以不建议在程序并行编译时设置,否则可能会导致其他模型因使用的缓存内容被清除而编译失败。
  • 建议模型最终发布时设置编译缓存选项为disable或者force。
  • 如果算子调优后知识库变更,则需要通过设置为force来刷新缓存,以便应用新的调优知识库。
  • 注意,调试开关打开的场景下,即OP_DEBUG_LEVEL非0值或者OP_DEBUG_CONFIG配置非空时,会忽略算子编译磁盘缓存模式的配置,不启用算子编译缓存。主要基于以下两点考虑:
    • 启用算子编译缓存功能(enable或force模式)后,相同编译参数的算子无需重复编译,编译过程日志无法完整记录。
    • 受限于缓存空间大小,对调试场景的编译结果不做缓存。

芯片支持情况:

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

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

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

OP_COMPILER_CACHE_DIR

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

路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。

如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel_cache。

默认值:$HOME/atc_data

芯片支持情况:

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

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

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

DEBUG_DIR

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

默认生成在当前路径下。

芯片支持情况:

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

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

昇腾310P 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处理器,支持该参数。

昇腾310P 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处理器,支持该参数。

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

OP_BANK_PATH

算子调优后自定义知识库路径。

支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。默认自定义知识库路径${HOME}/Ascend/latest/data/aoe/custom/op

芯片支持情况:

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

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

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

MODIFY_MIXLIST

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

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

配置示例:
{ge::ir_option::MODIFY_MIXLIST, "/home/test/ops_info.json"}

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

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

上述配置文件样例中展示的算子仅作为参考,请基于实际硬件环境和具体的算子内置优化策略进行配置。混合精度场景下算子的内置优化策略可在“OPP安装目录/opp/built-in/op_impl/ai_core/tbe/config/${soc_version}/aic-${soc_version}-ops-info.json”文件中查询,例如:

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

芯片支持情况:

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

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

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

OP_PRECISION_MODE

设置具体某个算子的精度模式,通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。

ini文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型,样例如下:

[ByOpType]
optype1=high_precision
optype2=high_performance
[ByNodeName]
nodename1=high_precision
nodename2=high_performance

该参数不能与OP_SELECT_IMPL_MODE、OPTYPELIST_FOR_IMPLMODE参数同时使用,若三个参数同时配置,则只有OP_PRECISION_MODE参数指定的模式生效。

该参数不建议配置,若使用高性能或者高精度模式,网络性能或者精度不是最优,则可以使用该参数,通过配置ini文件调整某个具体算子的精度模式。

芯片支持情况:

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

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

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

SHAPE_GENERALIZED_BUILD_MODE

图编译时Shape的编译方式。

  • shape_generalized:模糊编译,是指对于支持动态Shape的算子,在编译时系统内部对可变维度做了泛化后再进行编译。

    该参数使用场景为:用户想编译一次达到多次执行推理的目的时,可以使用模糊编译特性。

  • shape_precise:精确编译,是指按照用户指定的维度信息、在编译时系统内部不做任何转义直接编译。

芯片支持情况:

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

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

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

CUSTOMIZE_DTYES

通过该参数自定义模型编译时算子的计算精度,模型中其他算子以PRECISION_MODE指定的精度模式进行编译。该参数需要配置为配置文件路径及文件名,例如:/home/test/customize_dtypes.cfg。

配置文件中列举需要自定义计算精度的算子名称或算子类型,每个算子单独一行,且算子类型必须为基于IR定义的算子的类型。对于同一个算子,如果同时配置了算子名称和算子类型,编译时以算子名称为准。

配置文件格式要求:

# 按照算子名称配置
Opname1::InputDtype:dtype1,dtype2,…OutputDtype:dtype1,…
Opname2::InputDtype:dtype1,dtype2,…OutputDtype:dtype1,…
# 按照算子类型配置
OpType::TypeName1:InputDtype:dtype1,dtype2,…OutputDtype:dtype1,…
OpType::TypeName2:InputDtype:dtype1,dtype2,…OutputDtype:dtype1,…

配置文件配置示例:

# 按照算子名称配置
resnet_v1_50/block1/unit_3/bottleneck_v1/Relu::InputDtype:float16,int8,OutputDtype:float16,int8
# 按照算子类型配置
OpType::Relu:InputDtype:float16,int8,OutputDtype:float16,int8
说明:
  • 算子具体支持的计算精度可以从算子信息库中查看,默认存储路径为CANN软件安装后文件存储路径的:opp/built-in/op_impl/custom/ai_core/tbe/config/${soc_version}/aic-${soc_version}-ops-info.json。
  • 通过该参数指定的优先级高,因此可能会导致精度/性能的下降,如果指定的dtype不支持,会导致编译失败。

芯片支持情况:

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

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

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

BUILD_INNER_ MODEL

当前版本暂不支持。

OP_DEBUG_CONFIG

Global Memory内存检测功能开关。

取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:

  • oom:在算子执行过程中,检测Global Memory是否内存越界
  • dump_bin:算子编译时,在当前执行路径下的kernel_meta文件夹中保留.o和.json文件
  • dump_cce:算子编译时,在当前执行路径下的kernel_meta文件夹中保留算子cce文件*.cce
  • dump_loc:算子编译时,在当前执行路径下的kernel_meta文件夹中保留python-cce映射文件*_loc.json
  • ccec_O0:算子编译时,开启ccec编译器选项-O0
  • ccec_g :算子编译时,开启ccec编译器选项-g

配置示例:/root/test0.cfg,其中,test0.cfg文件信息为:

op_debug_config = ccec_O0,ccec_g,oom

芯片支持情况:

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

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

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

EXTERNAL_WEIGHT

是否将网络中Const/Constant节点的权重保存在单独的文件中,取值包括:

  • 0:不将原网络中的Const/Constant节点的权重保存在单独的文件中,而是直接保存在om模型文件中。默认为0。
  • 1:将原始网络中的Const/Constant节点的权重保存在单独的文件中,并将其类型转换为FileConstant且该文件保存在与om文件同级的weight目录下,权重文件以算子名称命名。

说明:当网络中weight占用内存较大且对模型大小有限制时,建议将此配置项设置为“1”。

芯片支持情况:

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

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

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

EXCLUDE_ENGINES

设置网络模型不使用某个或某些加速引擎。多个以“|”分隔。

NPU集成了多种硬件加速器(也叫加速引擎),比如AiCore/AiVec/AiCpu(按照优先级排列)等,在图编译阶段会按照优先级为算子选择合适的引擎,即当同一个算子被多种引擎支持时,会选择优先级高的那个。

EXCLUDE_ENGINES提供了排除某个引擎的功能,比如在一次训练过程中,为避免数据预处理图和主训练图抢占AiCore,可以给数据预处理图配置不使用AiCore引擎。

取值包括:

“AiCore”:AI Core硬件加速引擎

“AiVec”:Vector Core硬件加速引擎

“AiCpu”:AI CPU硬件加速引擎

举例:

{ge::ir_option::EXCLUDE_ENGINES, "AiCore|AiVec"}

芯片支持情况:

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

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

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