我正在研究在主机上运行并使用 GPU 进行计算的模拟。计算完成后,主机将内存从设备复制到自身,然后将计算的数据发送到远程主机。
基本上数据会做:GPU -> HOST -> NETWORK CARD
由于模拟是实时的,所以时间很重要,我想要这样的东西:GPU -> NETWORKCARD,以减少数据传输的延迟。
可能吗?如果不是,那是不是我们有一天会看到的东西?
编辑:远程主机=> CPU
我正在研究在主机上运行并使用 GPU 进行计算的模拟。计算完成后,主机将内存从设备复制到自身,然后将计算的数据发送到远程主机。
基本上数据会做:GPU -> HOST -> NETWORK CARD
由于模拟是实时的,所以时间很重要,我想要这样的东西:GPU -> NETWORKCARD,以减少数据传输的延迟。
可能吗?如果不是,那是不是我们有一天会看到的东西?
编辑:远程主机=> CPU
是的,这在 CUDA 4.0 和更高版本中是可能的,在支持统一直接寻址的平台上使用GPUDirect 工具(我认为现阶段基本上是带有 Fermi 或 Kepler Telsa 卡的 linux)。您对“远程主机”的含义没有多说,但是如果您有一个 MPI 可行的网络,那么可能有一个现成的解决方案供您使用。
至少mvapich2已经支持使用 Infiniband 或 TCP/IP 进行 GPU-GPU 传输,包括通过 PCI express 总线直接到 Infiniband 适配器的 RDMA。到目前为止,其他 MPI 实现可能也得到了支持,尽管我最近没有仔细研究过它,但无法确定。