Repolode
NVIDIA

NVIDIA/nccl

NCCL 是英伟达的 GPU 集合通信库,提供 all-reduce、all-gather 等优化原语,用于单机和多机训练。

Star
5,211
Fork
1,475
未关闭 Issue
466
最近提交
4天前

这是什么?

NCCL(发音类似 "Nickel")是一个独立的 GPU 集合通信库,实现了 all-reduce、all-gather、reduce、broadcast、reduce-scatter 以及基于 send/receive 的任意通信模式。它主要面向需要多块 GPU 快速交换数据的场景,例如分布式深度学习。

在单机内,NCCL 针对 PCIe、NVLink 和 NVSwitch 进行了带宽优化;跨节点时,可通过 InfiniBand Verbs 或 TCP/IP 套接字通信。它支持单机或多机上任意数量的 GPU,既可用于单进程应用,也可用于多进程(如 MPI)应用。

仓库提供库源码的 make 构建方式,并支持打包为 Debian、RPM、通用 tarball 以及 Python wheel。测试代码维护在独立的 nccl-tests 仓库中。

核心功能

  • 01实现 all-reduce、all-gather、reduce、broadcast、reduce-scatter 等集合通信操作
  • 02支持单机或多机上任意数量的 GPU
  • 03可经由 PCIe、NVLink、NVSwitch、InfiniBand Verbs 和 TCP/IP 套接字通信
  • 04同时适用于单进程和多进程(如 MPI)应用
  • 05支持从源码构建,也可打包为 deb、rpm、tarball 或 Python wheel

适用场景

  • 多 GPU 分布式深度学习训练中的梯度同步
  • 高性能计算任务中跨多块 GPU 交换张量数据
  • 配合 nccl-tests 测试套件评估互连带宽

快速上手

  1. 1

    从 NVIDIA 开发者页面下载官方 NCCL 构建版本

  2. 2

    从源代码构建库

    make -j src.build

使用前须知

  • 元数据中未明确许可证,使用前请先查看仓库的许可条款。
  • 从源码构建需要已安装 CUDA 工具包,并且需要 NVIDIA GPU。

收录于专题

标签

#gpu#cuda#distributed-training#collective-communication#deep-learning#hpc#communications#cpp#nvidia

常见问题

nccl 是什么?
NCCL 是英伟达的 GPU 集合通信库,提供 all-reduce、all-gather 等优化原语,用于单机和多机训练。 NCCL(发音类似 "Nickel")是一个独立的 GPU 集合通信库,实现了 all-reduce、all-gather、reduce、broadcast、reduce-scatter 以及基于 send/receive 的任意通信模式。它主要面向需要多块 GPU 快速交换数据的场景,例如分布式深度学习。
nccl 可以免费使用吗?用的什么许可证?
nccl 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
nccl 还在维护吗?
活跃维护中。nccl 最近一次提交是在 2026年11月3日。
nccl 适合用来做什么?
多 GPU 分布式深度学习训练中的梯度同步 高性能计算任务中跨多块 GPU 交换张量数据 配合 nccl-tests 测试套件评估互连带宽
nccl 怎么安装和运行?
从 NVIDIA 开发者页面下载官方 NCCL 构建版本 从源代码构建库: make -j src.build
在哪里获取 nccl?
源代码和安装说明在 GitHub 上:https://github.com/NVIDIA/nccl

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目

面向 HPC 与 AI 负载的统一集合通信库与 API,支持 CPU、GPU 及硬件加速器上的集合操作。

后端与 API#collectives#hpc#mpi
322+1 本周132CBSD-3-Clause维护活跃更新于 前天

开源 CUDA 学习笔记与代码合集,包含 200 多个内核,涵盖 HGEMM、FP8/FP4 GEMM 与 Flash-Attention。

学习资源#cuda#gpu#tensor-cores
1.2万+17 本周1275CudaGPL-3.0更新于 前天