ge.graphRunMode |
图执行模式,取值:
- 0:在线推理场景下,请配置为0。
- 1:训练场景下,请配置为1。
|
必选 |
全局/session |
ge.exec.deviceId |
GE实例运行时操作的设备的逻辑ID,限制有限范围为0~N-1,N表示该台Server上的可用昇腾AI处理器个数; |
必选 |
all |
ge.inputShape |
指定模型输入数据的shape。 例如:"input_name:n,c,h,w"。指定的节点必须放在双引号中;若模型有多个输入,则不同输入之间使用英文分号分隔,例如,"input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2"。input_name必须是转换前的网络模型中的节点名称。
- 固定shape,例如某网络的输入shape信息,输入1:input_0_0 [16,32,208,208],输入2:input_1_0 [16,64,208,208],则INPUT_SHAPE的配置信息为:
{"ge.inputShape", "input_0_0:16,32,208,208;input_1_0:16,64,208,208"}
- 若原始模型中输入数据的某个或某些维度值不固定,当前支持通过设置shape分档或设置shape范围两种方式转换模型:
- 设置shape分档,包括设置BatchSize档位、设置分辨率档位、设置动态维度档位(最多4维)。
设置INPUT_SHAPE参数时,将对应维度值设置为-1,同时配合使用DYNAMIC_BATCH_SIZE(设置BatchSize档位)或DYNAMIC_IMAGE_SIZE(设置分辨率档位)或DYNAMIC_DIMS(设置动态维度档位)参数。详细用法请参考DYNAMIC_BATCH_SIZE、DYNAMIC_IMAGE_SIZE、DYNAMIC_DIMS参数说明。
- 设置shape范围。Atlas 200/300/500 推理产品、Atlas 200/500 A2推理产品不支持设置shape范围。
设置INPUT_SHAPE参数时,可将对应维度的值设置为范围。
- 支持按照name设置:"input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2",例如:"input_name1:8~20,3,5,-1;input_name2:5,3~9,10,-1"。指定的节点必须放在双引号中,节点中间使用英文分号分隔。input_name必须是转换前的网络模型中的节点名称。如果用户知道data节点的name,推荐按照name设置。
如果用户不想指定维度的的范围或具体取值,则可以将其设置为-1,表示此维度可以使用>=1的任意取值。
说明:
上述场景下,ge.inputShape为可选设置。如果不设置,系统直接读取对应Data节点的shape信息,如果设置,以此处设置的为准,同时刷新对应Data节点的shape信息。
|
可选 |
session/graph |
ge.dynamicDims |
设置ND格式下动态维度的档位。适用于执行推理时,每次处理任意维度的场景。该参数需要与ge.inputShape配合使用。 参数通过"dim1,dim2,dim3;dim4,dim5,dim6;dim7,dim8,dim9"的形式设置,所有档位必须放在双引号中,每档中间使用英文分号分隔,每档中的dim值与ge.inputShape参数中的-1标识的参数依次对应,inputShape参数中有几个-1,则每档必须设置几个维度。 支持的档位数取值范围为:(1,100],每档最多支持任意指定4个维度,建议配置为3~4档。 使用示例:
- 若模型只有一个输入:
{"ge.inputShape", "data:1,-1,-1"}
{"ge.dynamicDims", "1,2;3,4;5,6;7,8"}
// graph运行时,支持的data算子的shape为1,1,2; 1,3,4; 1,5,6; 1,7,8
- 若网络模型有多个输入:
每档中的dim值与模型输入参数中的-1标识的参数依次对应,模型输入参数中有几个-1,则每档必须设置几个维度。例如网络模型有三个输入,分别为data(1,1,40,T),label(1,T),mask(T,T) , 其中T为动态可变。则配置示例为: {"ge.inputShape", "data:1,1,40,-1;label:1,-1;mask:-1,-1" }
{"ge.dynamicDims", "20,20,1,1;40,40,2,2;80,60,4,4"}
// graph运行时,支持的输入dims组合档数分别为:
//第0档:data(1,1,40,20)+label(1,20)+mask(1,1)
//第1档:data(1,1,40,40)+label(1,40)+mask(2,2)
//第2档:data(1,1,40,80)+label(1,60)+mask(4,4)
|
可选 |
session/graph |
ge.dynamicNodeType |
用于指定动态输入的节点类型。
- 0:dataset输入为动态输入。
- 1:placeholder输入为动态输入。
当前不支持dataset和placeholder输入同时为动态输入。 |
可选 |
session/graph |
ge.exec.precision_mode |
算子精度模式,配置要求为string类型。不能与ge.exec.precision_mode_v2同时使用,建议使用ge.exec.precision_mode_v2参数。
- force_fp32/cube_fp16in_fp32out:
配置为force_fp32或cube_fp16in_fp32out,效果等同,系统内部都会根据矩阵类算子或矢量类算子,来选择不同的处理方式。cube_fp16in_fp32out为新版本中新增的,对于矩阵计算类算子,该选项语义更清晰。
- force_fp16:
表示网络模型中算子支持float16和float32时,强制选择float16。
- allow_fp32_to_fp16:
- 对于矩阵类算子,使用float16。
- 对于矢量类算子,优先保持原图精度,如果网络模型中算子支持float32,则保留原始精度float32,如果网络模型中算子不支持float32,则直接降低精度到float16。
- must_keep_origin_dtype:
表示保持原图精度。
- 如果原图中某算子精度为float16,AI Core中该算子的实现不支持float16、仅支持float32,则系统内部会自动采用高精度float32。
- 如果原图中某算子精度为float32,AI Core中该算子的实现不支持float32类型、仅支持float16类型,则会使用float32的AI CPU算子;如果AI CPU算子也不支持,则执行报错。
- allow_mix_precision/allow_mix_precision_fp16:
配置为allow_mix_precision或allow_mix_precision_fp16,效果等同,均表示使用混合精度float16和float32数据类型来处理神经网络的过程。allow_mix_precision_fp16为新版本中新增的,语义更清晰,便于理解。 针对网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。 若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
- 若取值为true(白名单),则表示允许将当前float32类型的算子,降低精度到float16。
- 若取值为false(黑名单),则不允许将当前float32类型的算子降低精度到float16,相应算子仍旧使用float32精度。
- 若网络模型中算子没有配置该参数(灰名单),当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。
- allow_mix_precision_bf16:仅Atlas A2训练系列产品场景支持此配置。
表示使用混合精度bfloat16和float32数据类型来处理神经网络的过程。针对原始模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到bfloat16,从而在精度损失很小的情况下提升系统性能并减少内存使用;如果算子不支持bfloat16和float32,则使用AI CPU算子进行计算;如果AI CPU算子也不支持,则执行报错。 若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
- 若取值为true(白名单),则表示允许将当前float32类型的算子,降低精度到bfloat16。
- 若取值为false(黑名单),则不允许将当前float32类型的算子降低精度到bfloat16,相应算子仍旧使用float32精度。
- 若网络模型中算子没有配置该参数(灰名单),当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。
- allow_fp32_to_bf16:仅Atlas A2训练系列产品场景支持此配置。
- 对于矩阵计算类算子,使用bfloat16。
- 对于矢量计算类算子,优先保持原图精度,如果原始模型中算子支持float32,则保留原始精度float32;如果原始模型中算子不支持float32,则直接降低精度到bfloat16;如果算子不支持bfloat16和float32,则使用AI CPU算子进行计算;如果AI CPU算子也不支持,则执行报错。
参数默认值: 训练场景下,针对Atlas 训练系列产品,参数默认值为“allow_fp32_to_fp16”。 训练场景下,针对Atlas A2训练系列产品,参数默认值为“must_keep_origin_dtype”。 在线推理场景下,参数默认值为“force_fp16”。 |
可选 |
all |
ge.exec.precision_mode_v2 |
算子精度模式,配置要求为string类型。不能与ge.exec.precision_mode同时使用,建议使用ge.exec.precision_mode_v2参数。
- fp16:
算子支持float16和float32数据类型时,强制选择float16。
- origin:
表示保持原图精度。
- 如果原图中某算子精度为float16,AI Core中该算子的实现不支持float16、仅支持float32,则系统内部会自动采用高精度float32。
- 如果原图中某算子精度为float32,AI Core中该算子的实现不支持float32类型、仅支持float16类型,则会使用float32的AI CPU算子;如果AI CPU算子也不支持,则执行报错。
- cube_fp16in_fp32out:
算子既支持float32又支持float16数据类型时,系统内部根据算子类型不同,选择不同的处理方式。
- mixed_float16:
表示使用混合精度float16和float32数据类型来处理神经网络。针对网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。 若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
- 若取值为true(白名单),则表示允许将当前float32类型的算子,降低精度到float16。
- 若取值为false(黑名单),则不允许将当前float32类型的算子降低精度到float16,相应算子仍旧使用float32精度。
- 若网络模型中算子没有配置该参数(灰名单),当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。
- mixed_bfloat16:仅Atlas A2训练系列产品场景支持此配置。
表示使用混合精度bfloat16和float32数据类型来处理神经网络。针对网络模型中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到bfloat16,从而在精度损失很小的情况下提升系统性能并减少内存使用;如果算子不支持bfloat16和float32,则使用AI CPU算子进行计算;如果AI CPU算子也不支持,则执行报错。 若配置了该种模式,则可以在OPP软件包安装路径${INSTALL_DIR}/opp/built-in/op_impl/ai_core/tbe/config/<soc_version>/aic-<soc_version>-ops-info.json内置优化策略文件中查看“precision_reduce”参数的取值:
- 若取值为true(白名单),则表示允许将当前float32类型的算子,降低精度到bfloat16。
- 若取值为false(黑名单),则不允许将当前float32类型的算子降低精度到bfloat16,相应算子仍旧使用float32精度。
- 若网络模型中算子没有配置该参数(灰名单),当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。
参数默认值: 训练场景下,针对Atlas 训练系列产品,该配置项无默认取值,以“precision_mode”参数的默认值为准,即allow_fp32_to_fp16”。 训练场景下,针对Atlas A2训练系列产品,参数默认值为“origin”。 在线推理场景下,参数默认值为“fp16”。 |
可选 |
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"
},
- true:(白名单)允许将当前float32类型的算子,降低精度到float16。
- false:(黑名单)不允许将当前float32类型的算子,降低精度到float16。
- 不配置:(灰名单)当前算子的混合精度处理机制和前一个算子保持一致,即如果前一个算子支持降精度处理,当前算子也支持降精度;如果前一个算子不允许降精度,当前算子也不支持降精度。
|
可选 |
all |
ge.socVersion |
指定编译优化模型的昇腾AI处理器版本号。 如果无法确定具体的<soc_version>,则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的<soc_version>值为Ascendxxxyy。 |
可选 |
all |
ge.exec.profilingMode |
是否开启Profiling功能。
- 1:开启Profiling功能,从ge.exec.profilingOptions读取Profiling的采集选项。
- 0:关闭Profiling功能,默认关闭。
|
可选 |
all |
ge.exec.profilingOptions |
Profiling配置选项。
- output:Profiling采集结果文件保存路径。该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。
- 绝对路径配置以“/”开头,例如:/home/HwHiAiUser/output。
- 相对路径配置直接以目录名开始,例如:output。
- 该参数优先级高于ASCEND_WORK_PATH。
- storage_limit:指定落盘目录允许存放的最大文件容量。当Profiling数据文件在磁盘中即将占满本参数设置的最大存储空间(剩余空间<=20MB)或剩余磁盘总空间即将被占满时(总空间剩余<=20MB),则将磁盘内最早的文件进行老化删除处理。
取值范围为[200, 4294967295],单位为MB,例如--storage-limit=200MB,默认未配置本参数。 未配置本参数时,默认取值为Profiling数据文件存放目录所在磁盘可用空间的90%。
- training_trace:采集迭代轨迹数据开关,即训练任务及AI软件栈的软件信息,实现对训练任务的性能分析,重点关注前后向计算和梯度聚合更新等相关数据。当采集正向和反向算子数据时该参数必须配置为on。
- task_trace、task_time:控制采集算子下发耗时和算子执行耗时的开关。涉及在task_time、op_summary、op_statistic等文件中输出相关耗时数据。配置值:
- on:开启,默认值,和配置为l1的效果一样。
- off:关闭。
- l0:采集算子下发耗时、算子执行耗时数据。与l1相比,由于不采集算子基本信息数据,采集时性能开销较小,可更精准统计相关耗时数据。
- l1:采集算子下发耗时、算子执行耗时数据以及算子基本信息数据,提供更全面的性能分析数据。
当训练profiling mode开启即采集训练Profiling数据时,配置task_trace为on的同时training_trace也必须配置为on。
- hccl:控制hccl数据采集开关,可选on或off,默认为off。
- aicpu:采集AICPU算子的详细信息,如:算子执行时间、数据拷贝时间等。取值on/off,默认为off。如果将该参数配置为“on”和“off”之外的任意值,则按配置为“off”处理。
- fp_point:指定训练网络迭代轨迹正向算子的开始位置,用于记录前向计算开始时间戳。配置值为指定的正向第一个算子名字。用户可以在训练脚本中,通过tf.io.write_graph将graph保存成.pbtxt文件,并获取文件中的name名称填入;也可直接配置为空,由系统自动识别正向算子的开始位置,例如"fp_point":""。
- bp_point:指定训练网络迭代轨迹反向算子的结束位置,记录后向计算结束时间戳,BP_POINT和FP_POINT可以计算出正反向时间。配置值为指定的反向最后一个算子名字。用户可以在训练脚本中,通过tf.io.write_graph将graph保存成.pbtxt文件,并获取文件中的name名称填入;也可直接配置为空,由系统自动识别反向算子的结束位置,例如"bp_point":""。
- aic_metrics:AI Core和AI Vector Core的硬件信息,取值如下:
- ArithmeticUtilization:各种计算类指标占比统计。
- PipeUtilization: 计算单元和搬运单元耗时占比,该项为默认值。
- Memory:外部内存读写类指令占比。
- MemoryL0:内部内存读写类指令占比。
- MemoryUB:内部内存读写指令占比。
- ResourceConflictRatio:流水线队列类指令占比。
- L2Cache:读写L2 Cache命中次数和缺失后重新分配次数,仅Atlas A2 训练系列产品支持该采集项。
Atlas 训练系列产品:支持AI Core采集。 Atlas A2 训练系列产品:支持AI Core和AI Vector Core采集。
说明:
支持自定义需要采集的寄存器,例如:"aic_metrics":" Custom:0x49,0x8,0x15,0x1b,0x64,0x10"。
- Custom字段表示自定义类型,配置为具体的寄存器值,取值范围为[0x1, 0x6E]。
- 配置的寄存器数最多不能超过8个,寄存器通过“,”区分开。
- 寄存器的值支持十六进制或十进制。
- l2:控制L2 Cache采样数据的开关,可选on或off,默认为off。
- msproftx:控制msproftx用户和上层框架程序输出性能数据的开关,可选on或off,默认值为off。
Profiling开启msproftx功能之前,需要在程序内调用msproftx相关接口来开启程序的Profiling数据流的输出,详细操作请参见《应用软件开发指南(C&C++)》“扩展更多特性>Profiling性能数据采集”章节。
- runtime_api:控制runtime api性能数据采集开关,可选on或off,默认为off。可采集runtime-api性能数据,包括Host与Device之间、Device间的同步异步内存复制时延等。
- sys_hardware_mem_freq:DDR、HBM带宽采集频率、LLC的读写带宽数据采集频率以及acc_pmu数据和SOC传输带宽信息采集频率,取值范围为[1,100],单位hz。
- Atlas 推理系列产品(Ascend 310P处理器):支持采集DDR、LLC。
- Atlas 训练系列产品:支持采集DDR、HBM、LLC。
- Atlas A2 训练系列产品:支持采集HBM、LLC、acc_pmu数据、SoC传输带宽信息。
- llc_profiling:LLC Profiling采集事件,可以设置为:
- Atlas 推理系列产品(Ascend 310P处理器),可选read(读事件,三级缓存读速率)或write(写事件,三级缓存写速率),默认为read。
- Atlas 训练系列产品,可选read(读事件,三级缓存读速率)或write(写事件,三级缓存写速率),默认为read。
- Atlas A2 训练系列产品,可选read(读事件,三级缓存读速率)或write(写事件,三级缓存写速率),默认为read。
- sys_io_sampling_freq:NIC、ROCE采集频率。取值范围为[1,100],单位hz。
- Atlas 推理系列产品(Ascend 310P处理器):不支持该参数。
- Atlas 训练系列产品:支持采集NIC和和ROCE。
- Atlas A2 训练系列产品:支持采集NIC和ROCE。
- sys_interconnection_freq:集合通信带宽数据(HCCS)、PCIe数据采集频率以及片间传输带宽信息采集频率。取值范围为[1,50],单位hz。
- Atlas 推理系列产品(Ascend 310P处理器):支持采集PCIe数据。
- Atlas 训练系列产品:支持采集HCCS、PCIe数据。
- Atlas A2 训练系列产品:支持采集HCCS、PCIe数据、片间传输带宽信息。
- dvpp_freq:DVPP采集频率。取值范围为[1,100],单位hz。
- instr_profiling_freq:AI Core和AI Vector的带宽和延时采集频率。取值范围[300,30000],单位cycle。仅Atlas A2 训练系列产品支持该参数。
说明:
instr_profiling_freq与training_trace、task_trace、hccl、aicpu、fp_point、bp_point、aic_metrics、l2、task_time、runtime_api互斥,无法同时执行。
- host_sys:Host侧性能数据采集开关。取值包括cpu和mem,可选其中的一项或多项,选多项时用英文逗号隔开,例如"host_sys": "cpu,mem"。
- host_sys_usage:采集Host侧系统及所有进程的CPU和内存数据。取值包括cpu和mem,可选其中的一项或多项,选多项时用英文逗号隔开。
- host_sys_usage_freq:配置Host侧系统和所有进程CPU、内存数据的采集频率。取值范围为[1,50],默认值50,单位hz。
配置示例: 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功能,默认关闭。
- 1:开启dump功能,从dump_path读取dump文件保存路径,dump_path为None时会产生异常。
- 0:关闭dump功能。
|
可选 |
全局/session |
ge.exec.dumpPath |
Dump文件保存路径。开启dump和溢出检测功能时,该参数必须配置。 该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。
- 绝对路径配置以“/”开头,例如:/home/HwHiAiUser/output。
- 相对路径配置直接以目录名开始,例如:output。
|
可选 |
全局/session |
ge.exec.dumpStep |
指定采集哪些迭代的dump数据。默认值:None,表示所有迭代都会产生dump数据。 多个迭代用“|”分割,例如:0|5|10;也可以用"-"指定迭代范围,例如:0|3-5|10。 |
可选 |
全局/session |
ge.exec.dumpMode |
dump模式,用于指定dump算子输入还是输出数据。取值如下:
- input:仅dump算子输入数据
- output:仅dump算子输出数据,默认为output
- all:dump算子输入和输出数据
|
可选 |
全局/session |
ge.exec.dumpData |
指定算子dump内容类型,取值:
- tensor: dump算子数据,默认为tensor。
- stats: dump算子统计数据,保存结果为csv格式。一般情况下dump算子数据量大,用户可以尝试dump算子统计数据。
|
可选 |
全局 |
ge.exec.dumpLayer |
指定需要dump的算子。 取值为算子名,多个算子名之间使用空格分隔,例如:“layer1 layer2 layer3” |
可选 |
全局/session |
ge.exec.enableDumpDebug |
是否开启溢出检测功能,默认关闭。
- 1:开启溢出检测功能,从ge.exec.dumpPath读取Dump文件保存路径,路径配置为None时会产生异常。
- 0:关闭溢出检测功能。
|
可选 |
全局/session |
ge.exec.dumpDebugMode |
溢出检测模式,取值如下:
- aicore_overflow:AI Core算子溢出检测,检测在算子输入数据正常的情况下,输出是否不正常的极大值(如float16下65500,38400,51200这些值)。一旦检测出这类问题,需要根据网络实际需求和算子逻辑来分析溢出原因并修改算子实现。
- atomic_overflow:Atomic Add溢出检测,即除了AICore之外,还有其他涉及浮点计算的模块,比如SDMA,检测这些部分出现的溢出问题。
- all:同时进行AI Core算子溢出检测和Atomic Add溢出检测。
|
可选 |
全局/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相同。
- world rank id,指进程在hccl world group中对应的rank标识序号,范围:0~(rank size-1)。
- local rank id,指group内进程在其所在Server内的rank编号,范围:0~(local rank size-1)。
|
可选 |
all |
ge.opDebugLevel |
算子debug功能开关,取值:
- 0:不开启算子debug功能,在当前执行路径不生成算子编译目录kernel_meta。默认为0。
- 1:开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题。
- 2:开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)、.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce和python-cce映射文件*_loc.json),用于后续分析AICore Error问题,同时设置为2,还会关闭编译优化开关、开启ccec调试功能(ccec编译器选项设置为-O0-g)。
- 3:不开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹中生成.o(算子二进制文件)和.json文件(算子描述文件),分析算子问题时可参考。
- 4:不开启算子debug功能,在当前执行路径生成kernel_meta文件夹,并在该文件夹下生成.o(算子二进制文件)和.json文件(算子描述文件)以及TBE指令映射文件(算子cce文件*.cce)和UB融合计算描述文件({$kernel_name}_compute.json),可在分析算子问题时进行问题复现、精度比对时使用。
|
可选 |
all |
op_debug_config |
Global Memory内存检测功能开关。 取值为.cfg配置文件路径,配置文件内多个选项用英文逗号分隔:
- oom:算子执行过程中,检测Global Memory是否内存越界。
- 配置该选项,算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件)。
- 使用该选项后,在算子编译过程中会加入如下的检测逻辑,用户可以通过再使用dump_cce参数,在生成的.cce文件中查看如下的代码。
inline __aicore__ void CheckInvalidAccessOfDDR(xxx) {
if (access_offset < 0 || access_offset + access_extent > ddr_size) {
if (read_or_write == 1) {
trap(0X5A5A0001);
} else {
trap(0X5A5A0002);
}
}
} 实际执行过程中,如果确实内存越界,会抛出“EZ9999”错误码。
- dump_bin:算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件)。
- dump_cce:算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留算子cce文件*.cce,以及.o(算子二进制文件)和.json文件(算子描述文件)。
- dump_loc:算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留python-cce映射文件*_loc.json。
- ccec_O0:算子编译时,开启ccec编译器选项-O0,配置该选项不会对调试信息执行优化操作,用于后续分析AI Core Error问题。
- ccec_g:算子编译时,开启ccec编译器选项-g,配置该选项会对调试信息执行优化操作,用于后续分析AI Core Error问题。
- check_flag:算子执行时,检测算子内部流水线同步信号是否匹配。
- 配置该选项,算子编译时,在当前执行路径算子编译生成的kernel_meta文件夹中保留.o(算子二进制文件)和.json文件(算子描述文件)。
- 使用该选项后,在算子编译过程中会加入如下的检测逻辑,用户可以通过再使用dump_cce参数,在生成的.cce文件中查看如下的代码。
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID0);
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID1);
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID2);
set_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID3);
....
pipe_barrier(PIPE_MTE3);
pipe_barrier(PIPE_MTE2);
pipe_barrier(PIPE_M);
pipe_barrier(PIPE_V);
pipe_barrier(PIPE_MTE1);
pipe_barrier(PIPE_ALL);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID0);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID1);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID2);
wait_flag(PIPE_MTE3, PIPE_MTE2, EVENT_ID3);
... 实际执行推理过程中,如果确实存在算子内部流水线同步信号不匹配,则最终会在有问题的算子处超时报错,并终止程序,报错信息示例为: Aicore kernel execute failed, ..., fault kernel_name=算子名,...
rtStreamSynchronizeWithTimeout execute failed....
配置示例:/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)
|
可选 |
全局 |
ge.op_compiler_cache_mode |
用于配置算子编译磁盘缓存模式。默认值为enable。
- enable:启用算子编译缓存功能。启用后,算子编译信息缓存至磁盘,相同编译参数的算子无需重复编译,直接使用缓存内容,从而提升编译速度。
- force:启用算子编译缓存功能,区别于enable模式,force模式下会强制刷新缓存,即先删除已有缓存,再重新编译并加入缓存。比如当用户的python或者依赖库等发生变化时,需要指定为force用于清理已有的缓存。
说明:
配置为force模式完成编译后,建议后续编译修改为enable模式,以避免每次编译时都强制刷新缓存。
- disable:禁用算子编译缓存功能。
使用说明:
|
可选 |
all |
ge.op_compiler_cache_dir |
用于配置算子编译磁盘缓存的目录。 参数值格式:路径支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符。 默认值:$HOME/atc_data
- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel_cache。
- 用户请不要在默认缓存目录下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。
- 通过该参数指定的非默认缓存目录无法删除(软件包安装或升级时不会被删除)。
- 算子编译磁盘缓存路径,除ge.op_compiler_cache_dir参数设置的方式外,还可以配置环境变量ASCEND_CACHE_PATH,几种方式优先级为:配置参数“ge.op_compiler_cache_dir”>环境变量ASCEND_CACHE_PATH>默认存储路径。关于环境变量ASCEND_CACHE_PATH的详细说明请参见《环境变量参考》。
|
可选 |
all |
ge.debugDir |
用于配置保存算子编译生成的调试相关的过程文件的路径,包括算子.o/.json/.cce等文件。 使用约束:
- 如果要自行指定算子编译的过程文件存放路径,需ge.debugDir参数与ge.opDebugLevel参数配合使用,且当ge.opDebugLevel取值为0时,不能使用ge.debugDir参数。
- 算子编译生成的调试文件存储路径,除ge.debugDir参参数设置的方式外,还可以配置环境变量ASCEND_WORK_PATH,几种方式优先级为:配置参数“ge.debugDir参”>环境变量ASCEND_WORK_PATH >默认存储路径。关于环境变量ASCEND_WORK_PATH的详细说明请参见《环境变量参考》。
|
可选 |
all |
ge.mdl_bank_path |
加载模型调优后自定义知识库的路径。 该参数需要与BUFFER_OPTIMIZE参数配合使用,仅在数据缓存优化开关打开的情况下生效,通过利用高速缓存暂存数据的方式,达到提升性能的目的。 参数值:模型调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:$HOME/Ascend/latest/data/aoe/custom/graph/<soc_version> 使用约束: 加载子图调优后自定义知识库路径优先级:ge.mdl_bank_path参数加载路径>TUNE_BANK_PATH环境变量设置路径>默认子图调优后自定义知识库路径。
- 如果模型编译前,通过TUNE_BANK_PATH环境变量指定了子图调优自定义知识库路径,模型编译时又通过ge.mdl_bank_path参数加载了自定义知识库路径,该场景下以ge.mdl_bank_path参数加载的路径为准,TUNE_BANK_PATH环境变量设置的路径不生效。
- ge.mdl_bank_path参数和环境变量指定路径都不生效或无可用自定义知识库,则使用默认自定义知识库路径。
- 如果上述路径下都无可用的自定义知识库,则会查找子图调优内置知识库,该路径为:${INSTALL_DIR}/compiler/data/fusion_strategy/built-in
|
可选 |
all |
ge.op_bank_path |
算子调优后自定义知识库路径。 参数值格式:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)。 参数默认值:${HOME}/Ascend/latest/data/aoe/custom/op 使用约束: 加载算子调优后自定义知识库路径优先级:TUNE_BANK_PATH环境变量设置路径>OP_BANK_PATH参数加载路径>默认算子调优后自定义知识库路径。
- 如果模型转换前,通过TUNE_BANK_PATH环境变量指定了算子调优自定义知识库路径,模型编译时又通过OP_BANK_PATH参数加载了自定义知识库路径,该场景下以TUNE_BANK_PATH环境变量设置的路径为准,OP_BANK_PATH参数加载的路径不生效。
- OP_BANK_PATH参数和环境变量指定路径都不生效前提下,使用默认自定义知识库路径。
- 如果上述路径下都无可用的自定义知识库,则会查找算子调优内置知识库。
|
可选 |
all |
ge.exec.dynamicGraphExecuteMode |
该参数已本废弃,请勿使用。 对于动态输入场景,需要通过该参数设置执行模式,取值为:dynamic_execute。 |
可选 |
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]"}};
- 设置格式为:"[n1,c1,h1,w1],[n2,c2,h2,w2]",例如:"[8~20,3,5,-1],[5,3~9,10,-1]"。可以不指定节点名,默认第一个中括号为第一个输入节点,节点中间使用英文逗号分隔。按照index设置INPUT_SHAPE_RANGE时,data节点需要设置属性index,说明是第几个输入,index从0开始。
- 动态维度有shape范围的用波浪号“~”表示,固定维度用固定数字表示,无限定范围的用-1表示。
- 对于标量输入,也需要填入shape范围,表示方法为:[]。
- 对于多输入场景,例如有三个输入时,如果只有第二个第三个输入具有shape范围,第一个输入为固定输入时,仍需要将固定输入shape填入options字段内,例如:
{"ge.exec.dataInputsShapeRange", "[3,3,4,10], [-1,3,2~1000,-1],[-1,-1,-1,-1]"}};
说明:
若没有指定节点名,则节点默认按照index顺序存储,存储示例如下:
xxx_0,xxx_1,xxx_2,……
其中下划线后为节点在网络脚本中的定义顺序索引,节点会按照此索引的字母顺序进行排布,所以当节点的个数大于10时,则排序为“xxx_0 -> xxx_10 -> xxx_2 -> xxx_3”,网络脚本中定义索引为10的节点排在了索引为2的节点前面,导致定义的shape range与实际输入的节点不匹配。
为避免此问题,当节点的输入个数大于10时,建议在网络脚本中指定节点的名称,则节点会以指定的名称进行命名,实现shape range与节点名称的关联。
|
可选 |
graph |
ge.exec.op_precision_mode |
设置指定算子内部处理时的精度模式,支持指定一个算子或多个算子。通过该参数传入自定义的精度模式配置文件op_precision.ini,可以为不同的算子设置不同的精度模式。 ini文件中按照算子类型、节点名称设置精度模式,每一行设置一个算子类型或节点名称的精度模式,按节点名称设置精度模式的优先级高于按算子类型。 配置文件中支持设置如下精度模式:
- high_precision:表示高精度。
- high_performance:表示高性能。
- support_out_of_bound_index:表示对gather、scatter和segment类算子的indices输入进行越界校验, 校验会降低算子的执行性能。
具体某个算子支持配置的精度/性能模式取值,可以通过CANN软件安装后文件存储路径的opp/built-in/op_impl/ai_core/tbe/impl_mode/all_ops_impl_mode.ini文件查看。 样例如下: [ByOpType]
optype1=high_precision
optype2=high_performance
optype3=support_out_of_bound_index
[ByNodeName]
nodename1=high_precision
nodename2=high_performance
nodename3=support_out_of_bound_index |
可选 |
全局 |
ge.opSelectImplmode |
昇腾AI处理器部分内置算子有高精度和高性能实现方式,用户可以通过该参数配置模型编译时选择哪种算子。取值包括:
- high_precision:表示算子选择高精度实现。高精度实现算子是指在fp16输入的情况下,通过泰勒展开/牛顿迭代等手段进一步提升算子的精度。
- high_performance:表示算子选择高性能实现。高性能实现算子是指在fp16输入的情况下,不影响网络精度前提的最优性能实现。默认为high_performance。
|
可选 |
全局 |
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
说明:
- 算子具体支持的计算精度可以从算子信息库中查看,默认存储路径为CANN软件安装后文件存储路径的:opp/op_impl/custom/ai_core/tbe/config/${soc_version}/aic-${soc_version}-ops-info.json。
- 通过该参数指定的优先级高,因此可能会导致精度/性能的下降,如果指定的dtype不支持,会导致编译失败。
产品支持情况: Atlas 200/300/500 推理产品,支持该参数。 Atlas 训练系列产品,支持该参数。 Atlas 推理系列产品(Ascend 310P处理器),支持该参数。 Atlas 200/500 A2推理产品,支持该参数。 Atlas A2训练系列产品,支持该参数。 |
可选 |
session |
ge.exec.atomicCleanPolicy |
是否集中清理网络中所有atomic算子占用的内存,取值包括:
- 0:集中清理,默认为0。
- 1:单独清理,对网络每一个atomic算子进行单独清零。当网络中内存超限时,可尝试此种清理方式,但可能会导致一定的性能损耗。
|
可选 |
session |
ge.jit_compile |
当前版本暂不支持。 |
可选 |
全局/session |
ge.build_inner_model |
当前版本暂不支持。 |
可选 |
NA |
ge.externalWeight |
若网络中的weight占用内存较大,且模型加载环境内存受限时,建议通过此配置项将网络中Const/Constant节点的权重外置,防止由于内存不足导致模型编译加载出错。取值包括:
- 0:权重不外置,直接保存在om模型文件中。默认为0。
- 1:权重外置,将网络中所有Const/Constant节点的权重文件落盘,并将其类型转换为FileConstant,权重文件以算子名称命名。
落盘路径说明:
- 若环境中未配置环境变量ASCEND_WORK_PATH,则权重文件落盘至当前执行目录“tmp_weight_<pid>_<sessionid>”下。
- 若环境中配置环境变量ASCEND_WORK_PATH,则权重文件会落盘至${ASCEND_WORK_PATH}_<pid>_<sessionid>目录下,关于ASCEND_WORK_PATH的详细说明,可参见《环境变量参考》。
说明:当网络中weight占用内存较大且对模型大小有限制时,建议将此配置项设置为“1”。配置示例: {"ge.externalWeight", "1"}; |
可选 |
session |
stream_sync_timeout |
图执行时,stream同步等待超时时间,超过配置时间时报同步失败。单位:ms 默认值-1,表示无等待时间,出现同步失败不报错。 |
可选 |
全局/session |
event_sync_timeout |
图执行时,event同步等待超时时间,超过配置时间时报同步失败。单位:ms 默认值-1,表示无等待时间,出现同步失败不报错。 |
可选 |
全局/session |
ge.exec.staticMemoryPolicy |
网络运行是否使用内存静态分配方式。
- 0:动态分配内存,即按照实际大小动态分配。默认值是0。
- 2:动态扩展内存,训练与在线推理场景下,可以通过此取值实现同一session中多张图之间的内存复用,即以最大图所需内存进行分配。例如,假设当前执行图所需内存超过前一张图的内存时,直接释放前一张图的内存,按照当前图所需内存重新分配。
为兼容历史版本配置,配置为“1”的场景下,系统会按照“2”动态扩展内存的方式进行处理。 配置示例: {"ge.exec.staticMemoryPolicy", "1"}; |
可选 |
全局 |
ge.graph_compiler_cache_dir |
图编译磁盘缓存目录,和ge.graph_key配合使用,ge.graph_compiler_cache_dir和ge.graph_key同时配置非空时图编译磁盘缓存功能生效。 配置的缓存目录必须存在,否则会导致编译失败。 图发生变化后,原来的缓存文件不可用,用户需要手动删除缓存目录中的缓存文件或者修改ge.graph_key,重新编译生成缓存文件。 其他使用约束和具体的使用方法请参见图编译缓存。 |
可选 |
session |
ge.graph_key |
图唯一标识,建议取值只包含大小写字母(A-Z,a-z)、数字(0-9)、下划线(_)、中划线(-)并且长度不超过128。 |
可选 |
graph |
ge.featureBaseRefreshable |
配置feature内存地址是否可刷新。若用户需要自行管理feature内存并需要多次刷新该地址,则可将该参数配置为可刷新。 取值: 0:feature内存地址不可刷新,默认值为0。 1:支持刷新模型的feature内存地址。 |
可选 |
all |
ge.constLifecycle |
用于在线训练场景下配置常量节点的生命周期。 session:按照session级别存储常量节点,该取值为默认值。 graph:按照graph级别存储常量节点,后续用户可调用SetGraphConstMemoryBase接口按图级别对const内存自行管理。 |
可选 |
all |
ge.exec.inputReuseMemIndexes |
用于配置是否开启图的输入节点的内存复用功能,开启后,输入节点的内存可作为模型执行过程中所需要的中间内存再次使用,从而达到降低内存峰值的目的。 参数取值为输入节点的index;如果对多个输入节点都开启内存复用,多个index间使用逗号分隔。输入节点需要设置属性index,说明是第几个输入,index从0开始。 注意:
- 该参数需要与ge.featureBaseRefreshable配合使用。只有在开启模型feature内存地址刷新功能(ge.featureBaseRefreshable配置为1)的情况下,才能开启内存复用功能。
- 若所配置的输入index大于等于“输入个数”的值,属于非法index,该index配置不生效。
- 若开启了输入节点的内存复用功能,输入节点内存中的数据会被改写,图执行后,不可以继续使用输入节点内存中的内容。
配置示例: {"ge.exec.inputReuseMemIndexes", "0,1,2"}; |
可选 |
graph |
ge.exec.outputReuseMemIndexes |
用于配置是否开启整图输出的内存复用功能,开启后,整图输出的内存可作为模型执行过程中所需要的中间内存再次使用,从而达到降低内存峰值的目的。 如果开启,配置为整图输出的index;如果对多个输出都开启内存复用,多个index间使用逗号分隔。 注意:
- 输出的index,按照整图输出的顺序标识,index从0开始。
- 若所配置的输出index大于等于“输出个数”的值,属于非法index,该index配置不生效。
配置示例: {"ge.exec.outputReuseMemIndexes", "0,1,2"}; |
可选 |
graph |
ge.disableOptimizations |
该参数为调试参数,当前不支持应用于商用产品中,后续版本会作为正式特性更新发布。仅适用于Atlas A2训练系列产品。 用于指定关闭的某一个或者多个编译优化pass。 当前仅支持关闭如下pass: "RemoveSameConstPass","ConstantFoldingPass" 注意:
- 多个pass之间使用英文逗号分隔。
- 若用户指定关闭了其他pass,graph编译时不会处理,只会打印warning级别的日志。
- 若指定关闭了ConstantFoldingPass,graph编译或运行时可能会失败。
配置示例:
- 关闭单个pass
std::map <AscendString, AscendString> session_options = {
{"ge.disableOptimizations", "RemoveSameConstPass"}
};
- 关闭多个pass
std::map <AscendString, AscendString> session_options = {
{"ge.disableOptimizations", "RemoveSameConstPass, ConstantFoldingPass"}
};
|
可选 |
全局/session/graph |
ge.enableGraphParallel |
是否对原始大模型进行算法切分,设置为1表示开启算法切分,具体切分策略从参数ge.graphParallelOptionPath所指向的配置文件中读取。 设置成其他值或者空代表不开启算法切分,默认为空。 配置示例: {"ge.enableGraphParallel", "1"}; |
可选 |
graph |
ge.graphParallelOptionPath |
对原始大模型进行切分时,算法切分策略配置文件所在路径,仅在ge.enableGraphParallel=1时配置生效。 配置示例: {"ge.graphParallelOptionPath", "./parallel.json"}; 配置文件必须为json格式,示例如下:
- 半自动切分
{
"graph_parallel_option": {
"auto": false,
"tensor_parallel_option": {
"tensor_parallel_size": 2
}
}
}
- 全自动切分
{
"graph_parallel_option": {
"auto": true
}
}
参数解释如下:
|
可选 |
graph |