文档首页/ AI开发平台ModelArts/ 常见问题/ Standard训练作业/ 创建训练作业/ 在ModelArts创建分布式训练时如何设置NCCL环境变量?
更新时间:2024-10-28 GMT+08:00

在ModelArts创建分布式训练时如何设置NCCL环境变量?

ModelArts训练平台预置了部分NCCL环境变量,如表1所示。这些环境变量建议保持默认值。

表1 预置的环境变量

环境变量

说明

NCCL_SOCKET_IFNAME

指定通信的网卡名称。

NCCL_IB_GID_INDEX

系统设置的默认值为3,表示使用RoCE v2协议。

NCCL_IB_TC

系统设置的默认值为128,表示数据包走交换机的队列4,队列4使用PFC流控机制来保证网络是无损的。

如果训练时,需要提升通信稳定性,可以增加配置其他NCCL环境变量,如表2所示。

表2 建议增加的环境变量

环境变量

建议值

说明

NCCL_IB_TIMEOUT

18

用于控制IB通信超时时间,算法为“4.096 µs * 2 ^ timeout”。如出现NCCL通信超时问题可适当调大,最大可调整至22。较大的值可能会影响性能,设置为18相对平衡。

NCCL_IB_RETRY_CNT

15

IB通信重试次数。建议设置为最大值15,减少IB通信失败的概率。