浅析GPU通信技术(下)-GPUDirect RDMA

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 目录 浅析GPU通信技术(上)-GPUDirect P2P 浅析GPU通信技术(中)-NVLink 浅析GPU通信技术(下)-GPUDirect RDMA 1. 背景         前两篇文章我们介绍的GPUDirect P2P和NVLink技术可以大大提升GPU服务器单机的GPU通信性...

目录

浅析GPU通信技术(上)-GPUDirect P2P

浅析GPU通信技术(中)-NVLink

浅析GPU通信技术(下)-GPUDirect RDMA

1. 背景

        前两篇文章我们介绍的GPUDirect P2P和NVLink技术可以大大提升GPU服务器单机的GPU通信性能,当前深度学习模型越来越复杂,计算数据量暴增,对于大规模深度学习训练任务,单机已经无法满足计算要求,多机多卡的分布式训练成为了必要的需求,这个时候多机间的通信成为了分布式训练性能的重要指标。

        本篇文章我们就来谈谈GPUDirect RDMA技术,这是用于加速多机间GPU通信的技术。

2. RDMA介绍

        我们先来看看RDMA技术是什么?RDMA即Remote DMA,是Remote Direct Memory Access的英文缩写。

2.1 DMA原理

        在介绍RDMA之前,我们先来复习下DMA技术。

        我们知道DMA(直接内存访问)技术是Offload CPU负载的一项重要技术。DMA的引入,使得原来设备内存与系统内存的数据交换必须要CPU参与,变为交给DMA控制来进行数据传输。

        直接内存访问(DMA)方式,是一种完全由硬件执行I/O交换的工作方式。在这种方式中, DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和IO设备之间进行。DMA工作时,由DMA 控制器向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向CPU 报告传送操作的结束。

        使用DMA方式的目的是减少大批量数据传输时CPU 的开销。采用专用DMA控制器(DMAC) 生成访存地址并控制访存过程。优点有操作均由硬件电路实现,传输速度快;CPU 基本不干预,仅在初始化和结束时参与,CPU与外设并行工作,效率高。

2.2 RMDA原理

        RDMA则是在计算机之间网络数据传输时Offload CPU负载的高吞吐、低延时通信技术。

        如上图所示,传统的TCP/IP协议,应用程序需要要经过多层复杂的协议栈解析,才能获取到网卡中的数据包,而使用RDMA协议,应用程序可以直接旁路内核获取到网卡中的数据包。

        RDMA可以简单理解为利用相关的硬件和网络技术,服务器1的网卡可以直接读写服务器2的内存,最终达到高带宽、低延迟和低资源利用率的效果。如下图所示,应用程序不需要参与数据传输过程,只需要指定内存读写地址,开启传输并等待传输完成即可。

        在实现上,RDMA实际上是一种智能网卡与软件架构充分优化的远端内存直接高速访问技术,通过在网卡上将RDMA协议固化于硬件,以及支持零复制网络技术和内核内存旁路技术这两种途径来达到其高性能的远程直接数据存取的目标。

        (1)零复制:零复制网络技术使网卡可以直接与应用内存相互传输数据,从而消除了在应用内存与内核之间复制数据的需要。因此,传输延迟会显著减小。

        (2)内核旁路:内核协议栈旁路技术使应用程序无需执行内核内存调用就可向网卡发送命令。在不需要任何内核内存参与的条件下,RDMA请求从用户空间发送到本地网卡并通过网络发送给远程网卡,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数。

        在具体的远程内存读写中,RDMA操作用于读写操作的远程虚拟内存地址包含在RDMA消息中传送,远程应用程序要做的只是在其本地网卡中注册相应的内存缓冲区。远程节点的CPU除在连接建立、注册调用等之外,在整个RDMA数据传输过程中并不提供服务,因此没有带来任何负载。

2.3 RDMA实现

        如下图RMDA软件栈所示,目前RDMA的实现方式主要分为InfiniBand和Ethernet两种传输网络。而在以太网上,又可以根据与以太网融合的协议栈的差异分为iWARP和RoCE(包括RoCEv1和RoCEv2)。

        其中,InfiniBand是最早实现RDMA的网络协议,被广泛应用到高性能计算中。但是InfiniBand和传统TCP/IP网络的差别非常大,需要专用的硬件设备,承担昂贵的价格。相比之下RoCE和iWARP的硬件成本则要低的多。

3. GPUDirect RDMA介绍

3.1 原理

        有了前文RDMA的介绍,从下图我们可以很容易明白,所谓GPUDirect RDMA,就是计算机1的GPU可以直接访问计算机2的GPU内存。而在没有这项技术之前,GPU需要先将数据从GPU内存搬移到系统内存,然后再利用RDMA传输到计算机2,计算机2的GPU还要做一次数据从系统内存到GPU内存的搬移动作。GPUDirect RDMA技术使得进一步减少了GPU通信的数据复制次数,通信延迟进一步降低。

3.2 使用

        需要注意的是,要想使用GPUDirect RDMA,需要保证GPU卡和RDMA网卡在同一个ROOT COMPLEX下,如下图所示:

3.3 性能

        Mellanox网卡已经提供了GPUDirect RDMA的支持(既支持InfiniBand传输,也支持RoCE传输)。

        下图分别是使用OSU micro-benchmarks在Mellanox的InfiniBand网卡上测试的延时和带宽数据,可以看到使用GPUDirect RDMA技术后延时大大降低,带宽则大幅提升:

        下图是一个实际的高性能计算应用的性能数据(使用HOOMD做粒子动态仿真),可以看到随着节点增多,使用GPUDirect RDMA技术的集群的性能有明显提升,最多可以提升至2倍:

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
4月前
|
人工智能 缓存 调度
技术改变AI发展:RDMA能优化吗?GDR性能提升方案(GPU底层技术系列二)
随着人工智能(AI)的迅速发展,越来越多的应用需要巨大的GPU计算资源。GPUDirect RDMA 是 Kepler 级 GPU 和 CUDA 5.0 中引入的一项技术,可以让使用pcie标准的gpu和第三方设备进行直接的数据交换,而不涉及CPU。
135618 6
|
11天前
|
存储 机器学习/深度学习 并行计算
GPU通信互联技术:GPUDirect、NVLink与RDMA
在高性能计算和深度学习领域,GPU已成为关键工具。然而,随着模型复杂度和数据量的增加,单个GPU难以满足需求,多GPU甚至多服务器协同工作成为常态。本文探讨了三种主要的GPU通信互联技术:GPUDirect、NVLink和RDMA。GPUDirect通过绕过CPU实现GPU与设备直接通信;NVLink提供高速点对点连接和支持内存共享;RDMA则在网络层面实现直接内存访问,降低延迟。这些技术各有优势,适用于不同场景,为AI和高性能计算提供了强大支持。
|
29天前
|
SQL 存储 分布式计算
神龙大数据加速引擎MRACC问题之RDMA技术帮助大数据分布式计算优化如何解决
神龙大数据加速引擎MRACC问题之RDMA技术帮助大数据分布式计算优化如何解决
24 0
|
3月前
|
人工智能 数据管理 vr&ar
终极 GPU 互联技术探索:消失的内存墙
【6月更文挑战第9天】GPU在各领域广泛应用,但内存墙问题限制了性能提升。为解决此问题,研究人员发展GPU互联技术,如NVIDIA的NVLink,实现高速通信,提高系统性能。此外,先进内存技术(如HBM)和智能数据管理策略也在助力突破内存墙。未来,随着GPU互联技术的不断创新,内存墙将被逐步消除,为AI、虚拟现实等领域带来更强计算能力。
90 1
|
4月前
|
人工智能 弹性计算 安全
【Hello AI】GPU容器共享技术cGPU
GPU容器共享技术cGPU是阿里云基于内核虚拟GPU隔离的容器共享技术。即多个容器共享一张GPU卡,从而实现业务的安全隔离,提高GPU硬件资源的利用率并降低使用成本。
【Hello AI】GPU容器共享技术cGPU
|
4月前
|
人工智能 弹性计算 Ubuntu
【Hello AI】安装并使用Deepnccl-多GPU互联的AI通信加速库
Deepnccl是为阿里云神龙异构产品开发的用于多GPU互联的AI通信加速库,能够无感地加速基于NCCL通信算子调用的分布式训练或多卡推理等任务。本文主要介绍在Ubuntu或CentOS操作系统的GPU实例上安装和使用Deepnccl的操作方法。
|
4月前
|
人工智能 弹性计算 缓存
带你读《弹性计算技术指导及场景应用》——2. 技术改变AI发展:RDMA能优化吗?GDR性能提升方案
带你读《弹性计算技术指导及场景应用》——2. 技术改变AI发展:RDMA能优化吗?GDR性能提升方案
177 1
|
Linux Anolis 异构计算
关于远程直接内存访问技术 RDMA 的高性能架构设计介绍
本文介绍 RDMA 技术的基本原理及交流在工程上的设计思路。
|
11月前
|
缓存 人工智能 算法
Nvidia_Mellanox_CX5和6DX系列网卡_RDMA_RoCE_无损和有损_DCQCN拥塞控制等技术简介-一文入门RDMA和RoCE有损无损
Nvidia_Mellanox_CX5和6DX系列网卡_RDMA_RoCE_无损和有损_DCQCN拥塞控制等技术简介-一文入门RDMA和RoCE有损无损
1091 0
|
弹性计算 人工智能 网络协议
揭秘!CIPU最新秘密武器–弹性RDMA的技术解析与实践
弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA),是阿里云自研的云上弹性RDMA网络,底层链路复用VPC网络,采用全栈自研的拥塞控制CC(Congestion Control )算法,兼具传统RDMA网络高吞吐、低延迟特性,同时支持秒级的大规模RDMA组网。基于弹性RDMA,开发者可以将HPC应用软件部署在云上,获取成本更低、弹性更好的高性能应用集群;也可以将VPC网络替换成弹性RDMA网络,加速应用性能。
揭秘!CIPU最新秘密武器–弹性RDMA的技术解析与实践

热门文章

最新文章