# 环境变量说明 [](https://gitee.com/mindspore/docs/blob/master/docs/mindformers/docs/source_zh_cn/appendix/env_variables.md) 以下是 MindSpore Transformers 支持的环境变量。 ## 调试变量 | 变量名称 | 默认值 | 解释 | 说明 | 应用场景 | | ------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **HCCL_DETERMINISTIC** | false | 开启或关闭归约类通信算子的确定性计算,其中归约类通信算子包括 AllReduce、ReduceScatter、Reduce。 | `true`:打开 HCCL 确定性开关;<br>`false`:关闭 HCCL 确定性开关。<br> | 开启确定性计算可消除多卡计算顺序不一致引入的随机性,但也会导致性能相较关闭时下降。推荐在需要保持一致性场景时开启。 | | **LCCL_DETERMINISTIC** | 0 | 设置 LCCL 确定性算子 AllReduce(保序加)是否开启。 | `1`:打开 LCCL 确定性开关;<br>`0`:关闭 LCCL 确定性开关。 | 开启确定性计算可消除多卡计算顺序不一致引入的随机性,但也会导致性能相较关闭时下降。推荐在需要保持一致性场景时开启。<br>在 rankSize<=8 时生效。 | | **CUSTOM_MATMUL_SHUFFLE** | on | 开启或者关闭自定义矩阵乘法的洗牌操作。 | `on`:开启矩阵洗牌;<br>`off`:关闭矩阵洗牌。 | 洗牌操作对于特定的矩阵尺寸和内存访问模式有优化效果,如果矩阵的大小与洗牌优化的尺寸不匹配,关闭洗牌可能会获得更好的性能。请根据实际使用进行设置。 | | **ASCEND_LAUNCH_BLOCKING** | 0 | 训练或在线推理场景,可通过此环境变量控制算子执行时是否启动同步模式。 | `1`:强制算子采用同步模式运行;<br>`0`:不强制算子采用同步模式运行。 | 由于 NPU 模型训练时默认算子异步执行,导致算子执行过程中出现报错时,打印的报错堆栈信息并不是实际的调用栈信息。当设置为`1`时,强制算子采用同步模式运行,这样能够打印正确的调用栈信息,从而更容易地调试和定位代码中的问题。设置为`1`时有更高的运算效率。 | | **TE_PARALLEL_COMPILER** | 8 | 算子最大并行编译进程数,当大于 1 时开启并行编译。 | 取值为正整数;最大不超过 cpu 核数\*80%/昇腾 AI 处理器个数,取值范围 1~32,默认值是 8。 | 网络模型较大时,可通过配置此环境变量开启算子的并行编译功能;<br>设置为`1`时为单线程编译,在调试时,可以简化难度。 | | **CPU_AFFINITY** | 0 | 启动 CPU 亲和性开关,启动该选项可以确保每个进程或线程绑定到一个 CPU 核心上,以提高性能。 | `1`:开启 CPU 亲和性开关;<br>`0`:关闭 CPU 亲和性开关。 | 出于**优化资源利用** 以及**节能** 的考虑,CPU 亲和性默认关闭。 | | **MS_MEMORY_STATISTIC** | 0 | 内存统计。 | `1`:开启内存统计功能;<br>`0`:关闭内存统计功能。 | 在内存分析时,可以统计内存的基本使用情况。具体可以参考[调优指南](https://www.mindspore.cn/mindformers/docs/zh-CN/dev/perf_optimize/perf_optimize.html)。 | | **MINDSPORE_DUMP_CONFIG** | | 指定 [云侧 Dump 功能](https://www.mindspore.cn/tutorials/zh-CN/master/debug/dump.html) 或 [端侧 Dump 功能](https://www.mindspore.cn/lite/docs/zh-CN/master/tools/benchmark_tool.html#dump功能) 所依赖的配置文件的路径 | 文件路径,支持相对路径与绝对路径。 | | | **GLOG_v** | 3 | 控制 MindSpore 日志的级别。 | `0`:DEBUG;<br>`1`:INFO;<br>`2`:WARNING;<br>`3`:ERROR:表示程序执行出现报错,输出错误日志,程序可能不会终止;<br>`4`:CRITICAL,表示程序执行出现异常,将会终止执行程序。 | | | **ASCEND_GLOBAL_LOG_LEVEL** | 3 | 控制 CANN 的日志级别。 | `0`:DEBUG;<br>`1`:INFO;<br>`2`:WARNING;<br>`3`:ERROR;<br>`4`:NULL,不输出日志。 | | | **ASCEND_SLOG_PRINT_TO_STDOUT** | 0 | 是否开启日志打屏。开启后,日志将不会保存在 log 文件中,而是将产生的日志直接打屏显示。 | `1`:开启日志打屏;<br>`0`:关闭日志打屏。 | | | **ASCEND_GLOBAL_EVENT_ENABLE** | 0 | 设置应用类日志是否开启 Event 日志。 | `1`:开启 Event 日志;<br>`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`:推理; <br>`finetune`:微调; <br>`train`:训练; <br>`eval`:评测。 | | | **USE_ROPE_SELF_DEFINE** | true | 是否使用 ROPE 融合算子。 | `true`:使用 ROPE 融合算子;<br>`false`:不使用 ROPE 融合算子。 | 默认开启 ROPE 融合算子可以提升计算效率。除调试场景,根据需要进行关闭,一般不作特别设置。 | | **MS_ENABLE_INTERNAL_BOOST** | on | 是否打开 MindSpore 框架的内部加速功能。 | `on`:开启 MindSpore 内部加速;<br>`off`:关闭 MindSpore 内部加速。 | 为了实现高性能推理,该配置默认开启。在进行调试或对比不同加速策略的情况下,需要关闭此参数以观察对性能的影响。 | | **MS_GE_ATOMIC_CLEAN_POLICY** | 1 | 是否集中清理网络中 atomic 算子占用的内存。 | `0`:集中清理网络中所有 atomic 算子占用的内存;<br>`1`:不集中清理内存,对网络中每一个 atomic 算子进行单独清零。 | 开关默认设置为`1`,方便用户对每个算子进行单独处理,可以进行算子内存复用等操作。设置为`0`后,集中清理算子所占内存。 | | **ENABLE_LAZY_INLINE** | 1 | 是否开启 lazy inline。 | `0`:关闭 lazy inline;<br>`1`:开启 lazy inline。 | 此特性在 mindspore≥2.2.0 下适用。通常在 pipeline 并行时使用以提高编译性能。默认开启,可配置关闭。 | | **ENABLE_LAZY_INLINE_NO_PIPELINE** | 0 | 是否开启在非 pipeline 并行下的 lazy inline。 | `0`:关闭 lazy inline;<br>`1`:开启 lazy inline。 | lazy inline 特性默认仅在 pipeline 并行模式下开启。如需在其他并行模式下使能 lazy inline,可将该环境变量设置为 1。 | | **MS_ASCEND_CHECK_OVERFLOW_MODE** | INFNAN_MODE | 设置浮点计算结果输出模式。 | `SATURATION_MODE`:饱和模式,计算出现溢出时,饱和为浮点数极值(+-MAX);<br>`INFNAN_MODE`:INF/NAN 模式,遵循 IEEE 754 标准,根据定义输出 INF/NAN 的计算结果。 | 在大模型调优中,溢出状态对齐 PyTorch 方式,建议使用 INFNAN_MODE,即 export MS_ASCEND_CHECK_OVERFLOW_MODE=INFNAN_MODE。<br>遇到持续溢出问题时可尝试设置此变量为 INFNAN_MODE。 | | **MF_LOG_SUFFIX** | NA | 设置所有 log 日志文件夹的自定义后缀。 | log 文件夹的后缀。默认值:无后缀 | 添加一致的后缀,可以隔离各个任务的日志,不会被覆写。 | | **PLOG_REDIRECT_TO_OUTPUT** | False | 控制 plog 日志是否改变存储路径。 | `True`:存储到./output 目录下; <br>`False`: 存储到默认存储位置。 | 设置之后方便用户查询 plog 日志。 | | **MS_ENABLE_FA_FLATTEN** | on | 控制 是否支持 FlashAttention flatten 优化。 | `on`:启用 FlashAttention flatten 优化; <br>`off`: 禁用 FlashAttention flatten 优化。 | 对于还未适配FlashAttention flatten 优化的模型提供回退机制。 | | **EXPERIMENTAL_KERNEL_LAUNCH_GROUP** | NA | 控制是否支持算子批量并行下发,支持开启并行下发,并配置并行数 | `thread_num`: 并发线程数,一般不建议增加,默认值为`2`; <br> `kernel_group_num`: 算子分组总数量,每线程`kernel_group_num/thread_num`个组,默认值为`8`。 | 该特性后续还会继续演进,后续行为可能会有变更,当前仅支持`deepseek`推理场景,有一定的性能优化,但是其他模型使用该特性可能会有劣化,用户需要谨慎使用,使用方法如下:`export EXPERIMENTAL_KERNEL_LAUNCH_GROUP="thread_num:2,kernel_group_num:8"`。 | | **FORCE_EAGER** | False | 控制是否**不开启**jit模式。 | `False`: 开启jit模式; <br>`True`: 不开启jit模式。 | Jit将函数编译成一张可调用的MindSpore图,设置FORCE_EAGER为False开启jit模式,可以获取性能收益,当前仅支持推理模式。 | | **MS_ENABLE_TFT** | NA | 使能 [MindIO TFT](https://www.hiascend.com/document/detail/zh/mindx-dl/600/clusterscheduling/ref/mindiottp/mindiotft001.html) 特性,表示启用 TTP、UCE 或 ARF 功能。 | 取值为"{TTP:1,UCE:1,ARF:1}",使用某一功能时,可将对应字段配置为"1"。 | 使用方式可以参考[高可用特性](https://www.mindspore.cn/mindformers/docs/zh-CN/dev/function/high_availability.html)。 |