环境变量说明

查看源文件

以下是 MindFormers 支持的环境变量。

调试变量

变量名称

默认值

解释

说明

应用场景

HCCL_DETERMINISTIC

false

开启或关闭归约类通信算子的确定性计算,其中归约类通信算子包括 AllReduce、ReduceScatter、Reduce。

true:打开 HCCL 确定性开关;
false:关闭 HCCL 确定性开关。

开启确定性计算可消除多卡计算顺序不一致引入的随机性,但也会导致性能相较关闭时下降。推荐在需要保持一致性场景时开启。

LCCL_DETERMINISTIC

0

设置 LCCL 确定性算子 AllReduce(保序加)是否开启。

1:打开 LCCL 确定性开关;
0:关闭 LCCL 确定性开关。

开启确定性计算可消除多卡计算顺序不一致引入的随机性,但也会导致性能相较关闭时下降。推荐在需要保持一致性场景时开启。
在 rankSize<=8 时生效。

CUSTOM_MATMUL_SHUFFLE

on

开启或者关闭自定义矩阵乘法的洗牌操作。

on:开启矩阵洗牌;
off:关闭矩阵洗牌。

洗牌操作对于特定的矩阵尺寸和内存访问模式有优化效果,如果矩阵的大小与洗牌优化的尺寸不匹配,关闭洗牌可能会获得更好的性能。请根据实际使用进行设置。

ASCEND_LAUNCH_BLOCKING

0

训练或在线推理场景,可通过此环境变量控制算子执行时是否启动同步模式。

1:强制算子采用同步模式运行;
0:不强制算子采用同步模式运行。

由于 NPU 模型训练时默认算子异步执行,导致算子执行过程中出现报错时,打印的报错堆栈信息并不是实际的调用栈信息。当设置为1时,强制算子采用同步模式运行,这样能够打印正确的调用栈信息,从而更容易地调试和定位代码中的问题。设置为1时有更高的运算效率。

TE_PARALLEL_COMPILER

8

算子最大并行编译进程数,当大于 1 时开启并行编译。

取值为正整数;最大不超过 cpu 核数*80%/昇腾 AI 处理器个数,取值范围 1~32,默认值是 8。

网络模型较大时,可通过配置此环境变量开启算子的并行编译功能;
设置为1时为单线程编译,在调试时,可以简化难度。

CPU_AFFINITY

0

启动 CPU 亲和性开关,启动该选项可以确保每个进程或线程绑定到一个 CPU 核心上,以提高性能。

1:开启 CPU 亲和性开关;
0:关闭 CPU 亲和性开关。

出于优化资源利用 以及节能 的考虑,CPU 亲和性默认关闭。

MS_MEMORY_STATISTIC

0

内存统计。

1:开启内存统计功能;
0:关闭内存统计功能。

在内存分析时,可以统计内存的基本使用情况。具体可以参考调优指南

MINDSPORE_DUMP_CONFIG

指定 云侧 Dump 功能端侧 Dump 功能 所依赖的配置文件的路径

文件路径,支持相对路径与绝对路径。

GLOG_v

3

控制 MindSpore 日志的级别。

0:DEBUG;
1:INFO;
2:WARNING;
3:ERROR:表示程序执行出现报错,输出错误日志,程序可能不会终止;
4:CRITICAL,表示程序执行出现异常,将会终止执行程序。

ASCEND_GLOBAL_LOG_LEVEL

3

控制 CANN 的日志级别。

0:DEBUG;
1:INFO;
2:WARNING;
3:ERROR;
4:NULL,不输出日志。

ASCEND_SLOG_PRINT_TO_STDOUT

0

是否开启日志打屏。开启后,日志将不会保存在 log 文件中,而是将产生的日志直接打屏显示。

1:开启日志打屏;
0:关闭日志打屏。

ASCEND_GLOBAL_EVENT_ENABLE

0

设置应用类日志是否开启 Event 日志。

1:开启 Event 日志;
0:关闭 Event 日志。

HCCL_EXEC_TIMEOUT

1836

通过该环境变量可控制设备间执行时同步等待的时间,在该配置时间内各设备进程等待其他设备执行通信同步。

取值范围为:(0, 17340],默认值为 1836,单位为 s。

HCCL_CONNECT_TIMEOUT

120

分布式训练或推理场景下,用于限制不同设备之间 socket 建链过程的超时等待时间。

该环境变量需要配置为整数,取值范围[120,7200],默认值 120s。

MS_NODE_ID

NA

动态组网启动场景下,指定本进程的rank_id。

本进程的rank_id,在集群内唯一。

其他变量

变量名称

默认值

解释

说明

应用场景

RUN_MODE

predict

设置运行模式。

predict:推理;
finetune:微调;
train:训练;
eval:评测。

USE_ROPE_SELF_DEFINE

true

是否使用 ROPE 融合算子。

true:使用 ROPE 融合算子;
false:不使用 ROPE 融合算子。

默认开启 ROPE 融合算子可以提升计算效率。除调试场景,根据需要进行关闭,一般不作特别设置。

MS_ENABLE_INTERNAL_BOOST

off

是否打开 MindSpore 框架的内部加速功能。

on:开启 MindSpore 内部加速;
off:关闭 MindSpore 内部加速。

在进行调试或对比不同加速策略的情况下,需要关闭此参数以观察对性能的影响。在需要高效推理的场景,可以开启以进行加速。

MS_GE_ATOMIC_CLEAN_POLICY

1

是否集中清理网络中 atomic 算子占用的内存。

0:集中清理网络中所有 atomic 算子占用的内存;
1:不集中清理内存,对网络中每一个 atomic 算子进行单独清零。

开关默认设置为1,方便用户对每个算子进行单独处理,可以进行算子内存复用等操作。设置为0后,集中清理算子所占内存。

ENABLE_LAZY_INLINE

1

是否开启 lazy inline。

0:关闭 lazy inline;
1:开启 lazy inline。

此特性在 mindspore≥2.2.0 下适用。通常在 pipeline 并行时使用以提高编译性能。默认开启,可配置关闭。

ENABLE_LAZY_INLINE_NO_PIPELINE

0

是否开启在非 pipeline 并行下的 lazy inline。

0:关闭 lazy inline;
1:开启 lazy inline。

lazy inline 特性默认仅在 pipeline 并行模式下开启。如需在其他并行模式下使能 lazy inline,可将该环境变量设置为 1。

MS_ASCEND_CHECK_OVERFLOW_MODE

INFNAN_MODE

设置浮点计算结果输出模式。

SATURATION_MODE:饱和模式,计算出现溢出时,饱和为浮点数极值(+-MAX);
INFNAN_MODE:INF/NAN 模式,遵循 IEEE 754 标准,根据定义输出 INF/NAN 的计算结果。

在大模型调优中,溢出状态对齐 PyTorch 方式,建议使用 INFNAN_MODE,即 export MS_ASCEND_CHECK_OVERFLOW_MODE=INFNAN_MODE。
遇到持续溢出问题时可尝试设置此变量为 INFNAN_MODE。

MF_LOG_SUFFIX

NA

设置所有 log 日志文件夹的自定义后缀。

log 文件夹的后缀。默认值:无后缀

添加一致的后缀,可以隔离各个任务的日志,不会被覆写。

PLOG_REDIRECT_TO_OUTPUT

False

控制 plog 日志是否改变存储路径。

True:存储到./output 目录下;
False: 存储到默认存储位置。

设置之后方便用户查询 plog 日志。

MS_ENABLE_FA_FLATTEN

on

控制 是否支持 FlashAttention flatten 优化。

on:启用 FlashAttention flatten 优化;
off: 禁用 FlashAttention flatten 优化。

对于还未适配FlashAttention flatten 优化的模型提供回退机制。