NVIDIA集体通信库(NCCL)实现了针对NVIDIA GPU和网络优化的多GPU和多节点 通信原语。
NCCL提供全收集、全减、广播、减少、减少散射以及点对点发送和接收等例程,这些例程经过优化,通过节点内和NVIDIA Mellanox网络通过PCIe和NVLink高速互连实现高带宽和低延迟。
Caffe2、Chainer、MxNet、PyTorch和TensorFlow等领先的深度学习框架集成了NCCL,以加快多GPU多节点系统的深度学习培训。
NCCL可作为NVIDIA HPC SDK的一部分以及Ubuntu和Red Hat的单独软件包下载。
nccl 的优点
- 性能
NCCL方便地消除了开发人员优化特定机器应用程序的需求。NCCL在节点内和节点之间的多个GPU上提供快速集合。
2、 易于编程
NCCL使用一个简单的C API,可以从各种编程语言轻松访问。NCCL密切关注MPI(消息传递接口)定义的流行集体API。 - 兼容性
NCCL几乎与任何多GPU并行化模型兼容,例如:单线程、多线程(每个GPU使用一个线程)和多进程(MPI与GPU上的多线程操作相结合)。
主要功能
- AMD、ARM、PCI Gen4和IB HDR上高带宽路径的自动拓扑检测
- 使用SHARPV2,网络内的峰值带宽最高可减少2倍的操作
- 图形搜索带宽最高、延迟最小的最佳环和树集
- 支持多线程和多进程应用程序
- InfiniBand动词、libfabric、RoCE和IP套接字节点间通信
- 使用InfiniBand自适应路由重新路由流量并缓解端口拥堵