Direct memory transfer from GPU to GPU?

Hi all

I am developing a dual-GPU system, where a data set is processed first by GPU-1 and then by GPU-2.

I opened a buffer in the host to put the processed data by GPU-1, using Device-to-Host copy, and then transfer them to GPU-2 by Host-to-Device copy.

This seems not that efficient due to the PCI-E bandwidth limit. So is there some direct way to transfer memory from GPU to GPU? How about SLI? Does CUDA support SLI?



GPUDirect Technology can help you if your system satisfies its requirement.
It uses a shared-pinned memory-buffer to do the copy.

GPUDirect wouldn’t help here, as both targets are GPUs and thus both can already share pinned system memory via the CUDA API.

As for the original question… you can’t do a direct transfer in CUDA today.

Oops… Thanks for correcting. GPUDirect has more relevance in a cluster envmt…where the infiniband adapter and GPU share a pinned buffer to reduce buffer copies for GPU-GPU communication.