NCCL 的全称为 Nvidia 聚合通信库(NVIDIA Collective Communications Library),是一个可以实现多个 GPU、多个结点间聚合通信的库,在 PCIe、Nvlink、InfiniBand 上可以实现较高的通信速度。对于每台主机均使用多进程的情况,使用 NCCL 可以获得最大化的性能。
在安装完成后需要测试nccl,就可以使用自带的nccl-tests来测试nccl,但是会出现各种各样的错误。
找不到nccl.h
在编译nccl-tests时,使用
make nccl-tests
但是会出现找不到nccl.h的错误,就需要在~/.basgrc中寫入
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
找不到libnccl.so.2
export LD_LIBRARY_PATH=~/.local/lib/python3.6/site-packages/torch/nccl/build/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。使用
echo $LD_LIBRARY_PATH
可以查看環境變量