NVIDIA NCCL

NVIDIA 集合通信库 (NCCL) 可实现针对 NVIDIA GPU 和网络进行性能优化的多 GPU 和多节点通信基元。NCCL 提供了 all-gather、all-reduce、broadcast、reduce、reduce-scatter、point-to-point send 和 receive 等例程,这些例程均经过优化,可通过节点内的 PCIe 和 NVLink 高速互联以及节点间的 NVIDIA Mellanox 网络实现高带宽和低延迟。

先进的深度学习框架(例如 Caffe2ChainerMxNetPyTorchTensorFlow)已集成 NCCL,以在多 GPU 多节点的系统上加快深度学习训练速度。

NCCL 既可作为 NVIDIA HPC SDK 的一部分下载,也可作为适用于 Ubuntu 和 Red Hat 的单独软件包下载。







性能

使用 NCCL,开发者无需针对特定机器优化其应用,因而更加便捷。NCCL 可在节点内和节点间实现多个 GPU 的快速集合。

简化编程

NCCL 使用可从多种编程语言轻松访问的简单 C API,且严格遵循 MPI(消息传递接口)定义的主流集合 API。

兼容性

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



主要特性

  • 对 AMD、ARM、PCI Gen4 和 IB HDR 上的高带宽路径进行自动拓扑检测
  • 凭借利用 SHARPV2 的网络内 all reduce 操作,将峰值带宽提升 2 倍
  • 通过图形搜索,找到更佳的高带宽、低延迟的环和树集合
  • 支持多线程和多进程应用
  • InfiniBand verbs、libfabric、RoCE 和 IP Socket 节点间通信
  • 使用 Infiniband 动态路由重新路由流量,缓解端口拥塞


资源





准备好开始使用 NCCL 开发了吗?


下载 NCCL