NVIDIA 集合通信库 (NCCL)

NVIDIA 集合通信库(NCCL)是一款专为 NVIDIA GPU 与网络环境优化的多 GPU、多节点通信原语库,实现了高效的多 GPU 和多节点通信能力。

下载 NCCL文档版本说明


GitHubNCCL API 指南


NCCL 的工作原理

NCCL 提供 all-gather、all-reduce、broadcast、reduce、reduce-scatter 以及点对点 send/recv 等通信例程,这些例程经过优化,可在单机内通过 PCIe、NVIDIA NVLink™ 等高速互连,以及跨节点通过 NVIDIA 网络,提供高带宽、低时延的数据传输。

通过将通信与计算融合在同一个 GPU 内核中,NCCL 能实现低时延同步,非常适合用于分布式训练和实时推理等场景。 借助拓扑动态探测机制和精简的 C 语言 API,开发者无需针对特定硬件手工调优即可在多节点间进行扩展。

NCCL 可以从 GitHub 获取源码进行构建和安装,也可以作为 NVIDIA HPC SDK 的一部分获取,或者直接在 NVIDIA Developer Zone 上下载预编译二进制包。

 This is how NVIDIA Collective Communication Library (NCCL) works

性能

NCCL 使开发者无需针对特定机器优化其应用程序。NCCL 在节点内和节点间通过多个 GPU 提供快速群集。

易于编程

NCCL 使用简单的 C API,可通过各种编程语言轻松访问。NCCL 严格遵循由消息传递接口 (MPI) 定义的热门群集 API。

兼容性

NCCL 与任何多 GPU 并行模型兼容,包括单线程、多线程 (每个 GPU 使用一个线程) 和多进程 ( MPI 与 GPU 上的多线程操作相结合) 。


主要特性

  • 高性能集合通信和点对点通信,可加快多 GPU 和多节点训练速度

  • 设备 API 支持直接从 CUDA 内核进行通信,从而降低延迟并改善计算和通信重叠

  • 跨 PCIe、NVLink®、NVSwitch™、InfiniBand、RoCE 和其他网络进行自动拓扑检测,以更大限度地提高性能

  • 先进的图形搜索算法,可构建更高效的环和树,以实现峰值带宽和更低延迟

  • 灵活的插件框架,可将 NCCL 扩展到自定义传输和新一代互连

  • 全面支持多线程、多进程和 MPI 驱动的分布式应用程序

  • 集成的分析、可靠性和可观察性工具 (如 NCCL RAS 和 NCCL Inspector) 可加速调试和性能调优


NCCL 博客


更多资源

请观看由我们的 NCCL 团队提供的以下视频,了解更多信息。

详细了解相关库和软件。

Decorative image representing Developer Newsletter

提交错误、RFE 或问题

Decorative image representing Developer Community

加入 NVIDIA 开发者计划

立即开始使用 NCCL。

下载 NCCL