是否可以在GPU和远程主机之间执行RDMA操作?
Nvidia网站上的在线文档仅谈到在GPU之间进行RDMA,并未提及在GPU主机之间进行此操作的可能性。
注意:我可以访问配备K80 GPU和Mellanox网卡的群集。
答案 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的传递翻译工作。