环境变量说明
MindCluster组件使用的环境变量
MindCluster组件通过环境变量说明如表1所示。
环境变量名称 |
来源 |
是否必选 |
取值 |
作用 |
---|---|---|---|---|
POD_IP |
部署组件的yaml中写入 |
是 |
当前容器所在Pod的Pod IP |
ClusterD用于启动grpc服务 |
ASCEND_DOCKER_RUNTIME |
容器创建时Ascend-Docker-Runtime写入 |
否 |
"true" |
Ascend Device Plugin用于判断当前节点容器默认运行时是否是Ascend-Docker-Runtime。 |
HOSTNAME |
K8s创建容器时写入 |
是 |
当前容器所在Pod的Pod名称 |
Ascend Device Plugin用于获取当前pod名称 |
NODE_NAME |
部署组件的yaml中写入 |
是 |
当前容器所在节点的节点名称 |
Ascend Device Plugin、NodeD、ClusterD用于获取当前节点名称。 |
LD_LIBRARY_PATH |
Dockerfile中写入 |
是 |
文件路径 |
Ascend Device Plugin和NPU Exporter用于初始化DCMI |
BATCH_BIND_NUM |
- |
否 |
数字字符串 |
指定Volcano设置批量绑定Pod的数量 |
MULTI_SCHEDULER_ENABLE |
- |
否 |
"true"或者"false" |
指定Volcano是否是多调度器场景 |
SCHEDULER_POD_NAME |
- |
否 |
字符串 |
指定Volcano调度器Pod名称 |
SCHEDULER_NUM |
- |
否 |
数字字符串 |
指定Volcano调度器数量 |
PANIC_ON_ERROR |
- |
否 |
"true"或者"false" |
指定Volcano调度器发生错误时是否需要panic |
KUBECONFIG |
- |
否 |
文件路径 |
指定Volcano连接K8s api-server的kubeconfig路径 |
HOME |
K8s创建容器时写入 |
是 |
文件夹路径 |
指定Volcano获取当前用户home路径 |
DEBUG_SOCKET_DIR |
- |
否 |
socket文件路径 |
指定Volcano侦听的socket路径 |
Ascend Operator环境变量说明
Ascend Operator为不同AI框架的分布式训练任务提供相应的环境变量,该环境变量的相关说明如下表所示。
框架名称 |
环境变量名称 |
功能 |
取值 |
说明 |
---|---|---|---|---|
PyTorch |
MASTER_ADDR |
与Master节点通信的IP地址 |
合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式 |
|
MASTER_PORT |
与Master节点通信的端口 |
支持配置为字符串、数字,取值范围为0~65520 |
Master Pod对应svc中名称为ascendjob-port的值,默认为2222。 |
|
WORLD_SIZE |
任务使用的总NPU数 |
大于0的整数 |
任务使用的总卡数,例如64个NPU任务,则取值为64。 |
|
RANK |
本节点Pod的Node Rank |
大于或等于0的整数 |
Master为0,Worker从1开始逐一增加。 |
|
LOCAL_WORLD_SIZE |
每个节点Pod使用的NPU数 |
大于或等于0的整数 |
例如Pod使用4个NPU,则配置为4。 |
|
LOCAL_RANK |
每个节点Pod使用的NPU的逻辑ID列表 |
字符串 |
根据Pod使用NPU数量进行配置,从0开始。例如,Pod使用4个NPU,则配置为{0,1,2,3}。 |
|
PyTorch、MindSpore、TensorFlow |
HostNetwork |
表示当前任务yaml的hostNetwork字段的值。 |
|
当集群规模较大(节点数量>1000时),推荐使用HostIP创建pod。 |
MINDX_SERVER_IP |
表示任务与ClusterD通信的IP地址,同时也是clusterd-grpc-svc的svc ip。 |
合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式。 |
- |
|
HCCL_LOGIC_SUPERPOD_ID |
相同ID的芯片间使用总线网络通信,不同ID的芯片间使用RoCE网络通信。 |
大于或等于0的整数 |
HCCL使用此环境变量用于动态组网,限制芯片间网络通信方式。 说明:
当前环境变量仅支持在以下条件下使用:
|
|
MINDX_TASK_ID |
MindIO向ClusterD注册gRPC服务需要提供MINDX_TASK_ID信息。 MindIE推理任务场景下,取值为acjob任务中label字段下jobID字段的值。 |
字符串 |
任务的UID。 |
|
APP_TYPE |
取值为acjob任务中label字段下app字段的值。 |
字符串 |
- |
|
MindSpore |
NPU_POD |
标记当前Pod是否挂载了芯片。 |
|
- |
MS_SERVER_NUM |
指定角色为MS_PSERVER的进程数量 |
0 |
暂不支持PS模式,设置固定值0。 |
|
MS_WORKER_NUM |
任务使用的总NPU数 |
大于0的整数 |
任务使用的总NPU数,例如64个NPU任务,则取值为64。 |
|
MS_LOCAL_WORKER |
每个节点Pod使用的NPU数 |
大于0的整数 |
例如Pod使用4个NPU,则配置为4。 |
|
MS_SCHED_HOST |
指定Scheduler的IP地址 |
合法的IP地址 |
|
|
MS_SCHED_PORT |
与Scheduler通信的端口 |
1024~65535范围内的端口号。 |
Scheduler Pod对应svc中名称为ascendjob-port的值,默认取值为2222。 |
|
MS_ROLE |
指定本进程角色 |
|
Worker进程会向Scheduler进程注册从而完成组网。 |
|
MS_NODE_RANK |
本节点Pod的Node Rank |
大于或等于0的整数 |
Scheduler Pod设置为0。
|
|
TensorFlow |
CM_CHIEF_IP |
与CHIEF通信的IP |
合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式 |
|
CM_CHIEF_PORT |
与CHIEF通信的端口 |
支持配置为字符串、数字,取值范围0~65520 |
Scheduler Pod对应svc中名称为ascendjob-port的值,默认取值为2222。 |
|
CM_CHIEF_DEVICE |
用于指定CHIEF节点中统计Server端集群信息的Device逻辑ID |
0 |
取值固定取值为0。 |
|
CM_WORKER_SIZE |
任务使用的总NPU数 |
取值范围为0~32768 |
任务使用的总卡数,例如64个NPU任务,则取值为64。 |
|
CM_LOCAL_WORKER |
每个Pod使用的NPU数 |
大于0的整数 |
例如Pod使用4个NPU,则配置为4。 |
|
CM_WORKER_IP |
Pod的podIP |
合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式 |
当前Pod的podIP。 |
|
CM_RANK |
本节点Pod的Node Rank |
大于或等于0的整数 |
|
Ascend Docker Runtime环境变量说明
Ascend Docker Runtime为容器注入相应的环境变量。
环境变量名称 |
功能 |
取值 |
说明 |
---|---|---|---|
ASCEND_DOCKER_RUNTIME |
标识当前环境是否安装了Ascend Docker Runtime插件。 |
True |
当未安装Ascend Docker Runtime时不存在该环境变量。 |
Ascend Device Plugin环境变量说明
Ascend Device Plugin为容器注入相应的环境变量,该环境变量的相关说明请参见下表。
环境变量名称 |
功能 |
取值 |
说明 |
---|---|---|---|
ASCEND_VISIBLE_DEVICES |
|
|
- |
ASCEND_ALLOW_LINK |
是否允许挂载的文件或目录中存在软链接,在Atlas 500 A2 智能小站、Atlas 200I A2 加速模块和Atlas 200I DK A2 开发者套件场景下必须指定该参数。 |
|
- |
ASCEND_RUNTIME_OPTIONS |
对参数ASCEND_VISIBLE_DEVICES中指定的芯片ID作出限制:
|
|
- |
WORLD_SIZE |
任务使用的总NPU数 |
大于或等于0的整数 |
仅在动态vNPU调度场景下写入 |
LOCAL_WORLD_SIZE |
每个节点Pod使用的NPU数 |
大于或等于0的整数 |
仅在动态vNPU调度场景下写入 |
LOCAL_RANK |
每个节点Pod使用的NPU的逻辑ID列表 |
字符串 |
仅在动态vNPU调度场景下写入 。从0开始。例如,Pod使用4个NPU,则配置为{0,1,2,3}。 |
CM_WORKER_SIZE |
任务使用的总NPU数 |
大于或等于0的整数 |
仅在动态vNPU调度场景下写入 |
CM_LOCAL_WORKER |
每个节点Pod使用的NPU数 |
大于或等于0的整数 |
仅在动态vNPU调度场景下写入 |
MS_WORKER_NUM |
任务使用的总NPU数 |
大于或等于0的整数 |
仅在动态vNPU调度场景下写入 |
MS_LOCAL_WORKER |
每个节点Pod使用的NPU数 |
大于或等于0的整数 |
仅在动态vNPU调度场景下写入 |
PERF_DUMP_PATH |
迭代时延和分组信息保存路径 |
字符串 |
仅在慢节点检测场景下写入 |
PERF_DUMP_CONFIG |
迭代时延和分组信息启停开关 |
字符串 |
仅在慢节点检测场景下写入 |
KUBELET_PORT |
指定当前节点kubelet默认端口号(若用户未自定义kubelet端口,则无需配置)。 |
0~65535的整数 |
若用户修改kubelet默认端口,需要指设置该环境变量的值为自定义端口号。 若用户未修改kubelet默认端口,则忽略该环境变量。 |
HOST_IP |
指定当前节点的物理IP。 |
合法的IP地址,格式为字符串,要求为常规IPv4格式 |
固定配置项,初始yaml文件已提供。 |
Elastic Agent环境变量说明
使用Elastic Agent组件时可以配置的环境变量。
环境变量名称 |
功能 |
取值 |
说明 |
---|---|---|---|
ELASTIC_LOG_PATH |
Elastic Agent组件运行日志的落盘路径。 |
字符串 |
配置时需区分该日志的节点名称。参考示例: ELASTIC_LOG_PATH=/job/code/alllogs/$MINDX_TASK_ID/elasticlogs/elastic-log$XDL_IP-$RANK #请将$XDL_IP替换成实际使用的节点IP。 #请将$RANK替换成实际使用的节点RANK。 |
ELASTIC_PROCESS_RECOVER_ENABLE |
Elastic Agent侧进程级别重调度、进程级在线恢复、临终CheckPoint恢复功能开关。 |
字符串 |
TaskD环境变量说明
环境变量名称 |
功能 |
取值 |
说明 |
---|---|---|---|
TASKD_LOG_PATH |
指定TaskD组件运行日志的落盘路径。 |
字符串 |
如未指定使用默认的./taskd_log/taskd.log-worker-{RANK},即当前执行路径下的taskd_log目录。 {RANK}为当前训练进程的全局rank号。 |
TASKD_FILE_LOG_LEVEL |
指定需要记录到日志文件的日志等级。 |
字符串 |
- |
TASKD_STD_LOG_LEVEL |
指定需要打屏的日志等级。 |
字符串 |
- |
TASKD_LOG_STDOUT |
指定日志是否需要打屏。 取值True或False。 |
bool |
- |