使用前须知
执行分布式训练前,首先参考本节了解一些注意事项。
开发者跨多个进程执行分布式训练时,首先需要配置参与分布式训练的昇腾AI处理器的资源信息,然后再拉起训练进程。
当前有配置文件和环境变量两种配置资源信息的方式,开发者可以选择其中任一方式,但两种方式不能混合使用。
- 通过配置文件的方式,此资源配置文件称为ranktable文件,并配合RANK_TABLE_FILE、RANK_ID等环境变量使用。
此种方式下配置资源信息、拉起训练进程的详细说明可参见训练执行(配置文件方式设置资源信息)。
- 通过环境变量的方式。
此种方式下配置资源信息、拉起训练进程的详细说明可参见训练执行(环境变量方式设置资源信息)。
执行分布式训练前,请了解如下注意事项:
- 针对Atlas 训练系列产品,如果使用1台训练服务器(Server),要求实际参与集合通信的昇腾AI处理器数目只能为1/2/4/8,且0-3卡和4-7卡各为一个组网。使用2张卡或4张卡训练时,不支持跨组网创建设备集群。
- 针对Atlas 训练系列产品,Server集群场景下(即由集群管理主节点和一组训练服务器组成训练服务器集群),要求参与集合通信的昇腾AI处理器数目只能为1*n、2*n、4*n、8*n(其中n为参与训练的Server个数,上限为512)。且n为2的指数倍情况下,集群性能最好,建议用户优先采用此种方式进行集群组网。
- 针对Atlas A2 训练系列产品,Server集群场景(即由集群管理主节点和一组训练服务器组成训练服务器集群)下要求参与集合通信的昇腾AI处理器数目为(1~8)*n(其中n为参与训练的Server个数,上限为1152),其中,n为2的指数倍情况下,集群性能最好,建议用户优先采用此种方式进行集群组网,注意每个Sever中参与集合通信的昇腾AI处理器数量保持一致。若不一致,会造成性能裂化。
- 一个Device对应执行一个训练进程,当前不支持多进程在同一个Device上进行训练。
- 分布式训练场景下,HCCL会使用Host服务器的部分端口进行集群信息收集,需要操作系统预留该部分端口。默认情况下,HCCL使用60000-60015端口,若通过环境变量HCCL_IF_BASE_PORT指定了Host网卡起始端口,则需要预留以该端口起始的16个端口。
操作系统端口号预留示例:sysctl -w net.ipv4.ip_local_reserved_ports=60000-60015
父主题: 执行分布式训练