NCCL基本介绍

前言

调研一下NCCL,所以在这里记录一下。

参考:

NCCL DOCUMENTATION
NCCL Slide
浅谈GPU通信和PCIe P2P DMA

简介

NCCL是NVIDIA的集合通信库,能实现Collective通信和点对点通信,关注与GPU间的通信,而不是一个并行编程框架。

collective communication
  • AllReduce
  • Broadcast
  • Reduce
  • AllGather
  • ReduceScatter
    此外,因为支持点对点通信,所以也允许scatter(one-to-all)、gather(all-to-one)和all-to-all通信。
支持多种GPU并行
  • 单机多卡
  • 多机多卡
  • 单线程控制多GPU
  • 多线程控制多GPU
  • 多进程控制多GPU
使用C语言的api

可被方便的调用。

底层通信

通信

  • 单机多卡:通过NVLink、PCIe进行通信。
  • 多机多卡:通过socket也就是以太网或者Infiniband进行通信。
PCIe

PCIe
在GPU之间的通信中,有两种:

  • CPU控制的GPU通信:
    GPU通信1
    GPU运算完成后,将数据同步给CPU,由CPU执行MPI通信。都需要通过PCIe。
  • GPU控制的GPU通信:
    GPU通信2
    GPU独立发起通信,并和网络设备进行同步。但是要消耗部分GPU计算资源来完成通信,并且GPU控制通信的效率可能并不高。同样需要经过PCIe。

以上两种情况应该都需要GPU的数据复制到CPU上作为中转。由于PCIe,GPU之间的通信限制到了几十Gb/s

NVLink:

能够提供比PCIe能快的传输速度,可通过桥接器连接两块NVIDIA显卡,实现上百GB/s的传输速度。而NVSwitch可将多个 NVLink 加以整合,实现多NVIDIA显卡互联。
NVLink

Infiniband:

是为大规模数据中心设计的网络架构,主要用在高性能计算领域。可以绕过操作系统内核创建应用程序间通信的直接通道,为应用程序提供延迟极低的消息传输服务。带宽高,延时低。带宽已经发展到400Gb/s

GPU Direct

参考:
P2P peer-to-peer on NVIDIA RTX 2080Ti vs GTX 1080Ti GPUs
浅析GPU通信技术

  • P2P:
    是解决一个节点内的GPU通信。
    • 简单来说就是实现GPU之间的相互通信,而不需要GPU的数据复制到CPU host memory上作为中转。
    • 如果将NVLink取代PCIe,其延迟更低,带宽更高。但是只在内存访问或GPU之间的传输。除非是IBM Power才能连接CPU。
      P2P
  • RDMA(Remote Direct Memory Access):
    GPU和网卡可以直接通过PCIe进行数据交互,避免了跨节点通信过程中内存和CPU的参与。从而实现GPU可以直接访问其他节点的GPU内存。
    RDMA
    实现既可以通过以太网也可以使用InfiniBand。
  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值