NVIDIA NCCL库的pynccl python绑定
pynccl的Python项目详细描述
pynccl公司
Nvidia NCCL2 Python绑定使用ctypes和numba。在
这个项目的许多代码和思想都来自于项目pyculib。 这个项目的主要目标是使用nvidianccl,只使用python代码,而不编译任何其他代码 语言代码,如C++。它最初是作为分布式深度学习项目的一部分称为 necklace,现在可以在其他地方使用了。在
安装
- NCCL公司
请按照Nvidia文档here安装NCCL。在
- pynccl公司
从源头来看
python setup.py install
或者只是
^{pr2}$使用
环境
- 给麻巴
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
(以下可能不需要)
export NUMBAPRO_CUDALIB=/usr/local/cuda/lib64
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice/
- 对于NCCL
export NUMBA_NCCLLIB=/usr/lib/x86_64-linux-gnu/
export NCCL_DEBUG=INFO
export NCCL_SOCKET_IFNAME=<your-ifname-like-ens11>
示例
- 在pynccl.NcclWrp公司在
这段代码是NcclWrp的一个例子,具有用于调度的多处理功能 所有进程的ncclUniqueId。查看完整代码here
nk = pynccl.NcclWrp(kn, rank, gpu_i)
if rank == 0:
nuid = nk.get_nuid()
for j in range(kn - 1):
q.put((nuid, w))
else:
nuid, w = q.get()
nk.set_nuid(nuid)
nk.init_comm()
- 在太平洋航空公司在
也可以使用太平洋航空公司,请参阅代码here
- 项目
标签: