aclgrphBuildInitialize支持的配置参数
参数 |
说明 |
---|---|
CORE_TYPE |
设置网络模型使用的Core类型,若网络模型中包括Cube算子,则只能使用AiCore。 参数取值:
配置示例 {ge::ir_option::CORE_TYPE, "AiCore"} 支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 200/300/500 推理产品,不支持 Atlas 训练系列产品,不支持 Atlas 200/500 A2推理产品,不支持 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持 |
SOC_VERSION |
图编译时使用的昇腾AI处理器版本。
<soc_version>查询方法为:
配置示例: {ge::ir_option::SOC_VERSION, "<soc_version>"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
BUFFER_OPTIMIZE |
数据缓存优化开关。参数取值:
使用建议: 建议打开数据缓存优化功能:开启数据缓存优化可提高计算效率、提升性能,但由于部分算子在实现上可能存在未考虑的场景,导致影响精度,因此在出现精度问题时可以尝试关闭数据缓存优化。如果关闭数据缓存优化功能后,精度达标,则需要识别出问题算子,反馈给华为工程师进一步分析、解决算子问题;解决算子问题后,建议仍旧保持开启数据缓存优化功能。 配置示例: {ge::ir_option::BUFFER_OPTIMIZE, "l2_optimize"} 注意:当参数值设置为l1_optimize,则不能与VIRTUAL_TYPE参数同时使用,同时使用会出现报错,表示虚拟化场景不做l1融合,防止算子过大导致调度异常。 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 训练系列产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
ENABLE_COMPRESS_WEIGHT |
使能全局weight压缩。 AICore支持Weight压缩功能,通过使能该参数,可以对Weight进行数据压缩,在进行算子计算时,对Weight进行解压缩,从而达到减少带宽、提高性能的目的。 该参数使能全局weight压缩,不能与COMPRESS_WEIGHT_CONF同时使用。 参数取值:
配置示例: {ge::ir_option::ENABLE_COMPRESS_WEIGHT, "true"} 支持情况: Atlas 200/300/500 推理产品:不支持 Atlas 训练系列产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 200/500 A2推理产品:不支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:不支持 |
COMPRESS_WEIGHT_CONF |
要压缩的node节点列表配置文件路径及文件名,node节点主要为conv算子、fc算子。该参数不能与ENABLE_COMPRESS_WEIGHT参数同时使用。 参数值格式:路径和文件名支持大小写字母、数字,下划线;文件名支持大小写字母、数字,下划线和点(.)。 参数值约束:Weight压缩配置文件由AMCT输出,文件内容即为node名称列表,node名称之间以“;”间隔开。例如,compress_weight_nodes.cfg文件内容为:conv1; fc1; conv2_2/x1; fc2; conv5_32/x2;fc6。 配置示例: {ge::ir_option::COMPRESS_WEIGHT_CONF, "$HOME/module/compress_weight_nodes.cfg"} 支持情况: Atlas 200/300/500 推理产品:不支持 Atlas 训练系列产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 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 推理系列产品(Ascend 310P处理器):支持 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 推理系列产品(Ascend 310P处理器):支持 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。 由于ALLOW_HF32是使用HF32自动代替float32,要想该参数生效,必须保证被使能的算子输入或者输出类型为float32。 由于PRECISION_MODE_V2参数默认值为fp16,原始网络模型中算子类型为float32时会被强制转为float16类型,该场景下使用ALLOW_HF32参数不生效,建议修改PRECISION_MODE_V2参数值为origin(PRECISION_MODE参数默认值为force_fp16,建议修改为must_keep_origin_dtype或者force_fp32) 配置示例: {ge::ir_option::ALLOW_HF32, "true"} 支持情况: Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 训练系列产品:不支持 Atlas 200/500 A2推理产品:不支持 |
TUNE_DEVICE_IDS |
当前版本暂不支持。 |
EXEC_DISABLE_REUSED_MEMORY |
内存复用开关。 内存复用是指按照生命周期和内存大小,把不冲突的内存重复使用,来降低网络内存占用。 参数取值:
配置示例: {ge::ir_option::EXEC_DISABLE_REUSED_MEMORY, "0"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
ENABLE_SINGLE_STREAM |
是否使能一个模型只能使用一条stream。其中,Stream用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。 参数取值:
配置示例: {ge::ir_option::ENABLE_SINGLE_STREAM, "true"} 支持情况: Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 200/500 A2推理产品:不支持 |
AICORE_NUM |
设置编译时使用的AI Core数目。 支持情况: Atlas 200/300/500 推理产品:不支持 Atlas 训练系列产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 200/500 A2推理产品:不支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:不支持 |
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" } } } 需要注意的是:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
ENABLE_SMALL_CHANNEL |
是否使能small channel的优化,使能后在channel<=4的卷积层会有性能收益。建议用户在推理场景下打开此开关。 参数取值:
配置示例: {ge::ir_option::ENABLE_SMALL_CHANNEL, "1"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_SELECT_IMPL_MODE |
昇腾AI处理器部分内置算子有高精度和高性能实现方式,用户可以通过该参数配置模型编译时算子选择哪种实现方式。 高精度是指在float16输入场景,通过泰勒展开/牛顿迭代等手段进一步提升算子的精度;高性能是指在float16输入的情况下,不影响网络精度前提的最优性能实现。 参数取值:
上述实现模式,根据算子的dtype进行区分。${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。 参数默认值:high_performance 配置示例: {ge::ir_option::OP_SELECT_IMPL_MODE, "high_performance"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OPTYPELIST_FOR_IMPLMODE |
设置optype列表中算子的实现模式。 参数值约束:
配置示例: {ge::ir_option::OPTYPELIST_FOR_IMPLMODE, "Pooling,SoftmaxV2"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 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 推理系列产品(Ascend 310P处理器):支持 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 推理系列产品(Ascend 310P处理器):支持 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 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_DEBUG_LEVEL |
算子编译debug功能开关。 如果要自行指定算子编译的过程文件存放路径,则需要通过DEBUG_DIR参数指定,OP_DEBUG_LEVEL取值为0时,使用DEBUG_DIR参数不生效。 参数取值:
须知:
配置示例: {ge::ir_option::OP_DEBUG_LEVEL, "1"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OP_DEBUG_CONFIG |
Global Memory内存检测功能开关。 参数取值: 取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:
配置示例:/root/test0.cfg,其中,test0.cfg文件信息为: op_debug_config = ccec_g,oom
说明:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
MODIFY_MIXLIST |
混合精度场景下,配置算子使用混合精度黑白灰名单。配置为路径以及文件名,文件为json格式。
开启混合精度方式:
混合精度场景下全网中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用;而使用MODIFY_MIXLIST参数后,用户可以在内置优化策略基础上进行调整,自行指定哪些算子允许降精度,哪些算子不允许降精度。
配置示例:
{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:白名单。false:黑名单。不配置:灰名单。 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
SPARSITY |
使能全局稀疏特性。 AMCT(昇腾模型压缩工具)4选2结构化稀疏后输出的模型,可能存在weight连续4个Cin维度元素中至少有2个为0的场景,模型转换时通过使能全局稀疏开关,将该场景下的元素筛选成2个,从而节省后续推理的计算量,提高推理性能。 由于硬件约束,该参数不能与ENABLE_COMPRESS_WEIGHT、COMPRESS_WEIGHT_CONF同时使用。 参数取值:
配置示例: {ge::ir_option::SPARSITY, "1"} 使用约束:使用该参数时,请确保模型是稀疏的模型,建议用户使用AMCT(TensorFlow)或AMCT(PyTorch)的组合压缩功能获取,且组合压缩只能是4选2结构化稀疏+量化感知训练模式。 支持情况: Atlas 200/500 A2推理产品,支持 Atlas A2训练系列产品/Atlas 800I A2推理产品,支持 Atlas 推理系列产品(Ascend 310P处理器),不支持 Atlas 200/300/500 推理产品,不支持 Atlas 训练系列产品,不支持 |
EXTERNAL_WEIGHT |
生成om模型文件时,是否将原始网络中的Const/Constant节点的权重外置,同时将节点类型转换为FileConstant类型。 若网络中的weight占用内存较大,且模型加载环境内存受限时,建议通过此配置项将网络中Const/Constant节点的权重外置,防止由于内存不足导致模型编译出错。 参数取值:
配置示例: {ge::ir_option::EXTERNAL_WEIGHT, "1"} 使用约束:
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
DETERMINISTIC |
是否开启确定性计算。 默认情况下,不开启确定性计算,算子在相同的硬件和输入下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中,存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算功能时,算子在相同的硬件和输入下,多次执行将产生相同的输出。 通常建议不开启确定性计算,因为确定性计算往往会导致算子执行变慢,进而影响性能。当发现模型多次执行结果不同,或者是进行精度调优时,可开启确定性计算,辅助模型调试、调优。 参数取值:
配置示例: {ge::ir_option::DETERMINISTIC, "1"} 支持情况: Atlas 推理系列产品(Ascend 310P处理器),支持 Atlas 训练系列产品,支持 Atlas A2训练系列产品/Atlas 800I A2推理产品,支持 Atlas 200/300/500 推理产品,不支持 Atlas 200/500 A2推理产品,不支持 |
OPTION_HOST_ENV_OS |
若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统类型。如果不设置,则默认取模型编译环境的操作系统类型。 与OPTION_HOST_ENV_CPU参数配合使用,通过OPTION_HOST_ENV_OS参数设置操作系统类型、通过OPTION_HOST_ENV_CPU参数设置操作系统架构。 参考取值:"linux" 配置示例: {ge::ir_option::OPTION_HOST_ENV_OS, "linux"} {ge::ir_option::OPTION_HOST_ENV_CPU, "x86_64"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
OPTION_HOST_ENV_CPU |
若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统架构。如果不设置,则默认取模型编译环境的操作系统架构。 与OPTION_HOST_ENV_OS参数配合使用。 参考取值:
配置示例: {ge::ir_option::OPTION_HOST_ENV_OS, "linux"} {ge::ir_option::OPTION_HOST_ENV_CPU, "x86_64"}
支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
VIRTUAL_TYPE |
是否支持离线模型在昇腾虚拟化实例特性生成的虚拟设备上运行。 当前芯片算力比较大,云端用户或者小企业完全不需要使用这么大算力,昇腾虚拟化实例特性支持对芯片的算力进行切分,可满足用户根据自己的业务按需申请算力的诉求。 虚拟设备是指按照指定算力在芯片上申请的虚拟加速资源。 参数取值:
配置示例: {ge::ir_option::VIRTUAL_TYPE, "1"} 使用约束:
支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 |
COMPRESSION_OPTIMIZE_CONF |
压缩优化功能配置文件路径以及文件名,通过该参数使能配置文件中指定的压缩优化特性,从而提升网络性能。例如:/home/test/compression_optimize.cfg。 文件内容配置示例如下: enable_first_layer_quantization:true
支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 200/500 A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 训练系列产品:不支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:不支持 |
CLUSTER_CONFIG |
大模型分布式编译切分场景使用。 指定目标部署环境逻辑拓扑关系的配置文件及路径,解析后用于图中HCCL算子的离线编译。 如果图中包含通信算子或者开启了算法切分,需要配置该参数。
配置示例:
{ge::ir_option::CLUSTER_CONFIG, "/home/test/cluster_config.json"} 配置文件必须为json格式,示例如下,参数解释请参见CLUSTER_CONFIG配置文件参数说明。
支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
OPTION_SCREEN_PRINT_MODE |
控制图编译过程是否打屏。 参数取值:
配置示例: {ge::ir_option::OPTION_SCREEN_PRINT_MODE, "disable"} 支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 |
AC_PARALLEL_ENABLE |
动态shape图中,是否允许AI CPU算子和AI Core算子并行运行。 动态shape图中,开关开启时,系统自动识别图中可以和AI Core并发的AI CPU算子,不同引擎的算子下发到不同流上,实现多引擎间的并行,从而提升资源利用效率和动态shape执行性能。 参数取值:
配置示例: {ge::ir_option::AC_PARALLEL_ENABLE, "1"} 支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品/Atlas 800I A2推理产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |