You need to enable JavaScript to run this app.
文档中心
GPU云服务器

GPU云服务器

复制全文
下载 pdf
性能测试/调优
使用NCCL Tuner Plugin优化NCCL通信性能
复制全文
下载 pdf
使用NCCL Tuner Plugin优化NCCL通信性能
NCCL Tuner Plugin是用于优化NCCL性能的插件,本文介绍如何在gni3cg实例中通过Tuner Plugin优化NCCL通信性能。​
关键组件​
​
关键组件​
说明​
实例​
  • 实例规格:NCCL Tuner Plugin支持以下8卡规格的机型在单机状态下进行allreduce通信。规格详情请参见GPU计算型,该类实例正在邀测中,如需使用,请联系客户经理申请。 ​
  • ecs.gni3cl.45xlarge​
  • ecs.gni3cg.45xlarge​
  • ecs.gni3cgd.45xlarge​
  • GPU驱动:用来驱动NVIDIA GPU卡的程序。本文以535.154.05版本为例。​
  • CUDA工具包:使GPU能够解决复杂计算问题的计算平台。本文以CUDA 12.2为例。​
NCCL​
NCCL(Nvidia Collective Communication Library)是NVIDIA的集合通信库,支持安装在单个节点或多个节点的大量GPU卡上,实现多个GPU的快速通信。它提供了一系列高度优化的通信原语,如allreduce(全规约)、reduce-scatter(分散规约)、allgather(全收集)等,这些原语能够帮助并行计算任务在多个GPU间高效地同步和交换数据。​
注意​
使用NCCL Tuner Plugin必须确保NCCL版本不低于2.19,本文以NCCL2.20.5和 2.21.5为例。​
NCCL Tuner Plugin​
用于优化NCCL性能的插件。​
Git​
分布式版本控制系统。本文使用Git 2.25.1版本。​
OpenMPI​
OpenMPI是一个开源的 Message Passing Interface 实现,是一种高性能消息传递库,能够结合整个高性能计算社区的专业知识、技术和资源,建立现有的最佳MPI库。OpenMPI在系统和软件供应商、应用开发者和计算机科学研究人员中有广泛应用。​
NCCL Tests​
NCCL Tests是一个测试工具集,可以用来评估NCCL的运行性能和正确性。​
​
准备环境​
  • 已拥有一台GPU计算型实例,本文所示配置如下:​
  • 规格:ecs.gni3cg.45xlarge​
  • 镜像:Ubuntu 20.04​
  • GPU驱动版本:535.154.05​
  • ​​​
  • 执行nvcc -V 命令查看CUDA版本。若未安装,请安装CUDA。​
  • 执行python3 --version命令查看Python版本。若未安装,请安装Python。​
操作步骤​
步骤一:安装NCCL和NCCL Tuner Plugin​
  1. 安装NCCL和NCCL Tuner Plugin。​
  • 方式一:执行以下命令,直接安装libnccl.so.2.20.5和libnccl-tuner.so。​
  • ​
    #!/bin/bash​
    set -ex​
    wget -c https://iaas-perf-beijing.tos-cn-beijing.volces.com/nccl/plugin/libnccl-tuner.so​
    mv libnccl-tuner.so /usr/local/lib​
    ​
    wget -c https://iaas-perf-beijing.tos-cn-beijing.volces.com/nccl/libnccl.so.2.20.5​
    mv libnccl.so.2.20.5 /usr/local/lib/python3.10/dist-packages/nvidia/nccl/lib​
    ln -sf /usr/local/lib/python3.10/dist-packages/nvidia/nccl/lib/libnccl.so.2.20.5 /usr/local/lib/python3.10/dist-packages/nvidia/nccl/lib/libnccl.so.2​
    ​
  • 方式二:如需安装其他版本的NCCL,请参考以下操作,本文以2.21.5为例。​
  1. 执行以下命令,安装libnccl-tuner.so。​
  • ​
    wget -c https://iaas-perf-beijing.tos-cn-beijing.volces.com/nccl/plugin/libnccl-tuner.so​
    mv libnccl-tuner.so /usr/local/lib​
    ​
  1. 安装Git。​
  • ​
    apt update​
    apt -y install git​
    ​
  • 执行git --version命令,回显如下,表示安装成功。​
  • ​​​
  1. 执行以下命令,安装NCCL并进行编译。​
  • ​
    git clone -b v2.21.5-1 https://github.com/NVIDIA/nccl​
    cd nccl​
    make -j src.build​
    make install ​
    ​
步骤二:安装OpenMPI​
  1. 执行以下命令,安装OpenMPI。​
  • ​
    sudo apt update​
    sudo apt -y install openmpi-bin​
    ​
  1. 检查是否正常安装。​
  • ​
    mpiexec --version​
    ​
  • 回显如下,表示已正常安装。​
  • ​​​
步骤三:使用NCCL Tuner Plugin​
安装成功后,您可以直接使用NCCL Tuner Plugin的通信优化功能,无需再进行其他配置。以下示例通过NCCL_Tests展示NCCL Tuner Plugin在单机8卡实例中,采用allreduce通信算法进行加速的效果。​
  1. 在NVIDIA nccl-tests中下载nccl-tests软件包。​
  • ​
    git clone https://github.com/NVIDIA/nccl-tests.git​
    ​
  1. 执行以下命令,编译nccl-tests。​
  • ​
    cd nccl-tests​
    make ​
    ​
  1. 执行以下脚本加载优化算法。​
  • ​
    mpirun --allow-run-as-root -np 8 -x NCCL_DEBUG=INFO -x NCCL_P2P_LEVEL=SYS -x NCCL_TUNER_PLUGIN=/usr/local/lib/libnccl-tuner.so ./build/all_reduce_perf -b 8 -e 1G -f 2 -g 1​
    ​
  • 上述命令中同时设置了NCCL_DEBUG=INFO,在NCCL日志中打印出如下信息时,表明TUNER_PLUGIN加载成功。​
  • ​​​
性能示例​
gni3cg.45xlarge实例使用不同版本的NCCL以及NCCL Tunner Plugin进行allreduce时的性能数据如下表所示。​
说明​
本文所展示的性能仅供参考,实际情况会因硬件规格、系统设置和应用场景的不同而有所变化。​
​
INSTANCE_TYPE​
gni3cg​
​
​
data_size (B)​
nccl 2.18.1​
nccl 2.19.3​
nccl 2.19.3 Tunner​
8​
0​
0​
0​
16​
0​
0​
0​
32​
0​
0​
0​
64​
0.01​
0.01​
0.01​
128​
0.02​
0.02​
0.02​
256​
0.03​
0.03​
0.03​
512​
0.07​
0.07​
0.07​
1024​
0.13​
0.12​
0.130 ​
2048​
0.23​
0.23​
0.230 ​
4096​
0.43​
0.44​
0.440 ​
8192​
0.86​
0.86​
0.860 ​
16384​
1.67​
1.67​
1.660 ​
32768​
3.01​
3.05​
3.050 ​
65536​
5.62​
5.61​
5.650 ​
131072​
2.99​
2.81​
8.220 ​
262144​
4.7​
4.55​
8.970 ​
524288​
7.39​
7.12​
14.260 ​
1048576​
12.91​
12.6​
16.630 ​
2097152​
17.27​
17.12​
18.220 ​
4194304​
20.24​
20.07​
20.020 ​
8388608​
21.14​
20.96​
21.090 ​
16777216​
20.1​
20.08​
20.080 ​
33554432​
20.02​
20.04​
20.060 ​
67108864​
20.11​
20.11​
20.100 ​
134217728​
20.16​
20.17​
20.170 ​
268435456​
20.21​
20.21​
20.240 ​
536870912​
20.27​
20.25​
20.280 ​
1073741824​
20.32​
20.31​
20.320 ​
​
  • ​
最近更新时间:2026.06.17 16:03:58
这个页面对您有帮助吗?
有用
有用
无用
无用