GPU和远程主机之间的RDMA
这个问题在这里已经有了答案:
是否有可能在GPU和远程主机之间执行RDMA操作?
是的,可以使用Nvidia Compute GPU(Tesla和Quadro)自2012年以来的“ GPUDirect RDMA ”功能(开普勒级GPU和CUDA 5.0)在GPU和Infiniband卡之间移动数据。 在CUDA工具包中有关于GPUDirect RDMA的网页http://docs.nvidia.com/cuda/gpudirect-rdma/
GPUDirect RDMA是在开普勒级GPU和CUDA 5.0中引入的技术,它使用PCI Express的标准功能为GPU和第三方对等设备之间的数据交换提供了直接路径。 第三方设备的例子有:网络接口,视频采集设备,存储适配器。
GPUDirect RDMA可在Tesla和Quadro GPU上使用。
可以应用多种限制,最重要的是两台设备必须共享相同的上游PCI Express根联合体。 其中一些限制取决于所使用的平台,并可能在当前/未来的产品中取消。
必须对设备驱动程序进行一些简单的更改,以便在广泛的硬件设备上启用此功能。 本文档介绍了该技术,并介绍了在Linux上启用GPUDirect RDMA连接到NVIDIA GPU所需的步骤。
有一些限制: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在这种情况下未被明确禁用,但不能保证它完全正常运行。
IOMMUsGPUDirect RDMA目前依赖于不同PCI设备的观点相同的所有物理地址。 这使得它与IOMMU执行除1:1以外的任何形式的翻译不兼容,因此它们必须被禁用或配置为GPUDirect RDMA的传递转换才能正常工作。
链接地址: http://www.djcxy.com/p/64633.html上一篇: RDMA between GPU and remote host
下一篇: Transferring data to GPU while kernel is running to save time