从 GPU 到远程主机的 GPUDirect RDMA 传输

问题描述 投票:0回答:2

场景:

我有两台机器,一台客户端和一台服务器,通过Infiniband连接。服务器计算机具有 NVIDIA Fermi GPU,但客户端计算机没有 GPU。我有一个在 GPU 机器上运行的应用程序,它使用 GPU 进行一些计算。 GPU 上的结果数据不会被服务器计算机使用,而是直接发送到客户端计算机而不进行任何处理。现在我正在做一个

cudaMemcpy
将数据从 GPU 获取到服务器的系统内存,然后通过套接字将其发送到客户端。我正在使用 SDP 启用 RDMA 来进行此通信。

问题:

我是否可以利用 NVIDIA 的 GPUDirect 技术来摆脱这种情况下的

cudaMemcpy
调用?我相信我已经正确安装了 GPUDirect 驱动程序,但我不知道如何在不先将数据复制到主机的情况下启动数据传输。

我的猜测是不可能将 SDP 与 GPUDirect 结合使用,但是是否有其他方法可以启动从服务器计算机的 GPU 到客户端计算机的 RDMA 数据传输?

奖励:如果有人有一个简单的方法来测试我是否正确安装了 GPUDirect 依赖项,那也会很有帮助!

cuda infiniband rdma gpudirect
2个回答
4
投票

是的,通过支持网络硬件是可能的。请参阅 GPUDirect RDMA 文档


0
投票

我想分享我对这个问题的调查。要在 GPU 和 NIC 之间使用 GPUDirrect,您的网卡应支持 RDMA。 所以,如果您正在使用例如NVIDIA Mellanox MCX623106AN-CDAT ConnectX®-6 Dx 网卡和例如支持 RDMA 的 NVIDIA Quadro 卡。 您可以使用此示例在 GPU 和 NIC 之间发送数据

https://github.com/Mellanox/gpu_direct_rdma_access

© www.soinside.com 2019 - 2024. All rights reserved.