在Nvidia网站上,他们声称MXNet使用NCCL (https://developer.nvidia.com/nccl)。但是,我没有从MXNet的github存储库中找到任何关于他们实际使用NCCL库的引用。
在chainer博客中,他们还声称由于在chainer中使用了NCCL库,所以chainer在4个GPU上获得了比MXNet更好的性能。(https://chainer.org/general/2017/02/08/Performance-of-Distributed-Deep-Learning-Using-ChainerMN.html)
在MXNet存储库中的一些旧文章中,我可以看到他们在讨论在MXNet中包含NCCL库的困难。
我的第一个问题是,是否有NCCL库的MXNet版本?第二版,使用NCCL库可能会带来什么性能影响(即内存使用量减少,跨多个GPU的通信开销更小)?
发布于 2017-11-20 23:25:31
目前还没有官方版本支持NCCL。
1)对此进行了公关,但已结束(请参阅此处讨论:https://github.com/apache/incubator-mxnet/issues/2919)。可以将该代码插入到旧的提交中。
2)参见ptrendx@关于9月10日与NCCL相关的性能的引用:
“作为支持DGX的一部分,NVIDIA作为码头容器提供了大多数主要DL框架的优化版本。作为这个DGX软件栈的一部分的MXNet版本具有NCCL支持(我猜这就是为什么该页面列出了支持MXNet的原因)。我们进行上游优化,NCCL支持从2月起作为PR提供(#5521),但由于API的需要,它尚未被上游MXNet所接受。
尽管如此,MXNet实际上有非常好的通信方案,只要您的网络没有非常多的参数(您需要NCCL和NVLink给出的带宽),就可以使用MXNet的本地设备kvstore获得同样好或更好的结果。“
https://stackoverflow.com/questions/46103844
复制相似问题