本章节列出GEInitialize、Session构造函数、AddGraph接口传入的配置参数,分别在全局、session、graph生效。
表1中仅列出当前版本支持的配置参数,如果表中未列出,表示该参数预留或适用于其他芯片版本,用户无需关注。
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.graphRunMode |
图执行模式,取值:
|
必选 |
all |
ge.exec.deviceId |
GE实例运行时操作的设备的逻辑ID,限制有限范围为0~N-1,N表示该台Server上的可用昇腾AI处理器个数; |
必选 |
all |
ge.exec.precision_mode |
算子精度模式,配置要求为string类型。
|
必选 |
all |
ge.exec.modify_mixlist |
配置混合精度黑白灰名单,配置为路径以及文件名,文件为json格式。 allow_mix_precision混合精度模式下,针对全网中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。用户可以在内置优化策略基础上进行调整,自行指定哪些算子允许降精度,哪些算子不允许降精度。
配置示例:
{"ge.exec.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" },
|
可选 |
all |
ge.socVersion |
指定编译优化模型的昇腾AI处理器版本号。
可从“Ascend-cann-toolkit安装目录/ascend-toolkit/latest/data/platform_config”查看,".ini"文件的文件名即为对应的${soc_version}。如果用户根据上述方法仍旧无法确定具体使用的${soc_version},则:
|
可选 |
all |
ge.exec.profilingMode |
是否开启Profiling功能。
|
可选 |
all |
ge.exec.profilingOptions |
Profiling配置选项。
配置示例: std::map<ge::Ascendstring, ge::Ascendstring> ge_options = {{"ge.exec.deviceId", "0"}, {"ge.graphRunMode", "1"}, {"ge.exec.profilingMode", "1"}, {"ge.exec.profilingOptions", R"({"output":"/tmp/profiling","training_trace":"on","fp_point":"resnet_model/conv2d/Conv2Dresnet_model/batch_normalization/FusedBatchNormV3_Reduce","bp_point":"gradients/AddN_70"})"}}; |
可选 |
all |
ge.exec.enableDump |
是否开启dump功能,默认关闭。
|
可选 |
全局/session |
ge.exec.dumpPath |
Dump文件保存路径。开启dump和溢出检测功能时,该参数必须配置。 该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。
|
可选 |
全局/session |
ge.exec.dumpStep |
指定采集哪些迭代的dump数据。默认值:None,表示所有迭代都会产生dump数据。 多个迭代用“|”分割,例如:0|5|10;也可以用"-"指定迭代范围,例如:0|3-5|10。 |
可选 |
全局/session |
ge.exec.dumpMode |
dump模式,用于指定dump算子输入还是输出数据。取值如下:
|
可选 |
全局/session |
ge.exec.dumpData |
指定算子dump内容类型,取值:
|
可选 |
全局 |
ge.exec.dumpLayer |
指定需要dump的算子。 取值为算子名,多个算子名之间使用空格分隔,例如:“layer1 layer2 layer3” |
可选 |
全局/session |
ge.exec.enableDumpDebug |
是否开启溢出检测功能,默认关闭。
|
可选 |
全局/session |
ge.exec.dumpDebugMode |
溢出检测模式,取值如下:
|
可选 |
全局/session |
ge.exec.disableReuseMemory |
内存复用开关; 默认为0。
|
可选 |
all |
ge.graphMemoryMaxSize |
网络静态内存和最大动态内存,可根据网络大小指定。单位:Byte,取值范围:[0, 256*1024*1024*1024]或[0, 274877906944]。当前受芯片硬件限制,graph_memory_max_size和variable_memory_max_size总和最大支持31G。如果不设置,默认为26GB。 |
可选 |
all |
ge.variableMemoryMaxSize |
变量内存,可根据网络大小指定。单位:Byte,取值范围:[0,256*1024*1024*1024]或[0, 274877906944]。当前受芯片硬件限制,graph_memory_max_size和variable_memory_max_size总和最大支持31G。如果不设置,默认为5GB。 |
可选 |
all |
ge.exec.variable_acc |
是否开启变量格式优化。
为了提高训练效率,在网络执行的变量初始化过程中,将变量转换成更适合在昇腾AI处理器上运行的数据格式。但在用户特殊要求场景下,可以选择关闭该功能开关。 |
可选 |
all |
ge.exec.rankTableFile |
用于描述参与集合通信的集群信息,包括Server,Device,容器等的组织信息,填写ranktable文件路径,包含文件路径和文件名; |
可选 |
all |
ge.exec.rankId |
rank id,指进程在group中对应的rank标识序号。范围:0~(rank size-1)。对于用户自定义group,rank在本group内从0开始进行重排;对于hccl world group,rank id和world rank id相同。
|
可选 |
all |
ge.opDebugLevel |
算子debug功能开关,取值:
|
可选 |
all |
ge.exec.opDebugConfig |
Global Memory内存检测功能开关。 取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:
配置示例:/root/test0.cfg,其中,test0.cfg文件信息为: op_debug_config = ccec_O0,ccec_g,oom |
可选 |
全局 |
ge.op_compiler_cache_mode |
用于配置算子编译磁盘缓存模式。默认值为enable。
使用说明:
|
可选 |
all |
ge.op_compiler_cache_dir |
用于配置算子编译磁盘缓存的目录。 路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel_cache。 默认值:$HOME/atc_data |
可选 |
all |
ge.debugDir |
用于配置保存算子编译生成的调试相关的过程文件的路径,包括算子.o/.json/.cce等文件。 默认生成在当前训练脚本执行路径下。 |
可选 |
all |
ge.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 |
可选 |
all |
ge.op_bank_path |
算子调优后自定义知识库路径。 支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。默认自定义知识库路径${HOME}/Ascend/latest/data/aoe/custom/op |
可选 |
all |
ge.exec.dynamicGraphExecuteMode |
对于动态输入场景,需要通过该参数设置执行模式,取值为:dynamic_execute。 该模式下,前端框架调用AddGraph,获取ge.exec.dataInputsShapeRange中配置的shape范围进行图编译,编译时输入即为unknown,整图切分为一个unknown子图。 |
可选 |
graph |
ge.exec.dataInputsShapeRange |
动态输入的shape范围。例如全图有2个data输入,配置示例为: std::map<ge::Ascendstring, ge::Ascendstring> ge_options = {{"ge.exec.deviceId", "0"}, {"ge.graphRunMode", "1"}, {"ge.exec.dynamicGraphExecuteMode", "dynamic_execute"}, {"ge.exec.dataInputsShapeRange", "[128 ,3~5, 2~128, -1],[ 128 ,3~5, 2~128, -1]"}};
|
可选 |
graph |
ge.exec.op_precision_mode |
设置具体某个算子的精度模式,通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。 ini文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型,样例如下: [ByOpType] optype1=high_precision optype2=high_performance [ByNodeName] nodename1=high_precision nodename2=high_performance |
可选 |
全局 |
ge.opSelectImplmode |
昇腾AI处理器部分内置算子有高精度和高性能实现方式,用户可以通过该参数配置模型编译时选择哪种算子。取值包括:
|
可选 |
全局 |
ge.optypelistForImplmode |
列举算子optype的列表,该列表中的算子使用ge.opSelectImplmode参数指定的模式,当前支持的算子为Pooling、SoftmaxV2、LRN、ROIAlign。 该参数需要与ge.opSelectImplmode参数配合使用,例如: ge.opSelectImplmode配置为high_precision ge.optypelistForImplmode配置为Pooling。 |
可选 |
全局 |
ge.shape_generalized_build_mode |
当前版本暂不支持。 |
可选 |
graph |
ge.customizeDtypes |
通过该参数自定义模型编译时算子的计算精度,模型中其他算子以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
说明:
芯片支持情况: 昇腾310 AI处理器,支持该参数。 昇腾910 AI处理器,支持该参数。 昇腾310P AI处理器,支持该参数。 |
可选 |
session |
ge.exec.atomicCleanPolicy |
是否集中清理网络中所有atomic算子占用的内存,取值包括:
|
可选 |
session |
ge.jit_compile |
当前版本暂不支持。 |
可选 |
全局/session |
ge.build_inner_model |
当前版本暂不支持。 |
可选 |
NA |
ge.exec.staticMemoryPolicy |
网络运行是否使用内存静态分配方式。
默认值是0。 配置示例: {"ge.exec.staticMemoryPolicy", "1"}; |
可选 |
全局 |