昇腾社区首页
中文
注册

环境变量说明

MindCluster组件使用的环境变量

MindCluster组件通过环境变量说明如表1所示。

表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 PluginNodeDClusterD用于获取当前节点名称。

LD_LIBRARY_PATH

Dockerfile中写入

文件路径

Ascend Device PluginNPU 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框架的分布式训练任务提供相应的环境变量,该环境变量的相关说明如下表所示。

表2 Ascend Operator注入的训练环境变量

框架名称

环境变量名称

功能

取值

说明

PyTorch

MASTER_ADDR

与Master节点通信的IP地址

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式

  • Master Pod中设置为podIP。
  • Worker Pod中设置为Master Pod对应svc的clusterIP。

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字段的值。

  • true:使用HostIP创建pod。
  • false:不适用HostIP创建pod。

当集群规模较大(节点数量>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使用此环境变量用于动态组网,限制芯片间网络通信方式。

说明:

当前环境变量仅支持在以下条件下使用:

  • 硬件:Atlas 900 A3 SuperPoD 超节点
  • 软件:MindCluster 7.0.RC1及以上版本、CANN 8.0.0及以上版本。

MINDX_TASK_ID

MindIOClusterD注册gRPC服务需要提供MINDX_TASK_ID信息。

MindIE推理任务场景下,取值为acjob任务中label字段下jobID字段的值。

字符串

任务的UID。

APP_TYPE

取值为acjob任务中label字段下app字段的值。

字符串

-

MindSpore

NPU_POD

标记当前Pod是否挂载了芯片。

  • true:当前pod已挂载芯片。
  • false:当前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地址

  • Scheduler Pod中设置为podIP
  • Worker Pod设置为Scheduler Pod对应svc的clusterIP。

MS_SCHED_PORT

与Scheduler通信的端口

1024~65535范围内的端口号。

Scheduler Pod对应svc中名称为ascendjob-port的值,默认取值为2222。

MS_ROLE

指定本进程角色

  • MS_SCHED: 代表Scheduler进程,一个训练任务只启动一个Scheduler,负责组网,容器恢复等,不会执行训练代码
  • MS_WORKER: 代表Worker进程,一般设置分布式训练进程为此角色

Worker进程会向Scheduler进程注册从而完成组网。

MS_NODE_RANK

本节点Pod的Node Rank

大于或等于0的整数

Scheduler Pod设置为0。

  • 当Scheduler挂载芯片时,Worker Pod从1开始递增。
  • 当Scheduler不挂载芯片时,Worker Pod从0开始递增。

TensorFlow

CM_CHIEF_IP

与CHIEF通信的IP

合法的IP地址,格式为字符串,要求为常规IPv4或IPv6格式

  • chief Pod中设置为podIP。
  • Worker Pod设置为chief Pod对应svc的clusterIP。

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的整数

  • chief设置为0
  • worker从1开始递增

Ascend Docker Runtime环境变量说明

Ascend Docker Runtime为容器注入相应的环境变量。

环境变量名称

功能

取值

说明

ASCEND_DOCKER_RUNTIME

标识当前环境是否安装了Ascend Docker Runtime插件。

True

当未安装Ascend Docker Runtime时不存在该环境变量。

Ascend Device Plugin环境变量说明

Ascend Device Plugin为容器注入相应的环境变量,该环境变量的相关说明请参见下表。

表3 MindCluster Ascend Device plugin向容器中注入的环境变量

环境变量名称

功能

取值

说明

ASCEND_VISIBLE_DEVICES

  • 如果任务需要使用NPU设备,必需使用ASCEND_VISIBLE_DEVICES指定被挂载至容器中的NPU设备,否则挂载NPU设备失败。使用设备序号指定设备时,支持单个和范围指定且支持混用;使用芯片名称指定设备时,支持同时指定多个同类型的芯片名称。
  • 挂载物理芯片(NPU)
    • ASCEND_VISIBLE_DEVICES=0表示将0号NPU设备(/dev/davinci0)挂载入容器中。
    • ASCEND_VISIBLE_DEVICES=1,3 表示将1、3号NPU设备挂载入容器中。
  • 挂载虚拟芯片(vNPU)
    • 静态虚拟化:和物理芯片使用方式相同,只需要把物理芯片ID换成虚拟芯片ID(vNPU ID)即可。
    • 动态虚拟化

      ASCEND_VISIBLE_DEVICES=0表示从0号NPU设备中划分出一定数量的AI Core。

-

ASCEND_ALLOW_LINK

是否允许挂载的文件或目录中存在软链接,在Atlas 500 A2 智能小站Atlas 200I A2 加速模块Atlas 200I DK A2 开发者套件场景下必须指定该参数。

  • ASCEND_ALLOW_LINK=True,表示在Atlas 500 A2 智能小站Atlas 200I A2 加速模块Atlas 200I DK A2 开发者套件场景下允许挂载带有软链接的驱动文件。
  • ASCEND_ALLOW_LINK=False或者不指定该参数,Atlas 500 A2 智能小站Atlas 200I A2 加速模块Atlas 200I DK A2 开发者套件将无法使用Ascend Docker Runtime

-

ASCEND_RUNTIME_OPTIONS

对参数ASCEND_VISIBLE_DEVICES中指定的芯片ID作出限制:

  • NODRV:表示不挂载驱动相关目录。
  • VIRTUAL:表示挂载的是虚拟芯片。
  • NODRV,VIRTUAL:表示挂载的是虚拟芯片,并且不挂载驱动相关目录。
  • ASCEND_RUNTIME_OPTIONS=NODRV
  • ASCEND_RUNTIME_OPTIONS=VIRTUAL
  • ASCEND_RUNTIME_OPTIONS=NODRV,VIRTUAL

-

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组件时可以配置的环境变量。

表4 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恢复功能开关。

字符串

  • 取值为1:开启本功能。
  • 其他值:关闭本功能。

    关闭本功能时,MindIO侧相关功能需同时关闭。

    说明:

    MindIO侧相关功能开关说明如下:

    • enable-high-availability:故障快速恢复特性开关,默认关闭,配置后即开启临终遗言功能。
    • enable-worker-reboot:进程级别重调度功能开关,默认关闭,配置后在发生一般性故障时,进行进程级别调度,继续训练。本开关开启时,需同时开启enable-high-availability。

TaskD环境变量说明

表5 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

-