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

可被方便的调用。

底层通信

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

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

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

NVLink:

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

NCCL基本介绍
; 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。
    NCCL基本介绍
  • RDMA(Remote Direct Memory Access):
    GPU和网卡可以直接通过PCIe进行数据交互,避免了跨节点通信过程中内存和CPU的参与。从而实现GPU可以直接访问其他节点的GPU内存。
    NCCL基本介绍
    实现既可以通过以太网也可以使用InfiniBand。

Original: https://blog.csdn.net/qq_43219379/article/details/123436895
Author: eecspan
Title: NCCL基本介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/617384/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球