【问题标题】:RDMA between GPU and remote host [duplicate]GPU和远程主机之间的RDMA [重复]
【发布时间】:2017-10-26 16:53:19
【问题描述】:

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

Nvidia 网站上的在线文档只讨论了在 GPU 之间进行 RDMA,并没有提到在 GPU 主机之间进行此操作的可能性。

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

【问题讨论】:

标签: cuda gpu nvidia infiniband rdma


【解决方案1】:

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

是的,自 2012 年(Kepler 级 GPU 和 CUDA 5.0)以来,可以使用 Nvidia Compute GPU(Tesla 和 Quadro)的“GPUDirect RDMA”功能在 GPU 和 Infiniband 卡之间移动数据。 CUDA Toolkit中有关于GPUDirect RDMA的网页http://docs.nvidia.com/cuda/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 工作的直通翻译。

【讨论】:

猜你喜欢
  • 2012-08-10
  • 1970-01-01
  • 2017-06-06
  • 2014-06-18
  • 1970-01-01
  • 2016-05-30
  • 2022-07-17
  • 2021-01-04
  • 1970-01-01
相关资源
最近更新 更多