更新时间:2024-10-24 GMT+08:00

管理训练容器环境变量

什么是环境变量

本章节展示了训练容器环境中预置的环境变量,方便用户查看,主要包括以下类型。

  • 路径相关环境变量
  • 分布式训练任务环境变量
  • NCCL(Nvidia Collective multi-GPU Communication Library)环境变量
  • OBS环境变量
  • PIP源环境变量
  • API网关地址环境变量
  • 作业元信息环境变量

如何修改环境变量

用户可以在创建训练作业页面增加新的环境变量,也可以设置新的取值覆盖当前训练容器中预置的环境变量值。

为保证数据安全,请勿输入敏感信息,例如明文密码。

训练容器中预置的环境变量

训练容器中预置的环境变量如下面表格所示,包括表1表2表3表4表5表6表7

此处的环境变量取值仅为示例,涉及不同规格、引擎、Region可能取值不一样,此处仅供参考。

表1 路径相关环境变量

变量名

说明

示例

PATH

可执行文件路径,已包含常用的可执行文件路径。

“PATH=/usr/local/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”

LD_LIBRARY_PATH

动态链接库路径,已包含常用的动态库路径。

“LD_LIBRARY_PATH=/usr/local/seccomponent/lib:/usr/local/cuda/lib64:/usr/local/cuda/compat:/root/miniconda3/lib:/usr/local/lib:/usr/local/nvidia/lib64”

LIBRARY_PATH

静态库路径,已包含常用的静态库路径。

“LIBRARY_PATH=/usr/local/cuda/lib64/stubs”

MA_HOME

训练作业的主目录。

“MA_HOME=/home/ma-user”

MA_JOB_DIR

训练算法文件夹所在的父目录。

“MA_JOB_DIR=/home/ma-user/modelarts/user-job-dir”

MA_MOUNT_PATH

ModelArts挂载至训练容器内的路径,用于临时存放训练算法、算法输入、算法输出、日志等文件。

“MA_MOUNT_PATH=/home/ma-user/modelarts”

MA_LOG_DIR

训练日志目录。

“MA_LOG_DIR=/home/ma-user/modelarts/log”

MA_SCRIPT_INTERPRETER

训练脚本解释器。

“MA_SCRIPT_INTERPRETER=”

WORKSPACE

训练算法目录。

“WORKSPACE=/home/ma-user/modelarts/user-job-dir/code”

表2 分布式训练任务环境变量

变量名

说明

示例

MA_CURRENT_IP

作业容器IP。

“MA_CURRENT_IP=192.168.23.38”

MA_NUM_GPUS

作业容器的加速卡数量。

“MA_NUM_GPUS=8”

MA_TASK_NAME

作业容器的角色名,例如:

  • MindSpore、PyTorch为worker
  • 强化学习引擎为learner,worker
  • TensorFlow为ps,worker

“MA_TASK_NAME=worker”

MA_NUM_HOSTS

计算节点个数。系统自动从资源参数的“计算节点个数”中读取。

“MA_NUM_HOSTS=4”

VC_TASK_INDEX

当前容器索引,容器从0开始编号。单机训练的时候,该字段无意义。在多机作业中,用户可以根据这个值来确定当前容器运行的算法逻辑。

“VC_TASK_INDEX=0”

VC_WORKER_NUM

训练作业使用的节点数量。

“VC_WORKER_NUM=4”

VC_WORKER_HOSTS

多节点训练时,每个节点的域名地址,按顺序以英文逗号分隔,可以通过域名解析获取IP地址。

“VC_WORKER_HOSTS=modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-0.modelarts-job-a0978141-1712-4f9b-8a83-000000000000,modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1.ob-a0978141-1712-4f9b-8a83-000000000000,modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-2.modelarts-job-a0978141-1712-4f9b-8a83-000000000000,ob-a0978141-1712-4f9b-8a83-000000000000-worker-3.modelarts-job-a0978141-1712-4f9b-8a83-000000000000”

${MA_VJ_NAME}-${MA_TASK_NAME}-N.${MA_VJ_NAME}

表示不同节点的通信域名,例如0号节点的通信域名为 ${MA_VJ_NAME}-${MA_TASK_NAME}-0.${MA_VJ_NAME}。

N表示计算节点个数。

例如,计算节点个数为4时,此环境变量分别为

“${MA_VJ_NAME}-${MA_TASK_NAME}-0.${MA_VJ_NAME}”

“${MA_VJ_NAME}-${MA_TASK_NAME}-1.${MA_VJ_NAME}”

“${MA_VJ_NAME}-${MA_TASK_NAME}-2.${MA_VJ_NAME}”

“${MA_VJ_NAME}-${MA_TASK_NAME}-3.${MA_VJ_NAME}”

表3 NCCL环境变量

变量名

说明

示例

NCCL_VERSION

NCCL版本。

“NCCL_VERSION=2.7.8”

NCCL_DEBUG

NCCL日志等级。

“NCCL_DEBUG=INFO”

NCCL_IB_HCA

指定NCCL使用的IB网卡。

“NCCL_IB_HCA=^mlx5_bond_0”

NCCL_SOCKET_IFNAME

指定NCCL使用的SOCKET网卡。

“NCCL_SOCKET_IFNAME=bond0,eth0”

表4 OBS环境变量

变量名

说明

示例

S3_ENDPOINT

OBS地址。

“-”

S3_VERIFY_SSL

访问OBS是否使用SSL。

“S3_VERIFY_SSL=0”

S3_USE_HTTPS

访问OBS是否使用HTTPS。

“S3_USE_HTTPS=1”

表5 PIP源和API网关地址环境变量

变量名

说明

示例

MA_PIP_HOST

PIP源域名。

“MA_PIP_HOST=repo.myhuaweicloud.com”

MA_PIP_URL

PIP源地址。

“MA_PIP_URL=http://repo.myhuaweicloud.com/repository/pypi/simple/”

MA_APIGW_ENDPOINT

ModelArts API网关地址。

“MA_APIGW_ENDPOINT=https://modelarts.region.cn-east-3.myhuaweicloud.com”

表6 作业元信息环境变量

变量名

说明

示例

MA_CURRENT_INSTANCE_NAME

多节点训练时,当前节点的名称。

“MA_CURRENT_INSTANCE_NAME=modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1”

表7 预检相关环境变量

变量名

说明

示例

MA_SKIP_IMAGE_DETECT

ModelArts预检是否开启。默认为1,1表示开启预检,0表示关闭预检。

推荐开启预检,预检可提前发现节点故障、驱动故障。

“1”

如何查看训练环境变量

在创建训练作业时,“启动命令”输入为“env”,其他参数保持不变。

当训练任务执行完成后,在训练作业详情页面中查看“日志”。日志中即为所有的环境变量信息。

图1 查看日志