Profiler Times just need some info

Good day.

I’ve profiled one of my simple Cuda programs with Cuda Visual Profiler on text mode, and the output file was:



CUDA_PROFILE_LOG_VERSION 1.6

CUDA_DEVICE 0 GeForce GTX 295

CUDA_PROFILE_CSV 1

TIMESTAMPFACTOR 11a2396aebc27b1a

method,gputime,cputime,occupancy,gld_coherent,gld_incoherent
,gst_coherent,gst_incoherent
memcpyHtoD,10.880,8.877
memcpyHtoD,14.144,8.608
_Z9matrixMulPfS_S_ii,19.136,38.710,1.000,384,0,256,0
memcpyDtoH,15.616,51.898



I would like to know why cputime differs from gputime? Shouldn’t be the same?
For example, on this line:
memcpyHtoD,10.880,8.877 -> Does it mean that it took 10.880 microseconds to the gpu to execute memcopy and 8.877 microseconds to the CPU?

Please help…I’ve been looking on the readme but there is nothing in the description of those times… :confused:

Open the profiler gui and press F1 :)

GPU Time: It is the execution time for the method on GPU.
CPU Time:It is sum of GPU time and CPU overhead to launch that Method. At driver generated data level, CPU Time is only CPU overhead to launch the Method for non-blocking Methods; for blocking methods it is sum of GPU time and CPU overhead. All kernel launches by default are non-blocking. But if any profiler counters are enabled kernel launches are blocking. Asynchronous memory copy requests in different streams are non-blocking.

N.

Thanks for the fast reply :)

I’m still confused… does it mean:

memcpyHtoD,10.880,8.877

10.880 - 8.877 = Cpu Overhead?

Overhead is not really the good name I think, it can also have something to do with scheduling. And 2 microseconds is not that much is it?

Nope it isn’t :)

But I’m making an application which draws a pie chart with the times of cpu and gpu, so I needed to know the exact values…

Thanks.