管理训练容器环境变量
什么是环境变量
本章节展示了训练容器环境中预置的环境变量,方便用户查看,主要包括以下类型。
- 路径相关环境变量
- 分布式训练任务环境变量
- NCCL(Nvidia Collective multi-GPU Communication Library)环境变量
- OBS环境变量
- PIP源环境变量
- API网关地址环境变量
- 作业元信息环境变量
如何修改环境变量
用户可以在创建训练作业页面增加新的环境变量,也可以设置新的取值覆盖当前训练容器中预置的环境变量值。
为保证数据安全,请勿输入敏感信息,例如明文密码。
训练容器中预置的环境变量
训练容器中预置的环境变量如下面表格所示,包括表1、表2、表3、表4、表5、表6、表7。
此处的环境变量取值仅为示例,涉及不同规格、引擎、Region可能取值不一样,此处仅供参考。
变量名 |
说明 |
示例 |
---|---|---|
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” |
变量名 |
说明 |
示例 |
---|---|---|
MA_CURRENT_IP |
作业容器IP。 |
“MA_CURRENT_IP=192.168.23.38” |
MA_NUM_GPUS |
作业容器的加速卡数量。 |
“MA_NUM_GPUS=8” |
MA_TASK_NAME |
作业容器的角色名,例如:
|
“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}”。 |
变量名 |
说明 |
示例 |
---|---|---|
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” |
变量名 |
说明 |
示例 |
---|---|---|
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” |
变量名 |
说明 |
示例 |
---|---|---|
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” |
变量名 |
说明 |
示例 |
---|---|---|
MA_CURRENT_INSTANCE_NAME |
多节点训练时,当前节点的名称。 |
“MA_CURRENT_INSTANCE_NAME=modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1” |
变量名 |
说明 |
示例 |
---|---|---|
MA_SKIP_IMAGE_DETECT |
ModelArts预检是否开启。默认为1,1表示开启预检,0表示关闭预检。 推荐开启预检,预检可提前发现节点故障、驱动故障。 |
“1” |
变量名 |
说明 |
示例 |
---|---|---|
MA_HANG_DETECT_TIME |
卡死检测时间。在这段时间内IO无变化则判定为任务卡死。 取值范围:10~720 单位:分钟 默认值:30 |
“30” |
如何查看训练环境变量
在创建训练作业时,“启动命令”输入为“env”,其他参数保持不变。
当训练任务执行完成后,在训练作业详情页面中查看“日志”。日志中即为所有的环境变量信息。