文章目录
背景
本文记录了如何在centos8上通过安装openmpi等工具,使用nccl_test仓库运行all_reduce的测试程序的例子,但是最终只解决了各种编译问题没有真正的跑起来,不过过程十分曲折,有些地方值得记录。
nccl-tests 是由 NVIDIA 开发的一个开源测试工具集,用于评估和验证 NCCL(NVIDIA Collective Communications Library)的功能和性能。NCCL 是一个高性能的通信库,专为多 GPU 和多节点环境中的并行计算优化,支持多种集体通信操作,如 All-Reduce、All-Gather、Broadcast、Reduce 等
nccl-tests 提供了多种测试工具,用于不同的集体通信操作,包括:
all_reduce_perf:测试 All-Reduce 操作的性能。
all_gather_perf:测试 All-Gather 操作的性能。
broadcast_perf:测试 Broadcast 操作的性能。
reduce_perf:测试 Reduce 操作的性能。
sendrecv_perf:测试点对点通信的性能。
细节
安装MPI(Message Passing Interface)来支持多进程通信
CentOS 8 上运行 NCCL 测试程序,即使没有 GPU,也可以通过模拟环境进行测试。
sudo yum install -y openmpi openmpi-devel
下载并编译 NCCL-tests
NCCL-tests 是用于测试 NCCL 性能的工具,支持在没有 GPU 的环境中运行
git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests
make MPI=1 MPI_HOME=/usr/lib64/openmpi
# MPI=1 表示启用 MPI 支持。
# MPI_HOME 是 OpenMPI 的安装路径,可能因系统而异,可通过 find / -name mpiexec 查找
解决《nvcc没有》参考后文章节
解决《nccl.h没有》参考后文章节
解决《没有mpi.h》参考后文章节
完成全量编译效果:

测试
报错:unrecognized argument mca

查看:

可能原因是安装了openmpi和mpich多个mpi
再查看bashrc,注释掉mpich的,然后source ~/.bashrc

还是不行,可能环境变量多个,然后把openmpi的放到最前面,然后source ~/.bashrc

最低0.47元/天 解锁文章
218

被折叠的 条评论
为什么被折叠?



