nccl的安装和验证

NCCL(NVIDIA Collective Communications Library)是由 NVIDIA 开发的一种高性能的多 GPU 通信库,用于在多个 NVIDIA GPU 之间实现快速的数据传输和协同计算。它可以在深度学习和高性能计算领域中提供分布式训练和数据并行加速的支持。

NCCL实现了针对NVIDIA GPU和网络进行优化的多GPU和多节点通信基元。NCCL提供了诸如全收集(all-gather)、全归约(all-reduce)、广播(broadcast)、归约(reduce)、归约散射(reduce-scatter)以及点对点发送和接收等例程,这些例程经过优化,以实现在节点内部的PCIe和NVLink高速互连以及节点间的NVIDIA Mellanox网络上获得高带宽和低延迟。

我们来看下nccl的安装

首先我们去官网下载nccl,需要注意对应你的环境里面使用的cuda版本,可以去这个地址下载:https://developer.nvidia.com/nccl/nccl-legacy-downloads

下载以后传到环境中进行安装,安装并不复杂,ubuntu直接使用dpkg命令进行安装,centos使用yum进行安装,例如ubuntu的安装方法

dpkg -i nccl-local-repo-ubuntu2004-2.16.5-cuda11.8_1.0-1_amd64.deb

默认会安装到/usr/lib/x86_64-linux-gnu目录下,我们还需要需要LD_LIBRARY_PATH,这个可以加到.barshrc或者profile的文件里面

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu

我们可以使用如下命令检查当前环境中的nccl版本

cat /usr/include/nccl.h | grep "#define NCCL_MAJOR"

我们在排查nccl问题时可以使用环境变量的方式获取nccl更详细的报错,在执行我们的单机多卡或者分布式任务前导入

exrpot NCCL_DEBUG=INFO
#或者直接在代码中导入环境变量
import os
os.environ['NCCL_DEBUG'] = 'INFO'

目前常用的AI框架中,pytorch不用单独去安装nccl库,安装torch时就已经带有nccl库了,可以直接使用命令检查

import torch
torch.cuda.nccl.version()
(2, 18, 1)


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/979.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。