Nccl
一、项目简介
NCCL(NVIDIA Collective Communications Library)是 NVIDIA 提供的多 GPU 集合通信库,实现了 AllReduce、Broadcast、AllGather 等高性能集合操作,并针对 GPU 拓扑做了优化,是大规模分布式训练通信层的基石。
二、核心特性
- 多 GPU / 多节点通信;
- 拓扑感知优化:自动利用 NVLink / NVSwitch / 网络结构;
- 丰富集合操作:AllReduce、Broadcast、ReduceScatter 等;
- 高带宽低延迟;
- 与主流框架集成(PyTorch、TensorFlow、Megatron 等);
- 支持 GPUDirect RDMA。
三、适用场景
- 分布式训练通信;
- 多卡 / 多机并行;
- 高性能计算(HPC)。
四、快速上手
# 通常随 PyTorch/CUDA 环境自动使用
# 示例:torch.distributed 使用 nccl 后端
import torch.distributed as dist
dist.init_process_group(backend="nccl")
五、注意事项
- 主要支持 NVIDIA 硬件;
- 需匹配驱动与 CUDA 版本;
- 节点间网络对性能影响显著。