可以在GPU和远程主机之间执行RDMA操作吗?
Nvidia网站上的在线文档只提到在GPU之间进行RDMA,而没有提到在GPU-主机之间执行RDMA的可能性。
注意事项:我可以访问一个配备了K80 GPU和Mellanox的集群。
发布于 2017-05-25 22:35:41
可以在GPU和远程主机之间执行RDMA操作吗?
是的,从2012年起,可以使用Nvidia Compute GPU (Tesla和Quadro)的"GPUDirect RDMA“功能在GPU和Infiniband卡之间移动数据(开普勒级GPU和CUDA 5.0)。在CUDA工具包http://docs.nvidia.com/cuda/gpudirect-rdma/中有关于RDMA的网页
GPUDirect RDMA是开普勒级GPU和CUDA5.0中引入的一种技术,它可以使用peer的标准功能为GPU和第三方对等设备之间的数据交换提供直接路径。第三方设备的例子有:网络接口、视频采集设备、存储适配器. GPUDirect RDMA可在特斯拉和象限GPU上使用。 可以应用许多限制,最重要的是这两个设备必须共享相同的上游PCI根复合体。有些限制取决于所使用的平台,并可在目前/未来的产品中取消。 必须对设备驱动程序进行一些简单的更改,以便使用范围广泛的硬件设备启用此功能。本文档介绍了该技术,并描述了在Linux上启用到NVIDIA的GPUDirect RDMA连接所需的步骤。
有一些限制:http://docs.nvidia.com/cuda/gpudirect-rdma/index.html#supported-systems
2.4。支撑系统 一般性评论。尽管对GPUDirect RDMA在第三方设备和NVIDIA之间工作的唯一理论要求是它们共享相同的根复合体,但也存在一些bug(主要是在芯片组中),导致其性能不佳,或者在某些设置中根本无法工作。 根据GPU和第三方设备之间路径上的情况,我们可以区分三种情况: PCIe交换机仅为单CPU/IOH /IOH <-> QPI/HT <-> CPU/IOH,第一种情况是路径上只有PCIe开关,性能最佳。第二种方案涉及单个CPU/IOH,但性能较差(尤其是点对点读取带宽在某些处理器体系结构上受到严重限制)。最后,第三种情况是,路径穿越QPI/HT链路,可能性能非常有限,甚至无法可靠工作。提示:
lspci可用于检查PCI拓扑: $ lspci -t 对IBM 8平台、GPUDirect RDMA和P2P的平台支持不受支持,但没有显式禁用。它们可能无法在运行时工作。 在ARM64上,必要的点对点功能取决于特定平台的硬件和软件。因此,虽然在本例中没有显式禁用GPUDirect,但不能保证它将完全正常工作。 从不同的GPUDirect设备的角度来看,IOMMU、PCI、RDMA目前依赖于所有物理地址是相同的。这使得它与执行除1:1以外的任何形式的转换的IOMMU不兼容,因此它们必须被禁用或配置为GPUDirect RDMA的传递转换才能工作。
https://stackoverflow.com/questions/44190665
复制相似问题