CPU to GPU PCIe transfer using GPUDirect P2P

GPUDirect P2P allows one GPU to write directly to the memory of another GPU. Is it also possible for the CPU to initiate PCIe writes and reads to the GPU’s memory?

Here’s some more information:

  1. I only have GeForce GPUs. AFAIK, GeForce GPUs support GPUDirect P2P, but not GPUDirect RDMA.
  2. I know that the GPU threads can initiate PCIe reads and writes to mapped host memory, but I want it to work the other way round.

Thanks for your help!

The CPU can initiate PCIe reads and writes to the GPUs memory using API functions such as cudaMemcpy.

Yes, but a cudaMemcpy is much more than a PCIe write, and I’d expect something like GPUDirect to be closer to the hardware. For example, with cudaMemcpyAsync, the CPU thread blocks for 4-5 microseconds before the API call returns. The latency of a PCIe write is around 300-500 nansoseconds.

I’m interested in very small transfers (~100 bytes) for which this overhead is unacceptable.