环境变量说明

查看源文件

以下是 MindSpore Transformers 支持的环境变量。

调试变量

变量名称

默认值

解释

说明

应用场景

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,在集群内唯一。

MS_ALLOC_CONF

NA

设置内存策略。

配置项,格式为key:value,多个配置项以逗号分隔,例如 export MS_ALLOC_CONF=enable_vmm:true,memory_tracker:true。
enable_vmm: 是否使能虚拟内存,默认值为true。
vmm_align_size: 设置虚拟内存对齐大小,单位为MB,默认值为2。
memory_tracker: 是否开启memory tracker,默认值为false。
memory_tracker_path: 开启memory tracker并保存到指定路径,默认值关闭memory tracker且保存路径为空。
simple_tracker: 是否开启tracker简化模式,不保存tracker_graph.ir,只保留最后一个user task。开启memory_tracker时生效,默认值为false。
acl_allocator: 是否使用ACL内存分配器,默认值为true。
somas_whole_block: 是否使用SOMAS整块内存分配,默认值为false。

MS_INTERNAL_DISABLE_CUSTOM_KERNEL_LIST

PagedAttention

使能自定义算子的列表。实验性配置项,一般无需设置。将会在未来删除。

配置为字符串,算子名之间用英文逗号隔开。

TRANSFORMERS_OFFLINE

0

设置Auto接口强制只读取离线的本地文件。

1ONTRUEYES:强制只读取离线的本地文件;
其余取值:允许从网络下载文件。

MDS_ENDPOINT

https://modelers.cn

设置openMind Hub的endpoint。

配置为字符串格式的URL地址。

OM_MODULES_CACHE

~/.cache/openmind/modules

openMind modules的缓存路径。

配置为字符串格式的目录路径。

OPENMIND_CACHE

~/.cache/openmind/hub

openMind Hub的缓存路径。

配置为字符串格式的目录路径。

openmind_IS_CI

设置openMind是否在CI门禁环境中。

1ONTRUEYES:在CI环境中;
其余取值:不在CI环境。

其他变量

变量名称

默认值

解释

说明

应用场景

RUN_MODE

predict

设置运行模式。

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

USE_ROPE_SELF_DEFINE

true

是否使用 ROPE 融合算子。

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

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

MS_ENABLE_INTERNAL_BOOST

on

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

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

为了实现高性能推理,该配置默认开启。在进行调试或对比不同加速策略的情况下,需要关闭此参数以观察对性能的影响。

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 优化的模型提供回退机制。

EXPERIMENTAL_KERNEL_LAUNCH_GROUP

NA

控制是否支持算子批量并行下发,支持开启并行下发,并配置并行数。

thread_num: 并发线程数,一般不建议增加,默认值为2
kernel_group_num: 算子分组总数量,每线程kernel_group_num/thread_num个组,默认值为8

该特性后续还会继续演进,后续行为可能会有变更,当前仅支持deepseek推理场景,有一定的性能优化,但是其他模型使用该特性可能会有劣化,用户需要谨慎使用,使用方法如下:export EXPERIMENTAL_KERNEL_LAUNCH_GROUP="thread_num:2,kernel_group_num:8"

ENFORCE_EAGER

False

控制是否不开启jit模式。

False: 开启jit模式;
True: 不开启jit模式。

Jit将函数编译成一张可调用的MindSpore图,设置ENFORCE_EAGER为False开启jit模式,可以获取性能收益,当前仅支持推理模式。

MS_ENABLE_TFT

NA

使能训练故障容错(Training Fault Tolerance)功能,大多数功能依赖 MindIO TFT

取值为"{TTP:1,UCE:1,HCCE:1,ARF:1,TRE:1,TSP:1,RSC:1}",使用某一功能时,可将对应字段配置为"1"。

使用方式可以参考高可用特性

MS_WORKER_NUM

NA

指定角色为MS_WORKER的进程数量。

大于0的整数。

分布式场景。

RANK_ID

NA

指定调用NPU的逻辑ID。

0~7,多机并行时不同server中DEVICE_ID会有重复,使用RANK_ID可以避免这个问题(多机并行时 RANK_ID = SERVER_ID * DEVICE_NUM + DEVICE_ID,DEVICE_ID指当前机器的第几个Ascend AI处理器。)

RANK_SIZE

NA

指定调用NPU的数量。

大于1的整数。

LD_PRELOAD

NA

指定预加载的共享库。

指定共享库的路径。

DEVICE_ID

0

指定调用NPU的设备ID。

0~服务器的NPU数量。

MS_SCHED_PORT

NA

指定Scheduler绑定端口号。

1024~65535范围内的端口号。

NPU_ASD_ENABLE

0

是否开启特征值检测功能。

0:关闭特征值检测功能
1:检测到异常,只打印日志,但检测算子不抛异常
2:检测到异常,打印日志,检测算子抛出异常
3:特征值正常和异常场景下都会打印(备注:正常场景下只有CANN开启了INFO及DEBUG级别才会打印),检测到异常时检测算子抛出异常。

MS_SDC_DETECT_ENABLE

0

是否使能CheckSum检测静默故障。

0:关闭CheckSum检测静默故障。
1:使能CheckSum检测静默故障。

ASCEND_HOME_PATH

NA

Ascend软件包的安装路径。

设置为指定的路径。

ENABLE_LAZY_INLINE

1

是否使能Lazy Inline模式。此环境变量即将废弃,将在下版本删除。

0:不使能Lazy Inline。
1:使能Lazy Inline。

LOCAL_DEFAULT_PATH

./output

设置日志的默认路径。

设置为指定的路径。

STDOUT_DEVICES

NA

设置标准输出的设备ID列表。

设置为数字列表,多个ID之间用英文逗号隔开。

REGISTER_PATH

需要注册的外挂代码所在的目录路径。

设置为指定的路径。

LOG_MF_PATH

./output/log

MindSpore Transformers的日志路径。

设置为指定的路径。

DEVICE_NUM_PER_NODE

8

服务器上的NPU数量。

大于0的整数。

SHARED_PATHS

共享存储的路径。

设置为指定的路径。

ASCEND_PROCESS_LOG_PATH

NA

Ascend进程的日志路径。

设置为指定的路径。

ENABLE_LAZY_INLINE_NO_PIPELINE

0

是否在非流水线并行时使能Lazy Inline模式。此环境变量即将废弃,将在下版本删除。

0:不使能Lazy Inline。
1:使能Lazy Inline。

REMOTE_SAVE_URL

None

在ModelArts上保存训练结果时使用的URL。当前已废弃,将在未来删除。

填写保存结果的URL。