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 的优点

  1. 性能
    NCCL方便地消除了开发人员优化特定机器应用程序的需求。NCCL在节点内和节点之间的多个GPU上提供快速集合。
    2、 易于编程
    NCCL使用一个简单的C API,可以从各种编程语言轻松访问。NCCL密切关注MPI(消息传递接口)定义的流行集体API。
  2. 兼容性
    NCCL几乎与任何多GPU并行化模型兼容,例如:单线程、多线程(每个GPU使用一个线程)和多进程(MPI与GPU上的多线程操作相结合)。

主要功能

  1. AMD、ARM、PCI Gen4和IB HDR上高带宽路径的自动拓扑检测
  2. 使用SHARPV2,网络内的峰值带宽最高可减少2倍的操作
  3. 图形搜索带宽最高、延迟最小的最佳环和树集
  4. 支持多线程和多进程应用程序
  5. InfiniBand动词、libfabric、RoCE和IP套接字节点间通信
  6. 使用InfiniBand自适应路由重新路由流量并缓解端口拥堵

nvidia-nccl相关推荐

  1. NVIDIA NCCL优化——利用共享内存实现比NCCL更快的集合通信

    简介 从 2080Ti 这一代显卡开始,所有的民用游戏卡都取消了 P2P copy,导致训练速度显著的变慢.针对这种情况下的单机多卡训练,MegEngine中实现了更快的集合通信算法,对多个不同的网络 ...

  2. NVIDIA NCCL 源码学习(五)- 路径计算

    上节NCCL完成了对机器PCI系统拓扑的建图,其中建好的图如下所示,其中GPU之间是通过NVLink连接起来的 为了方便之后的搜索channel,接下来NCCL会先计算GPU和NIC节点到其他任意节点 ...

  3. NVIDIA NCCL 源码学习(六)- channel搜索

    上节讲到我们已经计算出GPU和NIC节点到其他任意节点的最优路径了,本节看下nccl中channel的搜索过程. nccl中channel的概念表示一个通信路径,为了更好的利用带宽和网卡,以及同一块数 ...

  4. NVIDIA NCCL 源码学习(八)- 数据通信链路transport的建立

    上节以ringGraph为例介绍了机器间channel的连接过程,现在环里每个rank都知道了从哪个rank接收数据以及将数据发送给哪个rank,本节具体介绍下P2P和rdma NET场景下数据通信链 ...

  5. NVIDIA NCCL 源码学习(四)- 建图过程

    上次分析到nccl对机器PCI系统进行拓扑分析的过程,产出的结果为xml格式,接下来,nccl会根据这个xml进图的建立过程以便之后进行路径搜索. ncclTopoGetSystem的最后会执行ncc ...

  6. NVIDIA NCCL 源码学习(一)- 初始化及ncclUniqueId的产生

    NCCL是英伟达开源的GPU通信库,支持集合通信和点对点通信 看下官方给的一个demo #include <stdio.h> #include "cuda_runtime.h&q ...

  7. NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程

    上节介绍了通信链路的建立过程,本节介绍下单机内部ncclSend和ncclRecv的运行过程. 单机内的通信都是通过kernel来进行的,所以整个通信的过程可以分为两步,第一步是准备kernel相关的 ...

  8. NVIDIA NCCL 源码学习(七)- 机器间channel连接

    上节中完成了单机内部的channel搜索,仍然以ringGraph为例的话,相当于在单台机器内部搜索出来了一系列的环,接下来需要将机器之间的环连接起来. 为了方便理解假设两机十六卡的情况下第一台机器的 ...

  9. NVIDIA NCCL 源码学习(二)- bootstrap网络连接的建立

    上次介绍到rank0的机器生成了ncclUniqueId,并完成了机器的bootstrap网络和通信网络的初始化,这节接着看下所有节点间bootstrap的连接是如何建立的 rank0节点执行nccl ...

  10. NVIDIA英伟达的Multi-GPU多卡通信框架NCCL

    NVIDIA英伟达的Multi-GPU多卡通信框架NCCL 笔者注:NCCL 开源项目地址:https://github.com/NVIDIA/nccl 转自:https://www.zhihu.co ...

最新文章

  1. C# MoreLinq 扩展安装
  2. bitmap格式分析
  3. 小米网络推广连夜更换品牌LOGO——科技越是进化就越接近生命的形态
  4. vmware linux系统 ip,修改虚拟机上Linux系统的IP地址
  5. sql server 更改端口之后的登入方式
  6. 思考设计模式在自助终端软件上的应用 ——Observer(观察着)模式
  7. php年龄查询表单设计,PHP 处理表单
  8. MySQL 常用需求写法 记录一下
  9. 二进制(1):无符号编码和补码编码
  10. 计算机系统结构安全检测,信息安全体系结构安全测评实验报告.doc
  11. VMware ESXI 虚拟磁盘工具 - vmkfstools 使用实例
  12. Linux NFS存储服务部署
  13. php后台登陆页面代码
  14. 深度学习入门:一句话告诉你什么是神经网络(CNN,RNN,DNN)
  15. 【qq语音获取好友ip】wireshark
  16. 一键生成合成微信好友墙
  17. 目前流行的数据分析软件有哪些?
  18. 《文明的冲突与世界秩序的重建》摘
  19. 用X64 Native tools command promt for vs安装ROS
  20. 非线性规划求解_突破 | 杉数求解器COPT首发求解内点法

热门文章

  1. 干货!从AI应用的五大要素看,AI产业存在哪些机会?(算力算法)
  2. Engine中如何实现ArcMap中的Split Polygons
  3. cpuz测试分数天梯图_CPU天梯图 Cinebench R15(多核)跑分
  4. 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理
  5. 微信小程序 逆向还原
  6. html 未读消息红点,消息未读之点不完的小红点(Node+Websocket)
  7. 【Linux学习笔记】管理Linux操作系统:软件安装
  8. inventor软件绘制百叶窗方法_Inventor教程之工具面板上的编辑功能
  9. 飞浆AI studio人工智能课程学习(2)-Prompt优化思路|十个技巧高效优化Prompt|迭代法|Trick法|通用法|工具辅助
  10. (转)证券公司私募(PB)整体服务