aclgrphBuildModel支持的配置参数
参数 |
说明 |
---|---|
INPUT_FORMAT |
输入数据格式。 参数取值: 支持NCHW、NHWC、ND三种格式。 配置示例: {ge::ir_option::INPUT_FORMAT, "NHWC"} 如果同时开启AIPP,在进行推理业务时,输入图片数据要求为NHWC排布。该场景下INPUT_FORMAT参数指定的数据格式不生效。
说明:
该参数仅针对动态BatchSize、动态分辨率和动态维度场景。 上述场景下,INPUT_FORMAT必须设置并且和所有Data算子的format保持一致,否则会导致模型编译失败。 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
INPUT_SHAPE |
模型输入的shape信息。 参数取值:
配置示例:
说明:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
INPUT_SHAPE_RANGE |
该参数已废弃,请勿使用。若涉及指定模型输入数据的shape范围,请使用INPUT_SHAPE参数。 指定模型输入数据的shape range。该功能不能与DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS同时使用。
支持情况: Atlas 推理系列产品,支持。 Atlas 训练系列产品,支持。 Atlas A2训练系列产品/Atlas 800I A2推理产品,支持。 Atlas 200/500 A2推理产品,不支持。 Atlas 200/300/500 推理产品,不支持。 |
OP_NAME_MAP |
扩展算子(非标准算子)映射配置文件路径和文件名,不同的网络中某扩展算子的功能不同,可以指定该扩展算子到具体网络中实际运行的扩展算子的映射。 路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 配置示例: OpA:Network1OpA 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
DYNAMIC_BATCH_SIZE |
设置动态batch档位参数,适用于执行推理时,每次处理图片数量不固定的场景。 该参数需要与INPUT_SHAPE配合使用,不能与DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS同时使用;且只支持N在shape首位的场景,即shape的第一位设置为"-1"。如果N在非首位场景下,请使用DYNAMIC_DIMS参数进行设置。 参数取值:档位数,例如"1,2,4,8"。 参数值格式:指定的参数必须放在双引号中,档位之间使用英文逗号分隔。 参数值约束:最多支持100档配置,每一档通过英文逗号分隔,每个档位数值限制为:[1~2048] 配置示例: INPUT_SHAPE中的“-1”表示设置动态batch。 {ge::ir_option::INPUT_FORMAT, "NHWC"} {ge::ir_option::INPUT_SHAPE, "data:-1,3,416,416"}, {ge::ir_option::DYNAMIC_BATCH_SIZE, "1,2,4,8"} 详细使用示例以及使用注意事项请参见专题>动态BatchSize。 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
DYNAMIC_IMAGE_SIZE |
设置输入图片的动态分辨率参数。适用于执行推理时,每次处理图片宽和高不固定的场景。 该参数需要与INPUT_SHAPE配合使用,不能与DYNAMIC_BATCH_SIZE、DYNAMIC_DIMS同时使用。 参数取值: "imagesize1_height,imagesize1_width;imagesize2_height,imagesize2_width"。 参数值格式:指定的参数必须放在双引号中,每一组参数中间使用英文分号分隔。 参数值约束:最多支持100档配置,每一档通过英文分号分隔。 配置示例: INPUT_SHAPE中的“-1”表示设置动态分辨率。 {ge::ir_option::INPUT_FORMAT, "NCHW"}, {ge::ir_option::INPUT_SHAPE, "data:8,3,-1,-1"}, {ge::ir_option::DYNAMIC_IMAGE_SIZE, "416,416;832,832"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
DYNAMIC_DIMS |
设置ND格式下动态维度的档位。适用于执行推理时,每次处理任意维度的场景。 该参数需要与INPUT_SHAPE配合使用,不能与DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE同时使用。 参数取值:通过"dim1,dim2,dim3;dim4,dim5,dim6;dim7,dim8,dim9"的形式设置。 参数值格式:所有档位必须放在双引号中,每档中间使用英文分号分隔,每档中的dim值与INPUT_SHAPE参数中的-1标识的参数依次对应,INPUT_SHAPE参数中有几个-1,则每档必须设置几个维度。 参数值约束:支持的档位数取值范围为:(1,100],建议配置为3~4档。 配置示例: {ge::ir_option::INPUT_FORMAT, "ND"}, {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_FORMAT, "ND"}, {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 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
INSERT_OP_FILE |
输入预处理算子的配置文件路径,例如aipp算子。参数详细使用请参见专题>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 } 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
PRECISION_MODE |
选择算子精度模式。不能与PRECISION_MODE_V2同时使用,建议使用PRECISION_MODE_V2参数。 参数取值:
参数默认值:force_fp16 配置示例: {ge::ir_option::PRECISION_MODE, "force_fp16"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
PRECISION_MODE_V2 |
设置网络模型的精度模式。不能与PRECISION_MODE同时使用,建议使用PRECISION_MODE_V2参数。 参数取值:
参数默认值:fp16 配置示例: {ge::ir_option::PRECISION_MODE_V2, "fp16"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
ALLOW_HF32 |
该参数预留,当前版本暂不支持。 是否启用HF32自动代替float32数据类型的功能,当前版本该参数仅针对Conv类算子与Matmul类算子生效。 HF32是昇腾推出的专门用于算子内部计算的单精度浮点类型,与其他常用数据类型的比较如下图所示。可见,HF32与float32支持相同的数值范围,但尾数位精度(11位)却接近FP16(10位)。通过降低精度让HF32单精度数据类型代替原有的float32单精度数据类型,可大大降低数据所占空间大小,实现性能的提升。 参数取值:
参数默认值:针对Conv类算子,使能FP32转换为HF32;针对Matmul类算子,不使能FP32转换为HF32。 使用约束:
支持情况: Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 推理系列产品:不支持 Atlas 训练系列产品:不支持 Atlas 200/500 A2推理产品:不支持 |
EXEC_DISABLE_REUSED_MEMORY |
内存复用开关。 参数取值:
配置示例: {ge::ir_option::EXEC_DISABLE_REUSED_MEMORY, "0"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OUTPUT_TYPE |
网络输出数据类型。 参数取值:
模型编译后,在对应的*.om模型文件中,数据类型以DT_FLOAT或DT_UINT8或DT_FLOAT16或DT_INT8值呈现。 配置示例: {ge::ir_option::OUTPUT_TYPE, "PF32"} 参数值约束:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
INPUT_FP16_NODES |
指定输入数据类型为FP16的输入节点名称。该参数必填。 例如:"node_name1;node_name2",指定的节点必须放在双引号中,节点中间使用英文分号分隔。若配置了该参数,则不能对同一个输入节点同时使用INSERT_OP_FILE参数。 配置示例: {ge::ir_option::INPUT_FP16_NODES, "node_name1;node_name2"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
LOG_LEVEL |
设置显示日志的级别。 参数取值:
配置示例: {ge::ir_option::LOG_LEVEL, "debug"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_COMPILER_CACHE_MODE |
用于配置算子编译磁盘缓存模式。
参数取值:
参数默认值:enable 配置示例: {ge::ir_option::OP_COMPILER_CACHE_MODE, "enable"} 使用约束:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_COMPILER_CACHE_DIR |
用于配置算子编译磁盘缓存的目录。 参数值格式:路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 默认值:$HOME/atc_data 配置示例: {ge::ir_option::OP_COMPILER_CACHE_MODE, "enable"} {ge::ir_option::OP_COMPILER_CACHE_DIR, "/home/test/data/atc_data"} 使用约束:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
DEBUG_DIR |
用于配置保存算子编译生成的调试相关的过程文件的路径,过程文件包括但不限于算子.o(算子二进制文件)、.json(算子描述文件)、.cce等文件。 默认生成在当前路径下。 使用约束:
配置示例: {ge::ir_option::OP_DEBUG_LEVEL, "1"} {ge::ir_option::DEBUG_DIR, "/home/test/module/out_debug_info"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_DEBUG_LEVEL |
算子debug功能开关,取值:
须知:
配置示例: {ge::ir_option::OP_DEBUG_LEVEL, "1"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
MDL_BANK_PATH |
加载子图调优后自定义知识库的路径。 该参数需要与aclgrphBuildInitialize支持的配置参数中的BUFFER_OPTIMIZE参数配合使用,仅在数据缓存优化开关打开的情况下生效,通过利用高速缓存暂存数据的方式,达到提升性能的目的。 参数值:模型调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:$HOME/Ascend/latest/data/aoe/custom/graph/<soc_version> 配置示例: {ge::ir_option::MDL_BANK_PATH, "$HOME/custom_module_path"} 使用约束: 加载子图调优后自定义知识库路径优先级:MDL_BANK_PATH参数加载路径>TUNE_BANK_PATH环境变量设置路径>默认子图调优后自定义知识库路径。
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_BANK_PATH |
算子调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:${HOME}/Ascend/latest/data/aoe/custom/op 配置示例: {ge::ir_option::OP_BANK_PATH, "$HOME/custom_tune_path"} 使用约束: 加载算子调优后自定义知识库路径优先级:TUNE_BANK_PATH环境变量设置路径>OP_BANK_PATH参数加载路径>默认算子调优后自定义知识库路径。
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
MODIFY_MIXLIST |
混合精度场景下,通过此参数指定混合精度黑白灰名单的路径以及文件名,自行指定哪些算子允许降精度,哪些算子不允许降精度。配置为路径以及文件名,文件为json格式。 黑白灰名单,可从“OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json”内置优化策略文件中查看“precision_reduce”参数下的flag参数值:
配置示例:
{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" ] } } 上述配置文件样例中展示的算子仅作为参考,请基于实际硬件环境和具体的算子内置优化策略进行配置。黑白灰名单查询样例如下: "Conv2D":{ "precision_reduce":{ "flag":"true" }, true:白名单。false:黑名单。不配置:灰名单。 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_PRECISION_MODE |
设置指定算子内部处理时的精度模式,支持指定一个算子或多个算子。通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。 配置文件中支持设置如下精度模式:
具体某个算子支持配置的精度/性能模式取值,可以通过CANN软件安装后文件存储路径的opp/built-in/op_impl/ai_core/tbe/impl_mode/all_ops_impl_mode.ini文件查看。 样例如下:ini文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型。 [ByOpType] optype1=high_precision optype2=high_performance optype3=enable_hi_float_32_execution optype4=support_out_of_bound_index [ByNodeName] nodename1=high_precision nodename2=high_performance nodename3=enable_hi_float_32_execution nodename4=support_out_of_bound_index 使用约束:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
SHAPE_GENERALIZED_BUILD_MODE |
图编译时Shape的编译方式。该参数在后续版本废弃、新开发功能请不要使用该参数。
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
CUSTOMIZE_DTYPES |
通过该参数自定义模型编译时算子的计算精度,模型中其他算子以PRECISION_MODE或PRECISION_MODE_V2指定的精度模式进行编译。该参数需要配置为配置文件路径及文件名,例如:/home/test/customize_dtypes.cfg。 参数值约束:
配置文件格式要求: # 按照算子名称配置 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
说明:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
BUILD_INNER_ MODEL |
当前版本暂不支持。 |
OP_DEBUG_CONFIG |
Global Memory内存检测功能开关。
取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:
配置示例:/root/test0.cfg,其中,test0.cfg文件信息为: {ge::ir_option::OP_DEBUG_LEVEL, "1"} 使用约束: 算子编译时,如果用户不想编译所有AI Core算子,而是指定某些AI Core算子进行编译,则需要在上述test0.cfg配置文件中新增OP_DEBUG_LIST字段,算子编译时,只编译该列表指定的算子,并按照OP_DEBUG_CONFIG配置的选项进行编译。OP_DEBUG_LIST字段要求如下:
配置示例如下:OP_DEBUG_CONFIG参数指定的配置文件(例如test0.cfg)中增加如下信息: {ge::ir_option::OP_DEBUG_CONFIG, "ccec_g,oom"} {ge::ir_option::OP_DEBUG_LIST, "GatherV2,opType::ReduceSum"} 模型编译时,GatherV2,ReduceSum算子按照ccec_g,oom选项进行编译。
说明:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
EXTERNAL_WEIGHT |
生成om模型文件时,是否将原始网络中的Const/Constant节点的权重外置,同时将节点类型转换为FileConstant类型。 离线场景,如果模型权重较大且环境对om大小有限制,建议开启外置权重将权重单独保存,来减小om大小。 参数取值:
配置示例: {ge::ir_option::EXTERNAL_WEIGHT, "1"} 使用约束:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
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"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
DISTRIBUTED_CLUSTER_BUILD |
大模型分布式编译切分场景使用。 大模型分布式编译切分开关,使能该参数后,生成的离线模型将用于分布式部署。“1”表示使能,空或其他值表示未使能。 配置示例: {ge::ir_option::DISTRIBUTED_CLUSTER_BUILD, "1"} 支持情况: Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
ENABLE_GRAPH_PARALLEL |
大模型分布式编译切分场景使用。 是否对原始模型进行自动切分。“1”表示开启自动切分,空或其他值表示不开启。 DISTRIBUTED_CLUSTER_BUILD参数开启分布式编译后,才支持开启自动切分功能,原始模型会按照GRAPH_PARALLEL_OPTION_PATH文件中的要求进行自动切分。 配置示例: {ge::ir_option::ENABLE_GRAPH_PARALLEL, "1"} 支持情况: Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
GRAPH_PARALLEL_OPTION_PATH |
大模型分布式编译切分场景使用。 对原始大模型进行切分时,指定算法切分策略配置文件路径和文件名。 DISTRIBUTED_CLUSTER_BUILD参数开启分布式编译,且ENABLE_GRAPH_PARALLEL参数开启切分功能后,才支持配置切分策略配置文件路径。 配置示例: {ge::ir_option::GRAPH_PARALLEL_OPTION_PATH, "./parallel_option.json"} 指定的配置文件必须为json格式,示例如下:
参数解释如下:
支持情况: Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
MODEL_RELATION_CONFIG |
大模型分布式编译切分场景使用。 表达多个切片模型间的数据关联和分布式通信组关系的配置文件及路径。该参数适用于原始模型为切片模型,且切片模型内含通信算子的场景。 该参数在开启分布式编译参数DISTRIBUTED_CLUSTER_BUILD后才生效。 配置示例: {ge::ir_option::MODEL_RELATION_CONFIG, "./model_relation.json"} 配置文件必须为json格式,示例如下: { "deploy_config" :[ //必选,部署模型与目标部署节点的映射关系 { "submodel_name":"submodel1.air", // 前端切分后的文件名称,要和前端切分后的Graph name名称保持一致 "deploy_device_id_list":"0:0:0" // 该模型要部署的目标设备cluster:0 node:0 item:0 }, { "submodel_name":"submodel2.air", "deploy_device_id_list":"0:0:1" } ], "model_name_to_instance_id":[ // 必选 { "submodel_name":"submodel1.air", // 模型对应的id,文件中由用户指定,不同文件对应不同id值即可 "model_instance_id":0 }, { "submodel_name":"submodel2.air", "model_instance_id":1 } ], "comm_group":[{ // 非必选,若前端切分的模型包含通信算子,此处应是切分后模型通信算子的通信域相关信息 "group_name":"tp_group_name_0", // 前端切分模型通信算子的子通信域 "group_rank_list":"[0,1]" // 前端切分模型通信算子的子rank列表 }], "rank_table":[ { "rank_id":0, // rankid与模型id的映射关系 "model_instance_id":0 }, { "rank_id":1, "model_instance_id":1 } ] } 支持情况: Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
AC_PARALLEL_ENABLE |
动态shape图中,是否允许AI CPU算子和AI Core算子并行运行。 动态shape图中,开关开启时,系统自动识别图中可以和AI Core并发的AI CPU算子,不同引擎的算子下发到不同流上,实现多引擎间的并行,从而提升资源利用效率和动态shape执行性能。 参数取值:
配置示例: {ge::ir_option::AC_PARALLEL_ENABLE, "1"} 支持情况: Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
QUANT_DUMPABLE |
是否采集量化算子的dump数据。 参考模型推理精度提升建议进行精度定位时,如果存在AMCT量化后的模型,该模型转成om离线模型时,图编译过程中可能优化量化算子的输入输出,从而影响量化算子dump数据的导出,例如:两个被量化的卷积计算,中间输出被优化为int8的量化后输出。 为此引入QUANT_DUMPABLE参数,使能该参数后,量化算子的输入输出不做融合,并且会插入transdata算子,还原原始模型的格式,从而能采集到量化算子的dump数据。 参数取值:
配置示例: {ge::ir_option::QUANT_DUMPABLE, "1"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品:支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
TILING_SCHEDULE_OPTIMIZE |
Tiling下沉调度优化开关。 由于NPU中AI Core内部存储无法完全容纳算子输入输出的所有数据,需要每次搬运一部分输入数据进行计算然后搬出,再搬运下一部分输入数据进行计算,该过程称之为Tiling;根据算子的shape等信息来确定数据切分算法相关参数(比如每次搬运的块大小,以及总共循环多少次)的计算程序,称之为Tiling实现。由于Tiling实现中完成的均为标量计算,AI Core并不擅长,故一般在Host侧CPU上执行,但是满足下述条件Tiling实现会下沉到Device侧执行:
参数取值:
配置示例: {ge::ir_option::TILING_SCHEDULE_OPTIMIZE, "1"} 支持情况: Atlas 推理系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 训练系列产品:不支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |