linux编译安装nccl通信库

此前安装nccl都是通过在线安装,今天来记录下如何编译安装,相对于在线安装本地编译安装对于没有root权限,且没有联网环境的状态下使用。

下面我们就来编译下nccl,编译过程比较简单。

git clone https://github.com/NVIDIA/nccl.git
cd ncclmkdir /home/ubuntu/nccl
make -j$(nproc) src.build BUILDDIR=/home/ubuntu/nccl CUDA_HOME=/usr/local/cuda-12.4 NVCC_GENCODE="-gencode=arch=compute_89,code=sm_89"

编译需要注意的是compute和sm的值,可以查看之前的笔记进行调整:https://sulao.cn/post/1057,例如是4090计算能力是8.9这里就写89。都是值的10倍即可。

编译参数解释:

-j$(nproc)表示使用计算机所有核心,使用nproc查看总核心数,根据具体情况进行调整;
BUILDDIR表示编译后,一些文件的存储路径;默认是nccl/build,当前用户没有root权限可以调整到当前目录下,我就是当前????目录下创建nccl目录;
CUDA_HOME表示CUDA的目录,默认就是/usr/local/cuda12.4,其他版本请自行修改;
NVCC_GENCODE,如果不添加该字段,默认会编译支持所有架构;为了加速编译以及降低二进制文件大小,添加该字段,具体comute_89,sm_89是应该是和显卡算力相匹配

编译完成以后在使用中只需要添加两个环境变量即可。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ubuntu/nccl/lib
export PATH=$PATH:/home/ubuntu/nccl/bin

一般可以使用nccl-tests进行nccl通信库的测试,可以在这里查看nccl-tests的使用方法:https://sulao.cn/post/1068

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

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

评论列表

0%