GPU和远程主机之间的RDMA

时间:2017-05-25 22:18:18

标签: cuda gpu nvidia infiniband rdma

是否可以在GPU和远程主机之间执行RDMA操作?

Nvidia网站上的在线文档仅谈到在GPU之间进行RDMA,并未提及在GPU主机之间进行此操作的可能性。

注意:我可以访问配备K80 GPU和Mellanox网卡的群集。

1 个答案:

答案 0 :(得分:4)

  

是否可以在GPU和远程主机之间执行RDMA操作?

是的,自2012年以来,可以使用Nvidia Compute GPU(Tesla和Quadro)的“ GPUDirect RDMA ”功能在GPU和Infiniband卡之间移动数据(Kepler级GPU和CUDA 5.0)。在CUDA Toolkit http://docs.nvidia.com/cuda/gpudirect-rdma/

中有关于GPUDirect RDMA的网页
  

GPUDirect RDMA是Kepler级GPU和CUDA 5.0中引入的一种技术,它使用PCI Express的标准功能为GPU和第三方对等设备之间的数据交换提供直接路径。第三方设备的示例包括:网络接口,视频采集设备,存储适配器。

     

GPUDirect RDMA可在Tesla和Quadro GPU上使用。

     

可以应用许多限制,最重要的是两个设备必须共享相同的上游PCI Express根联合体。一些限制取决于所使用的平台,可以在当前/未来的产品中解除。

     

必须对设备驱动程序进行一些简单的更改,以便使用各种硬件设备启用此功能。本文档介绍了该技术,并介绍了在Linux上启用与NVIDIA GPU的GPUDirect RDMA连接所需的步骤。

有一些限制:http://docs.nvidia.com/cuda/gpudirect-rdma/index.html#supported-systems

  

2.4。支持的系统

     

一般性评论。即使是唯一的理论要求   GPUDirect RDMA可在第三方设备和NVIDIA GPU之间工作   是他们共享相同的根复合体,存在错误(主要是在   芯片组)导致它表现不佳,或根本不工作   设置。

     

我们可以区分三种情况,具体取决于具体情况   GPU与第三方设备之间的路径:PCIe交换机   只有单CPU / IOH CPU / IOH< - > QPI / HT< - > CPU / IOH第一个   在路径上只有PCIe交换机的情况是最佳的   并产生最佳性能。第二个,单身   CPU / IOH涉及,工作,但产生更差的性能(尤其是   已经证明,对等读取带宽受到严重限制   一些处理器架构)。最后,第三种情况,在哪里   路径遍历QPI / HT链接,可能性能极限   甚至不能可靠地工作。提示:lspci可用于检查PCI   拓扑:

$ lspci -t 
     

平台支持对于IBM Power 8平台,   不支持GPUDirect RDMA和P2P,但不明确   禁用。它们可能无法在运行时工作。

     

在ARM64上,必要的对等功能取决于两者   硬件和特定平台的软件。所以虽然   在这种情况下,GPUDirect RDMA没有明确禁用,没有   保证它将完全发挥作用。

     

IOMMU GPUDirect RDMA目前依赖于所有物理地址   从不同的PCI设备的角度来看是一样的。这个   使其与执行任何形式的翻译的IOMMU不兼容   除1:1外,必须禁用或配置它们   GPUDirect RDMA的传递翻译工作。