data transfer rates different speeds data transfer from D2H faster than H2D

hi forum,

i just noticed that data transfer from device (simple global memory without texture cache) to host is 1.3 times faster than data transfer from host to device.

the transfer of 5,1 MB data from host to device (global memory) takes about 2,39 ms ~> 2,34 GB/sec.
the transfer of the same data size back from device (global memory) to host takes just about 1,81 ms ~> 3,10 GB/sec.

i wonder why is this so!?

thank you very much for all answeres!

ps: i used a geforce 480 gtx

Hi Sandra, two questions for you:

  1. I presume you are using cutGetTimerValue to get the GPU timing, is this correct?

  2. Have you tried to conduct the check on the memory times from H->D and D->H several times, in order to see if you get a lot of scattering effect?

I am asking you these questions because, if you look at the thread I opened earlier today, I am getting GPU times that somehow have a 15% scattering…



Hi Marco,

@1: Yes! I used cutGetTimerValue for my first test scenario and the CUDA Compute Visual Profiler (v3.2.0) for the second scenario

@2: The times I mentioned are arithmetic means over 10000 measurements.



I’m pretty sure this depends more on your motherboard and its chipset and bios than on the GPU. Others have reported more symmetric values.

You can try timing copies from and to page-locked memory. These will probably be even more asymmetric in your case (since the CPU is not involved at all then).