NCCL相关笔记

这篇具有很好参考价值的文章主要介绍了NCCL相关笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文仅代表个人观点,不保证正确性。

一、NCCL简介

1.什么是NCCL

NCCL是NVIDIA集合通信库(NVIDIA Collective Communications Library)的简称,是用于加速多GPU之间通信的库,能够实现集合通信和点对点通信。NCCL在通信方面做了很多优化,能实现Collective通信和点对点通信,能够在同一节点内或不同的节点之间提供快速的GPU通信服务,支持多种互连技术,在同一节点内包括NVLink、PCIe、Shared memory、GPU Direct P2P,在不同的节点间支持GPU Direct RDMA、Infiniband、socket

NCCL相关笔记,笔记,网络,p2p

下面是NCCL在神经网络训练的整体架构示意图。在这个架构中,最顶层的灰色矩形方框代表的是深度学习框架,这个框架需要三个部分,CUDNN是一个深度学习库,实现并优化了多种神经网络的算法,加快了深度学习训练的速度,CUBLAS线性代数库,提供常见的线性代数操作,很好地支持深度学习框架,NCCL用于加速多GPU之间通信。NCCL、CUDNN、CUBLAS的底层都需要CUDA库的支持才能实现。CUDA提供一些接口可以方便地编写GPU程序,并可以在多个 GPU上并行运行。

NCCL相关笔记,笔记,网络,p2p

2.GPU的通信方式

在NCCL出现之前,GPU之间常见的通信方式是使用MPI(Message Passing Interface)来实现,MPI是一种用于编写并行程序的标准接口,它可以在多台计算机之间进行消息传递和同步操作。在使用MPI时,GPU可以将数据复制到主机内存中,然后通过MPI发送到其他GPU的主机内存中。在同一主机中,GPU之间可以通过CUDA API提供的点对点通信功能,如果使用相同的PCIE总线来实现,这种通信方式可以省去将数据从GPU复制到主机内存这一步骤,减少数据拷贝的开销。

3.NCCL的优势

NCCL可以实现单机多卡、多机多卡之间的通信,将通信方式进行了整合和优化,在节点内和节点间的多个GPU上提供快速的集合通信服务,同时支持各种互连技术,包括PCIe、NVLINK、InfiniBand Verbs和IP socket,NCCL与大多数的多GPU并行化模型都能很好地兼容。

二、常见的相关技术

1.NVLink

NCCL相关笔记,笔记,网络,p2p

 在NVLINK方案推出之前,为了获得更多的强力计算节点,多个GPU通常与PCIe Switch直接与CPU相连,但是这种方案受制于PCIE的带宽,为了应对这一问题,提出了新的互联架构NVLink,NVLink不但可以实现GPU之间以及GPU和CPU之间的互联,还可以实现CPU之间的互联

 

nvlink是一种双工双路信道,nvlink 二代的信号传输率到了25Gb/s,双信道总计50GB/s,同时提升了nvlink数到6路,每个v100的总带宽达到了300GB/s,第四代NVLINK的速度达到了900GB/s.

NCCL相关笔记,笔记,网络,p2p

 2.GDR

GDR(GPU Direct RDMA)是一种GPU与远程GPU直接通信的技术,以RDMA技术为基础,GPU通过与同一PCIE switch相连的RNIC与远程的GPU直接通信。与之前的技术相比,这一过程不需要CPU的参与,省去了系统内存拷贝这一步骤,减少了PCIE的传输次数

NCCL相关笔记,笔记,网络,p2p

三、NCCL数据通信链路的选择

为指定通道选择可用的传输方案使用selectTransport函数,首先获取本地节点和远程节点的相关信息,然后针对每种可用的传输方式调用canConnect()函数来检查是否能够使用该传输方式进行通信。传输方式选择的顺序依次为P2P>SHM>netTransport>collnet,找到可以使用的传输方式后,该函数调用setup()进行配置连接,并将传输方式存储在相应的连接器(connector)中。最后该函数将选择的传输方式存储在transportType指针中,以便后续使用

ncclTopoSelectNets用于在拓扑系统中为指定 GPU 设备选择合适的网络,该函数为每个要通信的GPU生成一个list,对于每个GPU节点,该函数筛选具有匹配类型的NIC,并将结果存储在本地NIC计数器(localNetCount)和本地NIC索引列表(localNets)中,然后使用NVML设备对本地NIC索引列表进行shuffle,确保同一PCI交换机上的多个GPU不会同时使用同一个NIC,最后将每个新找到的NIC添加到nets中文章来源地址https://www.toymoban.com/news/detail-629030.html

 

到了这里,关于NCCL相关笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络穿透 P2P 穿透 UDP打洞、TCP打洞 原理

    经常听到 网络穿透 P2P 穿透 UDP打洞、TCP打洞 以前只是 知道网络底层的底层的一些知识 接触过 网络穿透 P2P 穿透 UDP打洞、TCP打洞 现在做个笔记: P2P穿透是一种技术,用于在两个或多个设备之间建立直接的点对点连接,而无需依赖中间服务器进行转发。它可以帮助设备在NA

    2024年02月15日
    浏览(40)
  • 去中心化和p2p网络以及中心化为核心的传统通信

    去中心化 P2P通信及其协议实现去中心化 如大数据文件的分布存储 如视频网站服务器 1.p2p网络: 优点: 缺点: 存储应用: 2.典型案例; IPFS: 分布式协议系统 3.完全去中心化应用:基于p2p的区块链+IPFS 注释:中心化(点对点) 传统通信:PSTN的树状架构 注释:互联网中心化平

    2024年02月10日
    浏览(43)
  • 【Java 基础篇】Java网络编程实战:P2P文件共享详解

    Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。 P2P(Peer-to-Peer)文件共享是一种分布式计算模型,其中每个

    2024年02月07日
    浏览(39)
  • P2P网络应用层多播树的建立及维护的解析

    一、什么是对等网络 P2P P2P一般指对等网络 对等计算(Peer to Peer,简称p2p)可以简单的定义成通过直接交换来共享计算机资源和服务,而对等计算模型应用层形成的网络通常称为对等网络。在P2P网络环境中,成千上万台彼此连接的计算机都处于对等的地位,整个网络一般来说

    2024年02月07日
    浏览(82)
  • 路由 OSPF常见4种网络类型MA、P2P、NBMA、P2MP、OSPF报头字段信息简介。

    4.2.1 路由 OSPF(OSPF常见4种网络类型、OSPF报头信息) OSPF应用于不同网络类型下时的报文交互、工作机制都会有所不同。 以下四种网络类型中,我们常见且常用的网络类型就是广播类型。 广播类型网络(Broadcast/MA) 默认链路协议为Ethernet、FDDI,该链路的OSPF网络类型为广播类

    2024年02月03日
    浏览(54)
  • P2P 应用

    ·在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网 用户之间传输 。 ·Napster 最早 使用 P2P 技术,提供免费下载 MP3 音乐。 ·Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服务器中。 ·使用者只要查找目录服务器,就可知道应从何处下载所要的 MP3 文件

    2024年02月19日
    浏览(43)
  • 什么是P2P?

    P2P (Peer-to-Peer) 是一种分布式的网络架构,其中各个节点(通常被称为“peers”或“节点”)直接进行数据共享和交换,而无需依赖中央服务器。P2P 网络强调平等的参与和共享,每个节点既可以是数据的消费者(下载者),也可以是提供者(上传者)。 以下是 P2P 协议和技术的

    2024年02月13日
    浏览(52)
  • P2P通信基本原理

    在数字世界的脉络中,点对点(P2P)技术如同一条悄无声息的河流,流经信息的每个角落,连接着世界各地的计算机和设备。这种去中心化的网络模型,不仅打破了传统的客户端-服务器架构的界限,还赋予了数据传输一种前所未有的自由和效率。通过P2P,每个参与者既是消费

    2024年04月16日
    浏览(48)
  • P2P协议的传输艺术

    TP 采用两个 TCP 连接来传输一个文件。 控制连接:服务器以被动的方式,打开众所周知用于 FTP 的端口 21,客户端则主动发起连接。该连接将命令从客户端传给服务器,并传回服务器的应答。常用的命令有:list——获取文件目录;reter——取一个文件;store——存一个文件。

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包