- 文档首页
GPU云服务器
GPU云服务器
最佳实践
性能测试/调优
HPC-多机NCCL测试优化方案之实例亲和性排序
性能测试/调优
HPC-多机NCCL测试优化方案之实例亲和性排序
HPC-多机NCCL测试优化方案之实例亲和性排序
本文针对大规模集群内不同的网络拓扑结构,介绍了为高性能计算GPU节点进行亲和性排序的方法,旨在降低通信时延,进而提升通信效率。
在大模型训练等人工智能场景中,通常会产生全网格通信(例如AllReduce),需要频繁地相互交换参数、梯度值等数据。为了避免网络通信开销过大,影响训练任务的性能,通常会采用RDMA网络在GPU之间直接传输数据。而在数据中心中,一台交换机能够连接的RDMA网络设备数量有限,故而需要借助多层级交换机来实现集群内服务器的连接。这样的网络拓扑结构,会导致不同网卡之间的通讯距离不一样,因此不同的GPU设备之间的通讯性能也会有差异。
针对以上情况,您可以在运行大规模集群任务前(例如使用NCCL测试来评估RDMA多机集群性能的场景),按照RDMA网络亲和关系对实例ID或者网卡的IP地址进行排序,让数据传输更有序。在像AllReduce这样的全网格通信场景中,可以减少因网络拥堵等导致的通信延迟,使数据交换更加高效,提升大规模集群任务的运行性能。 注意
脚本里依赖了第三方库requests ,如果没有安装,请执行pip install requests命令进行安装。
- 如下所示,准备一个文本文件,文本格式为每行写一个实例ID,保存格式可以为txt。
python3 sort_ip_openapi.py -ak 'your_ak' -sk 'your_sk' -region 'instance_region' -input 'file_path'
- 'your_ak'、'your_sk'需替换为您第1步获取到的真实数据。
- 'instance_region'替换为实例所属地域ID,如cn-beijing。
- 'file_path'替换为第3步的实例ID列表文件。
-
- 执行第4步的命令后,会提示结果文件的名称,保存路径即脚本的路径。
-
说明
- 不使用AK/SK的方法,因为需要通过SSH连接到每一台需要排序的机器上获取IP地址并进行判断,所以配置速度会比使用AK/SK的方法慢。
- 所有实例都安装了curl工具,例如对于Ubuntu实例,请执行apt install curl命令进行安装。
Disable strictHostKeyChecking and enable ForwardAgent on the leader node. Open ~/.ssh/config using your preferred text editor and add the following.
StrictHostKeyChecking no
- 依次执行以下命令,创建密钥对,并将公钥内容添加到“~/.ssh/authorized_keys”文件,随后将当前节点的密钥拷贝到其他节点的.ssh文件中,从而实现互信。
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.* root@192.XX.XX.205:~/.ssh/ #root@后需替换为其他节点IP地址。
- 准备一个文本文件,文本格式为每行写一个IP地址,保存格式为txt。
python3 sort_ip_ssh.py -input ip_list.txt
-
-
最近更新时间:2025.07.24 10:30:09