Horovod正在将NCCL和MPI 组合成分布式深度学习的包装器,例如TensorFlow.我以前没有NCCL的负责人,正在调查功能,从Nvidia网站上他们就NCCL说明了以下内容:
NVIDIA集体通信库(NCCL)实现了多GPU和多节点集合通信原语,这些原语针对NVIDIA GPU进行了性能优化.
从关于NCCL 的介绍视频中我了解到NCCL通过PCIe,NVLink,Native Infiniband,以太网工作,它甚至可以检测通过RDMA的GPU Direct是否在当前硬件拓扑中有意义并透明地使用它.
所以我质疑为什么在Horovod需要MPI?据我所知,MPI还用于通过allreduce范例有效地交换分布式节点之间的梯度.但据我所知,NCCL已经支持这些功能.
那么MPI仅用于轻松调度群集上的作业吗?对于CPU上的分布式深度学习,既然我们不能在那里使用NCCL?
如果有人可以解释MPI和/或NCCL用于分布式深度学习的情况以及他们在培训工作中的职责,我将非常感谢.