通过环境变量配置资源信息
进行训练之前,需要配置参与集群训练的昇腾AI处理器的资源信息。开发者可以通过本节所述的环境变量组合的方式配置资源信息,完成集合通信组件的初始化。
通过环境变量配置资源信息的方式仅支持如下产品型号:
配置说明
需要在执行训练的每个AI Server节点上分别配置如下环境变量,进行资源信息的配置,示例如下:
1 2 3 4 5 6 | export CM_CHIEF_IP = 192.168.1.1
export CM_CHIEF_PORT = 6000
export CM_CHIEF_DEVICE = 0
export CM_WORKER_SIZE = 8
export CM_WORKER_IP = 192.168.0.1
export HCCL_SOCKET_FAMILY=AF_INET
|
- CM_CHIEF_IP:Master节点的Host监听IP,即与其他节点进行通信的IP地址,要求为常规IPv4或IPv6格式。
- CM_CHIEF_PORT:Master节点的监听端口,需要配置为整数,取值范围“0~65520”,请确保端口未被其他进程占用。
- CM_CHIEF_DEVICE:Master节点中统计Server端集群信息的Device逻辑ID。
- CM_WORKER_SIZE:用于配置组网中参与集群训练的Device总数量,需要配置为整数,取值范围“0~32768”。
- CM_WORKER_IP:用于配置当前节点与Master进行通信时所用的网卡IP,要求为常规IPv4或IPv6格式。
- HCCL_SOCKET_FAMILY:此环境变量可选,用于控制Device侧通信网卡使用的IP协议版本。AF_INET代表使用IPv4协议,AF_INET6代表使用IPv6协议,缺省时,优先使用IPv4协议。

- 如果环境变量“HCCL_SOCKET_FAMILY”指定的IP协议与实际获取到的网卡信息不匹配,则以实际环境上的网卡信息为准。
例如,环境变量“HCCL_SOCKET_FAMILY”指定为“AF_INET6”,但Device侧只存在IPv4协议的网卡,则实际会使用IPv4协议的网卡。
- 通过以上环境变量的方式配置集群信息时,环境中不能存在环境变量RANK_TABLE_FILE、RANK_ID、RANK_SIZE。
- 针对
Atlas A2 训练系列产品 ,若业务为单卡多进程场景,建议通过环境变量“HCCL_NPU_SOCKET_PORT_RANGE”配置HCCL在NPU侧使用的通信端口,否则可能会端口冲突,但需要注意,多进程会对资源开销、通信性能产生一定的影响,配置示例:export HCCL_NPU_SOCKET_PORT_RANGE="auto"
关于环境变量“HCCL_NPU_SOCKET_PORT_RANGE”的详细说明可参见《环境变量参考》中的“执行相关 > 集合通信”章节。
配置示例
假设执行分布式训练的AI Server节点数量为2,Device数量为16为例,每个AI Server节点有8个Device。启动每个Device上的训练进程前,在对应的shell窗口中配置如下环境变量,进行资源信息的配置。
- 节点0,此节点为Master节点,负责集群信息管理、资源分配与调度。
1 2 3 4 5
export CM_CHIEF_IP = 192.168.1.1 export CM_CHIEF_PORT = 6000 export CM_CHIEF_DEVICE = 0 export CM_WORKER_SIZE = 16 export CM_WORKER_IP = 192.168.1.1
- 节点1
1 2 3 4 5
export CM_CHIEF_IP = 192.168.1.1 export CM_CHIEF_PORT = 6000 export CM_CHIEF_DEVICE = 0 export CM_WORKER_SIZE = 16 export CM_WORKER_IP = 192.168.2.1
父主题: 训练执行(环境变量方式设置资源信息)