一文读懂GPU通信互联技术:到底什么是GPUDirect、NVLink、RDMA?

2024-02-26 15:44

本文主要是介绍一文读懂GPU通信互联技术:到底什么是GPUDirect、NVLink、RDMA?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家过年好哈,我是老猫,猫头鹰的猫。

在之前的文章中,我们详细介绍过PCIeRDMANVlinkCXL等互联技术。

但很多小伙伴在后台留言,想让我更系统的介绍GPU的通信互联技术,毕竟单篇技术的介绍,并不能让大家对GPU互联技术有一个系统全面的了解。

Image

所以,今天我们就通过这篇文章来详细的介绍下GPU通信互联技术。

为什么需要GPU互联技术?

我们都知道,在GPU未出现前,CPU一直是计算机中的绝对核心,甚至连存储、内存、网络等子系统的能力都是CPU说了算。

比如,一个CPU能够支持多大的内存,CPU都是有严格要求的。甚至同样一颗CPU,只是支持不同的内存,都能卖两个价格。

这也导致了Intel的"独断专行",其它人想对CPU做点"手脚"那是被限制的死死的,可以说Intel真正做到了"此路是我开,此树是我栽,要想此路过,留下买路财",这直接导致了英特尔在产品创新方面一直"挤牙膏"。

但人算不如天算,没想到大数据分析、AI、视觉渲染、基因分析以及EDR仿真等需求的突然爆发,给了NVIDIA的GPU带了巨大增长空间。

Image

GPU的快速增长超出了所有人的预料,它几乎彻底颠覆了CPU在计算机系统中的地位,而传统的根据CPU为核心设计的互联通信方式在GPU高速增长的情况下开始慢慢成为了阻碍,原有的通信技术已经成为效率阻碍。

比如,传统方式如果想把数据从存储系统转运到GPU显存中,由于历史原因此过程受CPU管理。随着计算负载从较慢的CPU转移到较快的GPU后,I/O逐渐成为系统的性能瓶颈。

面对这种情况,那么GPU就要在原有的计算机里"开路"了。

为了更好的让大家理解GPU互联技术,本文按照GPU的使用模式分为两种方式来讲解,分为单机多卡GPU互联技术多机多卡GPU通信技术

好不,不多说了,我们马上开始。

一、单机多卡GPU通信技术

谈到GPU"开路"的通信技术,我们就不得不聊到GPUDirect这项技术。

1、GPUDirect

GPUDirect是NVIDIA开发的一项技术,可实现GPU与其他设备(例如网络接口卡 (NIC) 和存储设备)之间的直接通信和数据传输,而不涉及CPU。

使用GPUDirect,网络适配器和存储驱动器可以直接读写GPU内存,减少不必要的内存消耗,减少CPU开销并降低延迟,从而显著提高性能。

Image

发展到今天,GPUDirect技术发展经历了四个阶段:

2010 年,GPU支持与网卡,存储等设备共享内存,即GPUDirect Shared Memory;

2011 年,NVIDIA推出GPUDirect P2P(Peer-to-Peer),支持同一PCIe 总线上的GPU之间的内存访问 ;

2012 年底,GPU Direct RDMA 完美的解决了计算集群节点间GPU卡PCIe 总线的通信问题。该技术将在多机的GPU通信中详细说明。

如今,GPUDirect 技术已经逐渐完善,形成了包括GPUDirect Storage、GPUDirect RDMA、GPUDirect P2P 和 GPUDirect Video四组重要技术的组合。

1)GPUDirect Storage

对AI和HPC应用而言,随着数据规模的不断扩大,数据加载时间对系统性能影响越发显著。随着GPU计算速度的快速提升,系统I/O(数据从存储读取到GPU显存)已经成为系统瓶颈。

Image

GPUDirect Storage提供本地存储(NVMe)/远程存储(NVMe over Fabric)与GPU显存的直接通路,它可以减少不必要的系统内存拷贝(通过bounce buffer)。它可应用网卡NIC和存储系统附近的DMA引擎,直接向GPU显存写入/读取数据。

Image

2)GPUDirect RDMA

RDMA (Remote direct memory access)技术可使外围PCIe设备直接访问GPU显存。GPUDirect RDMA被设计用来支持GPU间快速跨机通信。它能减轻CPU负载,同时也能减少不必要的通过系统内存进行的数据拷贝。

Image

GPUDirect RDMA在CUDA Toolkit中提供支持。您可联系网络供应商下载相关驱动,来使用RDMA功能。它对Tesla and Quadro GPU都是可用的。

3)GPUDirect for Video

GPUDirect for Video提供一个服务于frame-based的通过优化的流水线功能。设备包括:frame grabbers、video switchers、HD-SDI capture、CameraLink device,它可以把视频帧高效地向GPU显内中写入/读出。

Image

过去处理视频的第三方硬件与GPU交互时,会引入不必要的延迟,如图6左边所示。有了GPUDirect for Video技术,I/O设备和GPU可达到很好的同步(两个设备driver间拷贝数据),同时能减少CPU的负载。GPUDirect for Video由第三方公司的SDK提供,开发者对视频流进/出GPU(通过OpenGL, DirectX or CUDA在子帧的传输过程 )有充分的控制能力[7]。

4)GPUDirect P2P

GPUDirect P2P支持GPU之间通过memory fabric(PCIe或NVLink)直接进行数据拷贝。CUDA driver原生支持P2P技术,开发者可使用最新的CUDA Toolkit和driver来实现GPU间直接通信[6](一般用于机内通信)。

2、NVLink

介绍完GPU Direct技术后,我们来看一下另一项机内互联技术NVlink。

当训练数据不断增长时,PCIe 的带宽满足不了需求,会逐渐成为系统瓶颈。为提升多 GPU 之间的通信性能,充分发挥 GPU 的计算性能,NVIDIA 于 2016 年发布了全新架构的 NVLink。这项技术不仅仅是SLI技术的升级,而且是对GPU如何互连的根本性重新思考。

Image

NVLink 是一种高速、高带宽的互连技术,用于连接多个 GPU 之间或连接 GPU 与其他设备(如CPU、内存等)之间的通信。NVLink 提供了直接的点对点连接,具有比传统的 PCIe 总线更高的传输速度和更低的延迟。

NVLink代表了多GPU互连技术的逻辑演变,不仅在速度方面,而且在架构设计方面。NVLink的结构由可以双向传输数据的高速数据通道组成。与传统的基于总线的系统不同,NVLink采用点对点连接,有效减少瓶颈并提高数据吞吐量。最新的迭代提供高达900GB/s的带宽,比SLI的功能有了显着增强。

NVLink与众不同的关键功能之一是它支持网状拓扑的能力。与旧技术的菊花链或中心辐射型拓扑相比,网格设置允许GPU之间实现更通用且数量更多的连接。这在数据中心和高性能计算应用程序中特别有用,在这些应用程序中,复杂的数据路由是常态。

统一内存是NVLink的另一个特点。这允许GPU共享公共内存池,从而实现更高效的数据共享并减少在GPU之间复制数据的需要。这对于机器学习和大数据分析等应用程序来说是一个巨大的推动,在这些应用程序中,大型数据集通常超过单个GPU的内存容量。

NVLink还改善了延迟,这是任何高性能计算设置中的一个关键因素。较低的延迟可确保GPU之间更快的数据传输和同步,从而实现更高效的并行计算。这是通过NVLink的直接内存访问 (DMA) 功能实现的,允许GPU直接读写彼此的内存,而不需要CPU的参与。NVSwitch

NVLink技术无法使单服务器中8个GPU达到全连接,为解决该问题,NVIDIA 在2018年发布了NVSwitch,实现了NVLink的全连接。NVIDIA NVSwitch 是首款节点交换架构,可支持单个服务器节点中 16个全互联的GPU,并可使全部8个GPU对分别达到 300GB/s 的速度同时进行通信。

3、NVSwitch

单服务器中8个GPU卡可以依靠NVLink实现全连接。超过8个之后,就要依靠NVSwitch来实现了。

Image

NVIDIA NVSwitch将多个NVLink加以整合,在单个节点(如 NVIDIA HGX A100)内以NVLink的较高速度实现多对多的GPU通信,从而进一步提高互联性能。NVLink和NVSwitch 的结合使NVIDIA得以高效地将AI性能扩展到多个GPU,每个GPU都有12个连接NVSwitch 的NVLink链路,可实现高速的多对多通信

Image

二、多机之间GPU卡通信技术

随着大数据分析、科技计算、AI 计算等应用对算力需求巨大,单机形态已经不能满足用户需求,

多机多卡的计算是一个常态,多机间的通信是影响分布式训练的一个重要指标。在这里我们谈谈多机之间GPU卡的通信技术,主要有RDMA、GPUDirect RDMA和IP over InfiniBand等技术。

1、RDMA

在我们之前的《RDMA--让数据中心"狂飙"?》文中详解介绍过RDMA这个技术,有兴趣的可以转移到对应文章阅读。

在在传统的 TCP/IP 网络通信中,数据发送方需要将数据进行多次内存拷贝,并经过一系列的网络协议的数据包处理工作;数据接收方在应用程序中处理数据前,也需要经过多次内存拷贝和一系列的网络协议的数据包处理工作。经过这一系列的内存拷贝、数据包处理以及网络传输延时等,服务器间的通信时延往往在毫秒级别,不能够满足多机多卡场景对于网络通信的需求。

Image

RDMA(Remote Direct Memory Access)是一种绕过远程主机而访问其内存中数据的技术,解决网络传输中数据处理延迟而产生的一种远端内存直接访问技术。

目前 RDMA 有三种不同的技术实现方式:

InfiniBand(IB):IB是一种高性能互连技术,它提供了原生的RDMA支持。IB网络使用专用的IB适配器和交换机,通过RDMA操作实现节点之间的高速直接内存访问和数据传输。

RoCE(RDMA over Converged Ethernet):RoCE是在以太网上实现 RDMA 的技术。它使用标准的以太网作为底层传输介质,并通过使用RoCE 适配器和适当的协议栈来实现RDMA功能。

iWARP:iWARP是基于TCP/IP协议栈的RDMA实现。它使用普通的以太网适配器和标准的网络交换机,并通过在TCP/IP协议栈中实现RDMA功能来提供高性能的远程内存访问和数据传输。

Image

使用RDMA的优势如下:

零拷贝(Zero-copy) - 应用程序能够直接执行数据传输,在不涉及到网络软件栈的情况下。数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层。

内核旁路(Kernel bypass) - 应用程序可以直接在用户态执行数据传输,不需要在内核态与用户态之间做上下文切换。

不需要CPU干预(No CPU involvement) - 应用程序可以访问远程主机内存而不消耗远程主机中的任何CPU。远程主机内存能够被读取而不需要远程主机上的进程(或CPU)参与。远程主机的CPU的缓存(cache)不会被访问的内存内容所填充。

简单来说,RDMA更像一个去掉中间商的技术,让数据能够快速获取。不再在操作系统、CPU等环节浪费时间。

2、GPUDirect RDMA

GPUDirect RDMA 结合了GPU加速计算和 RDMA(Remote Direct Memory Access)技术,实现了在GPU和RDMA网络设备之间直接进行数据传输和通信的能力。它允许GPU直接访问RDMA网络设备中的数据,无需通过主机内存或CPU的中介。

Image

GPUDirect RDMA通过绕过主机内存和CPU,直接在GPU和RDMA网络设备之间进行数据传输,显著降低传输延迟,加快数据交换速度,并可以减轻 CPU负载,释放CPU的计算能力。另外,GPUDirect RDMA 技术允许GPU 直接访问RDMA网络设备中的数据,避免了数据在主机内存中的复制,提高了数据传输的带宽利用率

3、IPOIB(IP over InfiniBand)

IPOIB是一种在 InfiniBand 网络上运行IP协议的技术。它将标准的IP协议栈与 IB 互连技术相结合,使得在IB网络上的节点能够使用IP协议进行通信和数据传输。

IPOIB 提供了基于RDMA之上的IP网络模拟层,允许应用无修改的运行在 IB 网络上。但是,IPoIB仍然经过内核层(IP Stack),会产生大量系统调用,并且涉及CPU中断,因此IPoIB性能比RDMA通信方式性能要低,大多数应用都会采用RDMA方式获取高带宽低延时的收益,少数的关键应用会采用IPoIB 方式通信。

Image

在大规模计算中,单机多卡场景下使用GPUDiect、NVLink技术,分布式场景下使用 GPUDirect RDMA技术,可以大大缩短通信时间,提升整体性能。

Nvidia 数据中心明星产品

1、Magnum IO

Nvidia Magnum IO是数据中心IO的并行化、智能化架构,它是IO的加速平台。该架构最大限度地提升存储、网络、多节点和多GPU通讯性能,为大型语言模型、推荐系统、成像、仿真和科学研究等全球重要的应用优化实现加速。

Image

它可以最大化很多重要应用的存储、网络、多节点和多GPU通信性能。利用存储IO、网络IO、在网计算和IO管理简化和加速数据移动、访问、多GPU和多节点管理。Magnum IO支持Nvidia CUDA-X库,同时能利用一系列Nvidia GPU和Nvidia网络硬件拓扑实现高吞吐和低延迟。

2、DGX

DGX是一个完整的超级计算机,它是一套完整的人工智能解决方案,包括硬件设备、软件工具和优化,具有很高的集成度和易用性,适用于企业和研究机构。DGX的系列产品有:DGX-1、DGX-2、DGX A100、DGX H100、DGX GH200、DGX SuperPod、DGX BasePod。

3、HGX

HGX是一个计算模组,整合了NVIDIA GPU 、 NVLink 、 NVIDIA 网络以及全面优化的 AI 和高性能计算 (HPC) 软件堆栈的全部功能,可提供最高的应用性能并加快获得见解的速度。

虽然在系统完备性上不如DGX,但它可进行灵活的配置调整,适用于云服务提供商和大型数据中心。HGX的系列产品有:HGX A100、HGX H100、HGX H200。

总结:

本文主要介绍了GPU间通信技术,包括单机多卡间的GPUDirect 和NVLink 技术,多机多卡间的RDMA、IPOIB以及GPUDirect RDMA 技术。在大规模计算中,单机场景下使用NVLink技术,分布式场景下使用GPUDirect RDMA技术,可以极大的缩短通信时间,提升整体性能。欢迎大家持续关注。

END

这篇关于一文读懂GPU通信互联技术:到底什么是GPUDirect、NVLink、RDMA?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/749363

相关文章

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

一文带你搞懂Nginx中的配置文件

《一文带你搞懂Nginx中的配置文件》Nginx(发音为“engine-x”)是一款高性能的Web服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中,下面就跟随小编一起来了解下如何... 目录摘要一、Nginx 配置文件结构概述二、全局配置(Global Configuration)1. w

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2