DevZone | NVIDIA集合通信库(NCCL)
2022-08-02 10:57
NVIDIA 集合通信库(NCCL)可实现针对 NVIDIA GPU 和网络进行性能优化的多 GPU 和多节点通信基元。
关于 NVIDIA 集合通信库(NCCL)
NCCL 提供了 all-gather、all-reduce、broadcast、reduce、reduce-scatter、point-to-point send 和 receive 等例程,这些例程均经过优化,可通过节点内的 PCIe 和 NVLink 高速互联以及节点间的 NVIDIA Mellanox 网络实现高带宽和低延迟。
先进的深度学习框架(例如 Caffe2、Chainer、MXNet、PyTorch和 TensorFlow)已集成 NCCL,以在多 GPU 多节点的系统上加快深度学习训练速度。
便捷性能
使用 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 动态路由重新路由流量,缓解端口拥塞