参数 |
说明 |
---|---|
CORE_TYPE |
设置网络模型使用的Core类型,若网络模型中包括Cube算子,则只能使用AiCore。
产品支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 200/300/500 推理产品,不支持 Atlas 训练系列产品,不支持 Atlas 200/500 A2推理产品,不支持 Atlas A2训练系列产品,不支持 |
SOC_VERSION |
该参数为必选配置。 如果无法确定具体的<soc_version>,则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的<soc_version>值为Ascendxxxyy。 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
BUFFER_OPTIMIZE |
数据缓存优化开关。
注意:当参数值设置为l1_optimize,则不能与VIRTUAL_TYPE参数同时使用,同时使用会出现报错,表示虚拟化场景不做l1融合,防止算子过大导致调度异常。 产品支持情况: Atlas 200/300/500 推理产品 Atlas 训练系列产品 Atlas 推理系列产品(Ascend 310P处理器) Atlas 200/500 A2推理产品 Atlas A2训练系列产品 |
ENABLE_COMPRESS_WEIGHT |
使能全局weight压缩。 AICore支持Weight压缩功能,通过使能该参数,可以对Weight进行数据压缩,在进行算子计算时,对Weight进行解压缩,从而达到减少带宽、提高性能的目的。 该参数使能全局weight压缩,不能与COMPRESS_WEIGHT_CONF同时使用。
产品支持情况: Atlas 200/300/500 推理产品:不支持 Atlas 训练系列产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 200/500 A2推理产品:不支持 Atlas 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。 产品支持情况: Atlas 200/300/500 推理产品:不支持 Atlas 训练系列产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 200/500 A2推理产品:不支持 Atlas A2训练系列产品:不支持 |
PRECISION_MODE |
设置网络模型的精度模式。不能与PRECISION_MODE_V2同时使用,建议使用PRECISION_MODE_V2参数。
参数默认值:force_fp16 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
PRECISION_MODE_V2 |
设置网络模型的精度模式。不能与PRECISION_MODE同时使用,建议使用PRECISION_MODE_V2参数。
参数默认值:fp16 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas 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) 产品支持情况: Atlas A2训练系列产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 推理系列产品(Ascend 310P处理器):不支持 Atlas 训练系列产品:不支持 Atlas 200/500 A2推理产品:不支持 |
TUNE_DEVICE_IDS |
当前版本暂不支持。 |
EXEC_DISABLE_REUSED_MEMORY |
内存复用开关。
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
ENABLE_SINGLE_STREAM |
是否使能一个模型只能使用一条stream。
产品支持情况: Atlas 训练系列产品:支持 Atlas 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训练系列产品:不支持 |
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训练系列产品:支持 |
ENABLE_SMALL_CHANNEL |
是否使能small channel的优化,使能后在channel<=4的卷积层会有性能收益。 建议用户在推理场景下打开此开关。
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OP_SELECT_IMPL_MODE |
昇腾AI处理器部分内置算子有高精度和高性能实现方式,用户可以通过该参数配置模型编译时算子选择哪种实现方式。取值包括:
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OPTYPELIST_FOR_IMPLMODE |
设置optype列表中算子的实现模式。 列表中的算子使用OP_SELECT_IMPL_MODE参数指定的模式,当前仅支持指定为high_precision、high_performance两种模式,多个算子使用英文逗号进行分隔。 该参数需要与OP_SELECT_IMPL_MODE参数配合使用,且仅对指定的算子生效,不指定的算子按照默认实现方式选择。例如:OP_SELECT_IMPL_MODE配置为high_precision;OPTYPELIST_FOR_IMPLMODE配置为Pooling、SoftmaxV2。表示对Pooling、SoftmaxV2算子使用统一的高精度模式,未指定算子使用算子的默认实现方式。 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OP_COMPILER_CACHE_MODE |
用于配置算子编译磁盘缓存模式。默认值为enable。
使用说明:
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OP_COMPILER_CACHE_DIR |
用于配置算子编译磁盘缓存的目录。 路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel_cache。 默认值:$HOME/atc_data 算子编译磁盘缓存路径,除OP_COMPILER_CACHE_DIR参数设置的方式外,还可以配置环境变量ASCEND_CACHE_PATH,几种方式优先级为 配置参数“OP_COMPILER_CACHE_DIR”>环境变量ASCEND_CACHE_PATH>默认存储路径。 关于环境变量ASCEND_CACHE_PATH的详细说明请参见《环境变量参考》。 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
DEBUG_DIR |
用于配置保存算子编译生成的调试相关的过程文件的路径,过程文件包括但不限于算子.o(算子二进制文件)、.json(算子描述文件)、.cce等文件。 默认生成在当前路径下。 如果要自行指定算子编译的过程文件存放路径,需DEBUG_DIR参数与OP_DEBUG_LEVEL参数配合使用,且当OP_DEBUG_LEVEL取值为0时,不能使用DEBUG_DIR参数。 算子编译生成的调试文件存储路径,除DEBUG_DIR参数设置的方式外,还可以配置环境变量ASCEND_WORK_PATH,几种方式优先级为: 配置参数“DEBUG_DIR”>环境变量ASCEND_WORK_PATH >默认存储路径。 关于环境变量ASCEND_WORK_PATH的详细说明请参见《环境变量参考》。 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OP_DEBUG_LEVEL |
算子编译debug功能开关。参数取值:
须知:
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OP_DEBUG_CONFIG |
Global Memory内存检测功能开关。 取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:
配置示例:/root/test0.cfg,其中,test0.cfg文件信息为: op_debug_config = ccec_O0,ccec_g,oom
说明:
开启ccec编译选项的场景下(即ccec_O0、ccec_g选项),会增大算子Kernel(*.o文件)的大小。动态shape场景下,由于算子编译时会遍历可能存在的所有场景,最终可能会导致由于算子Kernel文件过大而无法进行编译的情况,此种场景下,建议不要开启ccec编译选项。 由于算子kernel文件过大而无法编译的日志显示如下: message:link error ld.lld: error: InputSection too large for range extension thunk ./kernel_meta_xxxxx.o:(xxxx) 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas 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训练系列产品:支持 |
SPARSITY |
使能全局稀疏特性。 AMCT(昇腾模型压缩工具)4选2结构化稀疏后输出的模型,可能存在weight连续4个Cin维度元素中至少有2个为0的场景,模型转换时通过使能全局稀疏开关,将该场景下的元素筛选成2个,从而节省后续推理的计算量,提高推理性能。 由于硬件约束,该参数不能与ENABLE_COMPRESS_WEIGHT、COMPRESS_WEIGHT_CONF同时使用。 参数值:
参数默认值:0 使用约束:使用该参数时,请确保模型是稀疏的模型,建议用户使用AMCT(TensorFlow)或AMCT(PyTorch)的组合压缩功能获取,且组合压缩只能是4选2结构化稀疏+量化感知训练模式。 产品支持情况: Atlas 200/300/500 推理产品,不支持 Atlas 训练系列产品,不支持 Atlas 推理系列产品(Ascend 310P处理器),不支持 Atlas 200/500 A2推理产品,支持 Atlas A2训练系列产品,支持 |
EXTERNAL_WEIGHT |
模型编译时,是否将网络中Const/Constant节点的权重保存在单独的文件中,取值包括:
说明:当网络中weight占用内存较大且对模型大小有限制时,建议将此配置项设置为“1”。 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
DETERMINISTIC |
是否开启确定性计算。 默认情况下,不开启确定性计算,算子在相同的硬件和输入下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中,存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算功能时,算子在相同的硬件和输入下,多次执行将产生相同的输出。 通常建议不开启确定性计算,因为确定性计算往往会导致算子执行变慢,进而影响性能。当发现模型多次执行结果不同,或者是进行精度调优时,可开启确定性计算,辅助模型调试、调优。 参数值:
配置示例: {ge::ir_option::DETERMINISTIC, "1"} 产品支持情况: Atlas 推理系列产品(Ascend 310P处理器),支持 Atlas 训练系列产品,支持 Atlas 200/300/500 推理产品,不支持 Atlas 200/500 A2推理产品,不支持 Atlas A2训练系列产品,不支持 |
OPTION_HOST_ENV_OS |
若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统类型。 如果不设置,则默认取模型编译环境的操作系统类型。 与OPTION_HOST_ENV_CPU参数配合使用。 转换后的离线模型文件名称会包含操作系统类型、架构,例如:xxx_linux_x86_64.om 参数取值:"linux" 产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
OPTION_HOST_ENV_CPU |
若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统架构。 如果不设置,则默认取模型编译环境的操作系统架构。 与OPTION_HOST_ENV_OS参数配合使用。 转换后的离线模型文件名称会包含操作系统类型、架构,例如:xxx_linux_x86_64.om 参数取值:
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
VIRTUAL_TYPE |
是否支持离线模型在昇腾虚拟化实例特性生成的虚拟设备上运行。 当前芯片算力比较大,云端用户或者小企业完全不需要使用这么大算力,昇腾虚拟化实例特性支持对芯片的算力进行切分,可满足用户根据自己的业务按需申请算力的诉求。 虚拟设备是指按照指定算力在芯片上申请的虚拟加速资源。 参数取值:
使用约束:
产品支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 Atlas 200/300/500 推理产品:不支持 |
COMPRESSION_OPTIMIZE_CONF |
压缩优化功能配置文件路径以及文件名,通过该参数使能配置文件中指定的压缩优化特性,从而提升网络性能。例如:/home/test/compression_optimize.cfg。 文件内容配置示例如下: enable_first_layer_quantization:true
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |
CLUSTER_CONFIG |
指定目标部署环境逻辑拓扑关系的配置文件及路径,解析后用于图中HCCL算子的离线编译。 如果图中包含通信算子或者开启了算法切分,需要配置该参数。
配置示例:
{ge::ir_option::CLUSTER_CONFIG, "/home/test/cluster_config.json"} 配置文件必须为json格式,示例如下:
产品支持情况: Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas A2训练系列产品:支持 Atlas 200/300/500 推理产品:不支持 Atlas 200/500 A2推理产品:不支持 |
OPTION_SCREEN_PRINT_MODE |
控制图编译过程是否打屏。 参数取值:
产品支持情况: Atlas 200/300/500 推理产品:支持 Atlas 推理系列产品(Ascend 310P处理器):支持 Atlas 训练系列产品:支持 Atlas 200/500 A2推理产品:支持 Atlas A2训练系列产品:支持 |