nvidia-nccl
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自适应路由重新路由流量并缓解端口拥堵
nvidia-nccl相关推荐
- NVIDIA NCCL优化——利用共享内存实现比NCCL更快的集合通信
简介 从 2080Ti 这一代显卡开始,所有的民用游戏卡都取消了 P2P copy,导致训练速度显著的变慢.针对这种情况下的单机多卡训练,MegEngine中实现了更快的集合通信算法,对多个不同的网络 ...
- NVIDIA NCCL 源码学习(五)- 路径计算
上节NCCL完成了对机器PCI系统拓扑的建图,其中建好的图如下所示,其中GPU之间是通过NVLink连接起来的 为了方便之后的搜索channel,接下来NCCL会先计算GPU和NIC节点到其他任意节点 ...
- NVIDIA NCCL 源码学习(六)- channel搜索
上节讲到我们已经计算出GPU和NIC节点到其他任意节点的最优路径了,本节看下nccl中channel的搜索过程. nccl中channel的概念表示一个通信路径,为了更好的利用带宽和网卡,以及同一块数 ...
- NVIDIA NCCL 源码学习(八)- 数据通信链路transport的建立
上节以ringGraph为例介绍了机器间channel的连接过程,现在环里每个rank都知道了从哪个rank接收数据以及将数据发送给哪个rank,本节具体介绍下P2P和rdma NET场景下数据通信链 ...
- NVIDIA NCCL 源码学习(四)- 建图过程
上次分析到nccl对机器PCI系统进行拓扑分析的过程,产出的结果为xml格式,接下来,nccl会根据这个xml进图的建立过程以便之后进行路径搜索. ncclTopoGetSystem的最后会执行ncc ...
- NVIDIA NCCL 源码学习(一)- 初始化及ncclUniqueId的产生
NCCL是英伟达开源的GPU通信库,支持集合通信和点对点通信 看下官方给的一个demo #include <stdio.h> #include "cuda_runtime.h&q ...
- NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程
上节介绍了通信链路的建立过程,本节介绍下单机内部ncclSend和ncclRecv的运行过程. 单机内的通信都是通过kernel来进行的,所以整个通信的过程可以分为两步,第一步是准备kernel相关的 ...
- NVIDIA NCCL 源码学习(七)- 机器间channel连接
上节中完成了单机内部的channel搜索,仍然以ringGraph为例的话,相当于在单台机器内部搜索出来了一系列的环,接下来需要将机器之间的环连接起来. 为了方便理解假设两机十六卡的情况下第一台机器的 ...
- NVIDIA NCCL 源码学习(二)- bootstrap网络连接的建立
上次介绍到rank0的机器生成了ncclUniqueId,并完成了机器的bootstrap网络和通信网络的初始化,这节接着看下所有节点间bootstrap的连接是如何建立的 rank0节点执行nccl ...
- NVIDIA英伟达的Multi-GPU多卡通信框架NCCL
NVIDIA英伟达的Multi-GPU多卡通信框架NCCL 笔者注:NCCL 开源项目地址:https://github.com/NVIDIA/nccl 转自:https://www.zhihu.co ...
最新文章
- C# MoreLinq 扩展安装
- bitmap格式分析
- 小米网络推广连夜更换品牌LOGO——科技越是进化就越接近生命的形态
- vmware linux系统 ip,修改虚拟机上Linux系统的IP地址
- sql server 更改端口之后的登入方式
- 思考设计模式在自助终端软件上的应用 ——Observer(观察着)模式
- php年龄查询表单设计,PHP 处理表单
- MySQL 常用需求写法 记录一下
- 二进制(1):无符号编码和补码编码
- 计算机系统结构安全检测,信息安全体系结构安全测评实验报告.doc
- VMware ESXI 虚拟磁盘工具 - vmkfstools 使用实例
- Linux NFS存储服务部署
- php后台登陆页面代码
- 深度学习入门:一句话告诉你什么是神经网络(CNN,RNN,DNN)
- 【qq语音获取好友ip】wireshark
- 一键生成合成微信好友墙
- 目前流行的数据分析软件有哪些?
- 《文明的冲突与世界秩序的重建》摘
- 用X64 Native tools command promt for vs安装ROS
- 非线性规划求解_突破 | 杉数求解器COPT首发求解内点法
热门文章
- 干货!从AI应用的五大要素看,AI产业存在哪些机会?(算力算法)
- Engine中如何实现ArcMap中的Split Polygons
- cpuz测试分数天梯图_CPU天梯图 Cinebench R15(多核)跑分
- 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理
- 微信小程序 逆向还原
- html 未读消息红点,消息未读之点不完的小红点(Node+Websocket)
- 【Linux学习笔记】管理Linux操作系统:软件安装
- inventor软件绘制百叶窗方法_Inventor教程之工具面板上的编辑功能
- 飞浆AI studio人工智能课程学习(2)-Prompt优化思路|十个技巧高效优化Prompt|迭代法|Trick法|通用法|工具辅助
- (转)证券公司私募(PB)整体服务