MXNet是否使用Nvidia的NCCL库进行多GPU通信?



在NVIDIA网站上,他们声称MXNET使用NCCL(https://developer.nvidia.com/nccl)。但是,我尚未从MXNET的GitHub存储库中找到他们实际使用NCCL库的任何参考。

在Chainer博客中,他们还声称,由于在Chaineer中使用NCCL库,Chainer在4 GPU上的性能要比MXNET更好。Distribed-De-Deep-Learning-us-Chainermn.html)

在MXNET存储库中的一些旧帖子中,我可以看到他们在谈论在MXNET中包括NCCL库的困难。

我的第一个问题是,是否有NCCL库的MXNET版本? 第二,使用NCCL库的性能含义是什么(即更少的内存使用情况,较小的多个GPU的通信开销)?

目前尚无官方版本支持NCCL。

1)有一个关闭的PR(请参阅此处的讨论:https://github.com/apache/incubator-mxnet/issues/2919)。可以将该代码拉到较旧的提交中。

2)参见9月10日与NCCL有关的ptrendx@的报价:

"作为支持DGX的一部分,NVIDIA提供了大多数主要DL框架作为Docker容器的优化版本。MXNET版本是此DGX软件堆栈的一部分,它具有NCCL支持(我猜这就是为什么该页面列出了MXNET,请根据支持MXNET。)。自2月以来(#5521)以来,我们可以在上游进行优化和NCCL支持,但由于所需的API,它尚未接受上游MXNET。

也就是说,MXNET实际上具有很好的沟通方案,只要您的网络没有大量参数(您需要NCCL和NVLINK给出的带宽),您就可以通过MXNET获得同样好或更好的结果。本机设备kvstore。"

最新更新