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

简介: 1. 背景 GPU在高性能计算和深度学习加速中扮演着非常重要的角色, GPU的强大的并行计算能力,大大提升了运算性能。随着运算数据量的不断攀升,GPU间需要大量的交换数据,GPU通信性能成为了非常重要的指标。

目录

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

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

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


1. 背景

GPU在高性能计算和深度学习加速中扮演着非常重要的角色, GPU的强大的并行计算能力,大大提升了运算性能。随着运算数据量的不断攀升,GPU间需要大量的交换数据,GPU通信性能成为了非常重要的指标。NVIDIA推出的GPUDirect就是一组提升GPU通信性能的技术。但GPUDirect受限于PCI Expresss总线协议以及拓扑结构的一些限制,无法做到更高的带宽,为了解决这个问题,NVIDIA提出了NVLink总线协议。

这个系列文章会对以上GPU通信技术做详细的介绍,旨在帮助开发者更好的利用这些技术对自己的应用做相应的优化。

本篇文章会先介绍一下GPUDirect技术,并着重介绍GPUDirect Peer-to-Peer(P2P)技术。

 2. GPUDirect介绍

2.1 简介

GPUDirect技术有如下几个关键特性:

  1. 加速与网络和存储设备的通信:
  2. GPU之间的Peer-to-Peer Transers
  3. GPU之间的Peer-to-Peer memory access
  4. RDMA支持
  5. 针对Video的优化

下面对最主要的几个技术做分别介绍。

2.2 Shared Memory

2010年6月最先引入的是GPUDirect Shared Memory 技术,支持GPU与第三方PCI Express设备通过共享的pin住的host memory实现共享内存访问从而加速通信。

2.3 P2P

2011年,GPUDirect增加了相同PCI Express root complex 下的GPU之间的Peer to Peer(P2P) Direct Access和Direct Transers的支持。

2.4 RDMA

2013年,GPUDirect增加了RDMA支持,使得第三方PCI Express设备可以bypass CPU host memory直接访问GPU。

3. GPUDirect P2P

3.1 P2P简介

GPUDirect Peer-to-Peer(P2P) 技术主要用于单机GPU间的高速通信,它使得GPU可以通过PCI Express直接访问目标GPU的显存,避免了通过拷贝到CPU host memory作为中转,大大降低了数据交换的延迟。

以深度学习应用为例,主流的开源深度学习框架如TensorFlow、MXNet都提供了对GPUDirect P2P的支持,NVIDIA开发的NCCL(NVIDIA Collective Communications Library)也提供了针对GPUDirect P2P的特别优化。

通过使用GPUDirect P2P技术可以大大提升深度学习应用单机多卡的扩展性,使得深度学习框架可以获得接近线性的训练性能加速比。

3.2 P2P虚拟化

随着云计算的普及,越来越多技术迁移到云上,在云上使用GPUDirect技术,就要解决GPUDirect虚拟化的问题。

这里我们着重讨论下GPUDirect Peer-to-Peer虚拟化的问题

使用PCI Pass-through虚拟化技术可以将GPU设备的控制权完全授权给VM,使得虚拟机里的GPU driver可以直接控制GPU而不需要Hypervisor参与,性能可以接近物理机。

         但是同一个虚拟机内的应用却无法使用P2P技术与其它GPU实现通信。下面分析一下无法使用P2P的原因。

         首先我们需要知道一个技术限制,就是不在同一个Intel IOH(IO Hub)芯片组下面PCI-e P2P通信是不支持的,因为Intel CPU之间是QPI协议通信,PCI-e P2P通信是无法跨QPI协议的。所以GPU driver必须要知道GPU的PCI拓信息,同一个IOH芯片组下面的GPU才能使能GPUDiret P2P。

         但是在虚拟化环境下,Hypervisor虚拟的PCI Express拓扑结构是扁平的,GPU driver无法判断真实的硬件拓扑所以无法开启GPUDirect P2P。

         为了让GPU driver获取到真实的GPU拓扑结构,需要在Hypervisor模拟的GPU PCI配置空间里增加一个PCI Capability,用于标记GPU的P2P亲和性。这样GPU driver就可以根据这个信息来使能P2P。

         另外值得一提的是,在PCI Pass-through时,所有的PCI Express通信都会被路由到IOMMU,P2P通信同样也需要路由到IOMMU,所以Pass-through下的P2P路径还是会比物理机P2P长一点,延迟大一点。

4. 实测

         下面是我们在阿里云GN5实例(8卡Tesla P100)上对GPUDirect P2P延迟做的实测数据。

         GPU P2P矩阵如下:

         通信延迟对比如下:

         我们看到:使能GPUDirect P2P后GPU间通信延迟相比CPU拷贝降低近一半。

下图是在GN5实例上使用MXNet对经典卷积神经网络的图像分类任务的训练性能的加速比:

MXNet在支持P2P的GN5实例上有非常好的单机扩展性,训练性能接近线性加速。

下篇请看《浅析GPU通信技术(中)-NVLink》

相关实践学习
部署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。
135617 6
|
11天前
|
存储 机器学习/深度学习 并行计算
GPU通信互联技术:GPUDirect、NVLink与RDMA
在高性能计算和深度学习领域,GPU已成为关键工具。然而,随着模型复杂度和数据量的增加,单个GPU难以满足需求,多GPU甚至多服务器协同工作成为常态。本文探讨了三种主要的GPU通信互联技术:GPUDirect、NVLink和RDMA。GPUDirect通过绕过CPU实现GPU与设备直接通信;NVLink提供高速点对点连接和支持内存共享;RDMA则在网络层面实现直接内存访问,降低延迟。这些技术各有优势,适用于不同场景,为AI和高性能计算提供了强大支持。
|
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月前
|
人工智能 弹性计算 并行计算
技术改变AI发展:CUDA Graph优化的底层原理分析(GPU底层技术系列一)
随着人工智能(AI)的迅速发展,越来越多的应用需要巨大的GPU计算资源。CUDA是一种并行计算平台和编程模型,由Nvidia推出,可利用GPU的强大处理能力进行加速计算。
103629 1
|
4月前
|
人工智能 弹性计算 TensorFlow
构建AIGC对话类应用:阿里云GPU产品技术指南
人工智能图形计算(AIGC)对话类应用在当今技术领域中占据着重要地位,为用户提供了更智能、自然的交互方式。本文将详细介绍如何借助阿里云GPU产品,构建高性能的AIGC对话类应用。我们将深入了解产品功能、编写对话类应用代码,并提供具体的使用流程,帮助你在云端快速搭建起这类应用。
374 0
|
1月前
|
机器学习/深度学习 编解码 人工智能
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
随着人工智能、大数据和深度学习等领域的快速发展,GPU服务器的需求日益增长。阿里云的GPU服务器凭借强大的计算能力和灵活的资源配置,成为众多用户的首选。很多用户比较关心gpu云服务器的收费标准与活动价格情况,目前计算型gn6v实例云服务器一周价格为2138.27元/1周起,月付价格为3830.00元/1个月起;计算型gn7i实例云服务器一周价格为1793.30元/1周起,月付价格为3213.99元/1个月起;计算型 gn6i实例云服务器一周价格为942.11元/1周起,月付价格为1694.00元/1个月起。本文为大家整理汇总了gpu云服务器的最新收费标准与活动价格情况,以供参考。
阿里云gpu云服务器租用价格:最新收费标准与活动价格及热门实例解析
|
7天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
1月前
|
编解码 分布式计算 Linux
最新阿里云服务器、轻量应用服务器、GPU云服务器活动价格参考
阿里云服务器产品包含云服务器、轻量应用服务器、GPU云服务器等,本文汇总了这些云服务器当下最新的实时活动价格情况,包含经济型e实例云服务器价格、通用算力型u1实例云服务器价格、第七代云服务器价格、轻量应用服务器最新价格、GPU云服务器价格,以供大家参考。
最新阿里云服务器、轻量应用服务器、GPU云服务器活动价格参考

热门文章

最新文章