options参数说明
本章节列出GEInitialize、Session构造函数、AddGraph接口传入的配置参数,分别在全局、session、graph生效。

如下表格中仅列出当前版本支持的配置参数,如果表中未列出,表示该参数预留或适用于其他版本的昇腾AI处理器,用户无需关注。
基础功能
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.graphRunMode |
图执行模式,取值:
配置示例: {"ge.graphRunMode", "0"}; |
可选 |
全局/session |
ge.exec.deviceId |
GE实例运行时操作设备的逻辑ID。
N表示该台Server上的可用昇腾AI处理器个数。 配置示例: {"ge.exec.deviceId", "-1"}; |
可选 |
全局 |
ge.session_device_id |
当用户需要将不同的模型通过同一个脚本在不同的Device上执行,可以通过该参数指定Device的逻辑ID。 通常可以创建多个线程,每个线程是不同的session,每个session传不同的ge.session_device_id。 配置示例: {"ge.session_device_id", "0"}; |
可选 |
session |
ge.socVersion |
指定编译优化模型的昇腾AI处理器型号。
|
可选 |
all |
ge.enableSingleStream |
静态shape场景下,是否使能图运行顺序单流串行执行。 其中,流(Stream)用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。 参数取值:
使用约束: 模型中存在Cmo算子和如下控制类算子时,不能使用单Stream特性,只能使用默认值false。
配置示例: {"ge.enableSingleStream", "false"}; |
可选 |
graph |
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.constLifecycle |
用于训练和在线推理场景下配置常量节点的生命周期。 session:按照session级别存储常量节点。配置为session级别时,session内多张图间的常量节点支持内存复用,但需要用户保证多张图上同名的常量节点完全相同。 graph:按照graph级别存储常量节点,后续用户可调用SetGraphConstMemoryBase接口按图级别对const内存自行管理。 训练场景默认值为session;在线推理场景默认值为graph。 |
可选 |
all |
ge.deterministic |
是否开启确定性计算。 默认情况下,不开启确定性计算,算子在相同的硬件和输入下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中,存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算功能时,算子在相同的硬件和输入下,多次执行将产生相同的输出。但启用确定性计算往往导致算子执行变慢。当发现模型多次执行结果不同,或者是进行精度调优时,可开启确定性计算,辅助模型调试、调优。 参数取值:
配置示例: {"ge.deterministic", "0"}; |
可选 |
全局 |
ge.exec.frozenInputIndexes |
设置地址不刷新的输入tensor的索引。该参数仅限于LoadGraph调用。针对不同模型,输入tensor索引内容不同:
配置示例: # 只传输入tensor索引 {"ge.exec.frozenInputIndexes", "0;1;2"}; # 传递输入tensor索引、数据在device上的地址、数据长度 {"ge.exec.frozenInputIndexes", "0,88832131,4;1,888213294,4;2,193492421,2"}; 使用约束: 地址不刷新的输入tensor,必须是静态shape,针对动态shape模型,该输入节点tensor也必须是静态shape。 |
可选 |
graph |
内存管理
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.exec.disableReuseMemory |
内存复用开关。
配置示例: {"ge.exec.disableReuseMemory", "0"}; |
可选 |
all |
ge.exec.atomicCleanPolicy |
是否集中清理网络中所有memset算子(含有memset属性的算子都是memset算子)占用的内存。 参数取值:
配置示例: {"ge.exec.atomicCleanPolicy", "0"}; |
可选 |
session |
ge.externalWeight |
同一个session内同时加载多个模型时,如果多个模型间的权重能够复用,建议通过此配置项将网络中Const/Constant节点的权重外置,实现多个模型间的权重复用,以减少权重的内存占用。 参数取值:
落盘路径说明:
模型卸载时,会将tmp_weight_<pid>_<sessionid>目录删除。 配置示例: {"ge.externalWeight", "1"}; |
可选 |
session |
ge.exec.staticMemoryPolicy |
网络运行时使用的内存分配方式。 参数取值:
说明:
配置示例: {"ge.exec.staticMemoryPolicy", "0"}; |
可选 |
全局/session |
ge.featureBaseRefreshable |
配置feature内存地址是否可刷新。若用户需要自行管理feature内存并需要多次刷新该地址,则可将该参数配置为可刷新。 该参数仅限于静态shape图。 参数取值: 0:(默认值)feature内存地址不可刷新。 1:支持刷新模型的feature内存地址。 配置示例: {"ge.featureBaseRefreshable", "0"}; |
可选 |
all |
ge.exec.inputReuseMemIndexes |
用于配置是否开启图的输入节点的内存复用功能,开启后,输入节点的内存可作为模型执行过程中所需要的中间内存再次使用,从而达到降低内存峰值的目的。 参数取值为输入节点的index;如果对多个输入节点都开启内存复用,多个index间使用英文逗号分隔。输入节点需要设置属性index,说明是第几个输入,index从0开始。 注意:
配置示例: {"ge.exec.inputReuseMemIndexes", "0,1,2"}; |
可选 |
graph |
ge.exec.outputReuseMemIndexes |
用于配置是否开启整图输出的内存复用功能,开启后,整图输出的内存可作为模型执行过程中所需要的中间内存再次使用,从而达到降低内存峰值的目的。 如果开启,配置为整图输出的index;如果对多个输出都开启内存复用,多个index间使用英文逗号分隔。 注意:
配置示例: {"ge.exec.outputReuseMemIndexes", "0,1,2"}; |
可选 |
graph |
ge.exec.input_fusion_size |
Host侧输入数据搬运到Device侧时,将用户离散多个输入数据合并拷贝的阈值,最小值为0,最大值为32MB(33554432字节),默认值为128KB(131072字节)。若:
例如用户有10个输入,有2个输入数据大小为100KB,2个输入数据大小为50KB,其余输入大于100KB,若设置:
该参数只在异步静态shape图执行时生效,即使用RunGraphAsync接口运行Graph。 |
可选 |
all |
动态shape
算子编译与图编译
大模型分布式编译切分
功能调试
精度调优
精度比对
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.exec.enableDump |
是否开启dump功能。
配置示例: {"ge.exec.enableDump", "0"};
说明:
|
可选 |
全局/session |
ge.exec.dumpPath |
Dump文件保存路径。开启dump和溢出检测功能时,该参数必须配置。 该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。
dump文件生成在该参数指定的目录下,即{dump_path}/{time}/{deviceid}/{model_name}/{model_id}/{data_index}目录下,以{dump_path}配置/home/HwHiAiUser/output为例,例如存放在“/home/HwHiAiUser/output/20200808163566/0/ge_default_20200808163719_121/11/0”目录下。 |
可选 |
全局/session |
ge.exec.dumpStep |
指定采集哪些迭代的dump数据。默认值:None,表示所有迭代都会产生dump数据。 多个迭代用“|”分割,例如:0|5|10;也可以用"-"指定迭代范围,例如:0|3-5|10。 配置示例: {"ge.exec.dumpStep", "None"}; |
可选 |
全局/session |
ge.exec.dumpMode |
dump模式,用于指定dump算子输入数据还是输出数据。取值如下:
配置示例: {"ge.exec.dumpMode", "input"}; 使用约束: 配置为all时,由于部分算子在执行过程中会修改输入数据,例如集合通信类算子HcomAllGather、HcomAllReduce等,因此系统在进行dump时,会在算子执行前dump算子输入,在算子执行后dump算子输出,这样,针对同一个算子,算子输入、输出的dump数据是分开落盘,会出现多个dump文件,在解析dump文件后,用户可通过文件内容判断是输入还是输出。 |
可选 |
全局/session |
ge.exec.dumpData |
指定算子dump内容类型,取值:
配置示例: {"ge.exec.dumpData", "tensor"}; |
可选 |
全局/session |
ge.exec.dumpLayer |
指定需要dump的算子,取值为算子名,多个算子名之间使用空格分隔。 若指定的算子其输入涉及data算子,会同时将data算子信息dump出来。
配置示例:
{"ge.exec.dumpLayer", "layer1 layer2 layer3"}; |
可选 |
全局/session |
ge.exec.enableDumpDebug |
是否开启溢出检测功能。
配置示例: {"ge.exec.enableDumpDebug", "0"};
说明:
|
可选 |
全局/session |
ge.exec.dumpDebugMode |
溢出检测模式,取值如下:
针对如下产品型号,仅支持配置为“all”: |
可选 |
全局/session |
ge.bufferOptimize |
数据缓存优化开关。 参数值:
使用建议: 建议打开数据缓存优化功能:开启数据缓存优化可提高计算效率、提升性能,但由于部分算子在实现上可能存在未考虑的场景,导致影响精度,因此在出现精度问题时可以尝试关闭数据缓存优化。如果关闭数据缓存优化功能后,精度达标,则需要识别出问题算子,反馈给技术支持进一步分析、解决算子问题;解决算子问题后,建议仍旧保持开启数据缓存优化功能。 配置示例: {"ge.bufferOptimize", "l2_optimize"}; |
可选 |
session/graph |
性能调优
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.exec.variable_acc |
是否开启变量格式优化。
为了提高训练效率,在网络执行的变量初始化过程中,将变量转换成更适合在昇腾AI处理器上运行的数据格式。但在用户特殊要求场景下,可以选择关闭该功能开关。 |
可选 |
all |
ge.exec.op_precision_mode |
设置指定算子内部处理时的精度模式,支持指定一个算子或多个算子。通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。 ini文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型。 配置文件中支持设置如下精度模式:
具体某个算子支持配置的精度/性能模式取值,可以通过CANN软件安装后文件存储路径的opp/built-in/op_impl/ai_core/tbe/impl_mode/all_ops_impl_mode.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 |
可选 |
全局 |
ge.optypelistForImplmode |
列举算子optype的列表,该列表中的算子使用ge.opSelectImplmode参数指定的模式。 参数值约束:
|
可选 |
全局 |
ge.tiling_schedule_optimize |
Tiling下沉调度优化开关。 由于NPU中AI Core内部存储无法完全容纳算子输入输出的所有数据,需要每次搬运一部分输入数据进行计算然后搬出,再搬运下一部分输入数据进行计算,该过程称之为Tiling;根据算子的shape等信息来确定数据切分算法相关参数(比如每次搬运的块大小,以及总共循环多少次)的计算程序,称之为Tiling实现。由于Tiling实现中完成的均为标量计算,AI Core并不擅长,故一般在Host侧CPU上执行,但是满足下述条件Tiling实现会下沉到Device侧执行:
参数取值:
配置示例: {"ge.tiling_schedule_optimize", "0"}; 该参数仅在以下产品型号支持: |
可选 |
全局 /session |
ge.graphMaxParallelModelNum |
图执行模式下,同一个图可以在同一个device上被多个模型并行加载执行;该参数用于控制允许并行加载的最大模型数目。 参数取值: 1~INT32_MAX,默认为8。 配置示例: {"ge.graphMaxParallelModelNum", "8"}; |
可选 |
all |
Profiling
AOE
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.mdl_bank_path |
加载子图调优后自定义知识库的路径。 该参数需要与ge.bufferOptimize参数配合使用,仅在数据缓存优化开关打开的情况下生效,通过利用高速缓存暂存数据的方式,达到提升性能的目的。 参数值:模型调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:$HOME/Ascend/latest/data/aoe/custom/graph/<soc_version> 使用约束: 加载子图调优后自定义知识库路径优先级:ge.mdl_bank_path参数加载路径>TUNE_BANK_PATH环境变量设置路径>默认子图调优后自定义知识库路径。
|
可选 |
all |
ge.op_bank_path |
算子调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:${HOME}/Ascend/latest/data/aoe/custom/op 使用约束: 加载算子调优后自定义知识库路径优先级:TUNE_BANK_PATH环境变量设置路径>OP_BANK_PATH参数加载路径>默认算子调优后自定义知识库路径。
|
可选 |
all |
异常补救
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
stream_sync_timeout |
图执行时,stream同步等待超时时间,超过配置时间时报同步失败。单位:ms 默认值-1,表示无等待时间,出现同步失败不报错。 配置示例: {"stream_sync_timeout", "-1"}; |
可选 |
全局/session |
event_sync_timeout |
图执行时,event同步等待超时时间,超过配置时间时报同步失败。单位:ms 默认值-1,表示无等待时间,出现同步失败不报错。 配置示例: {"event_sync_timeout", "-1"}; |
可选 |
全局/session |
试验参数
Options key |
Options value |
必选/可选 |
全局/session/graph级别生效 |
---|---|---|---|
ge.jit_compile |
当前版本暂不支持。 |
可选 |
全局/session |
ge.build_inner_model |
当前版本暂不支持。 |
可选 |
NA |
ge.disableOptimizations |
该参数为调试参数,当前不支持应用于商用产品中,后续版本会作为正式特性更新发布。 该参数仅适用与如下产品: 用于指定关闭的某一个或者多个编译优化pass。 当前仅支持关闭如下pass: "RemoveSameConstPass","ConstantFoldingPass","TransOpWithoutReshapeFusionPass" 注意:
配置示例:
|
可选 |
all |
ge.oo.level |
调试功能扩展参数,当前不支持应用于商用产品中,后续版本会作为正式功能更新发布。 图编译多级优化选项,包括子图优化、整图优化、静态shape模型下沉等。 静态shape模型下沉:静态shape模型在编译时即可确定所有算子的输入输出shape,完成模型级内存编排、算子的Tiling计算等Host侧计算,在模型加载时整体下发到Device流上,但不立即执行,通过下发模型执行Task触发模型中所有Task的执行。 参数取值:
配置示例: {"ge.oo.level", "O3"}; |
可选 |
all |
ge.oo.constantFolding |
调试功能扩展参数,当前不支持应用于商用产品中,后续版本会作为正式功能更新发布。 是否开启常量折叠优化。 常量折叠是将计算图中可以预先确定输出值的节点替换成常量,并对计算图进行一些结构简化的操作。 参数取值:
配置示例: {"ge.oo.constantFolding", "true"}; 使用约束: 如果同时配置了其他编译优化选项,比如ge.disableOptimizations,则ge.disableOptimizations优先级更高。 |
可选 |
all |
ge.oo.deadCodeElimination |
调试功能扩展参数,当前不支持应用于商用产品中,后续版本会作为正式功能更新发布。 是否开启死边消除优化。 死边消除:switch死边消除,switch的pred输入(1号输入)为const节点时,根据const的值消除其中一条分支:const为true时,消除false分支;const为false时,消除true分支。 参数取值:
配置示例: {"ge.oo.deadCodeElimination", "true"}; |
可选 |
all |