通用环境变量
在提交训练任务时,ACP会自动注入多个通用环境变量,便于您在代码中直接使用。本文为您介绍系统中默认提供的环境变量列表。
系统环境变量说明(不能覆盖)
环境变量 | 默认值 | 环境变量说明 |
---|---|---|
ECP_JOB_NAME | Job的name值 | 后端为 Pod 内部添加任务的name,以便用户后续进行回溯。name为Job的唯一标识,不运行用户 |
网络环境变量说明
ACP训练平台底层计算资源已开启了RDMA特性,且默认设置了最优NCCL/MCCL变量。您可以根据训练框架、通信框架以及模型特点进行必要的调整。强烈建议您使用平台预置系统内的默认变量, 可以获得较优性能。 目前N卡底层适配的是GPU通信源语库NCCL,国产化芯片沐曦C500适配的是GPU通信源语库MCCL。
NCCL关键环境变量的说明如下表所示,更多关于NCCL其他环境变量的说明,请参见NCCL链接。
环境变量 | 默认值 | 环境变量说明 |
---|---|---|
NCCL_IB_TIMEOUT | 22 | 遇到通信延迟或者网络问题时,控制 InfiniBand 网络操作的超时时间(取值范围1-22),可以提升训练任务时的容错性能,若未配置或配置错误,可能会导致训练任务出现中断。建议在大模型训练任务中设置成最大值22,可以减少不少nccl timeout异常。 |
NCCL_IB_RETRY_CNT | 13 | 变量控制 InfiniBand 的重试次数。建议在大模型训练任务中设置成13,尽可能多重试。 |
NCCL_IB_AR_THRESHOLD | 0 | 改值设置为0是所有网络流量都会走ar来进行调度 |
MCCL关键环境变量的说明如下表所示。
环境变量 | 默认值 | 环境变量说明 |
---|---|---|
MCCL_P2P_LEVEL | SYS | 指定MCCL使用P2P传输的gpu之间的最大距离是,通信的gpu属于同一NUMA。 |
MCCL_NET_GDR_LEVEL | SYS | 指定MCCL使用GDR传输的gpu与网卡之间的最大距离是,gpu与网卡属于同一NUMA。 |
MCCL_CROSS_NIC | 1 | 允许ring/trees使用不同的网卡通信,节点间通信在不同节点上使用不同的网卡 |
FORCE_ACTIVE_WAIT | 1 | 指定UMD中Host侧等待事件或流之间同步的CPU行为,进程抢占CPU进行等待相对温和 |
MCCL_LIMIT_RING_LL_THREADTHRESHOLDS | 1 | 对Ring算法LL协议使用场景做限制 |