更新时间:2025-03-04 gmt 08:00

管理训练容器环境变量-九游平台

什么是环境变量

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

  • 路径相关环境变量
  • 分布式训练作业环境变量
  • nccl(nvidia collective multi-gpu communication library)环境变量
  • obs环境变量
  • pip源环境变量
  • api网关地址环境变量
  • 作业元信息环境变量

约束限制

为了避免新设置的环境变量与系统环境变量冲突,而引起作业运行异常或失败,请在定义自定义环境变量时,不要使用“ma_”开头的名称。

如何修改环境变量

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

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

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

训练容器中预置的环境变量如下面表格所示,包括表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_ib_timeout

infiniband传输超时时间。

“nccl_ib_timeout=18”

nccl_ib_retry_cnt

infiniband传输最大重试次数。

“nccl_ib_retry_cnt=15”

nccl_ib_gid_index

infiniband在roce模式下使用的全局id索引。

“nccl_ib_gid_index=3”

nccl_ib_tc

infiniband的流量类型。

“nccl_ib_tc=128”

nccl_socket_ifname

指定nccl使用的socket网卡。

“nccl_socket_ifname=bond0,eth0”

nccl_net_plugin

指定nccl使用的网络插件。

“nccl_net_plugin=none”

表4 obs环境变量

变量名

说明

示例

s3_endpoint

obs地址。

“s3_endpoint=https://obs.region.myhuaweicloud.com”

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..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”

表8 卡死检测相关环境变量

变量名

说明

示例

ma_hang_detect_time

卡死检测时间。在这段时间内io无变化则判定为任务卡死。

取值范围:10~720

单位:分钟

默认值:30

“30”

如何查看训练环境变量

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

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

图1 查看日志

相关文档

网站地图