【问题标题】:Have MXNet used Nvidia's NCCL library for multi-GPU communication?MXNet 是否使用 Nvidia 的 NCCL 库进行多 GPU 通信?
【发布时间】:2017-09-07 19:33:52
【问题描述】:

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

在chainer博客中,他们还声称chainer在4个GPU上实现了比MXNet更好的性能,因为chainer中使用了NCCL库。(https://chainer.org/general/2017/02/08/Performance-of-Distributed-Deep-Learning-Using-ChainerMN.html)

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

我的第一个问题是,有没有带有 NCCL 库的 MXNet 版本? 其次,使用 NCCL 库可能对性能产生什么影响(即更少的内存使用,更少的跨多个 GPU 的通信开销)?

【问题讨论】:

    标签: machine-learning nvidia mxnet multi-gpu


    【解决方案1】:

    目前没有支持 NCCL 的官方版本。

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

    2) 请参阅 ptrendx@ 关于 9 月 10 日与 NCCL 相关的性能的引用:

    “作为支持 DGX 的一部分,NVIDIA 提供了大多数主要 DL 框架的优化版本作为 docker 容器。作为此 DGX 软件堆栈一部分的 MXNet 版本支持 NCCL(我猜这就是该页面将 MXNet 列为支持的原因)。 我们在上游进行优化,NCCL 支持自 2 月起作为 PR 提供 (#5521),但由于需要 API,它尚未被上游 MXNet 接受。

    也就是说,MXNet 实际上具有非常好的通信方案,只要您的网络没有大量参数(您需要 NCCL 和 NVLink 提供的带宽),您可能会得到与 MXNet 一样好的或更好的结果本机设备 kvstore。”

    【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多