cudagpugpgpunvidia

How to measure the inner kernel time in NVIDIA CUDA?


I want to measure time inner kernel of GPU, how how to measure it in NVIDIA CUDA? e.g.

__global__ void kernelSample()
{
  some code here
  get start time 
  some code here 
  get stop time 
  some code here
}

Solution

  • Try this, it measures time between 2 events in milliseconds.

      cudaEvent_t start, stop;
      float elapsedTime;
    
      cudaEventCreate(&start);
      cudaEventRecord(start,0);
    
     //Do kernel activity here
    
     cudaEventCreate(&stop);
     cudaEventRecord(stop,0);
     cudaEventSynchronize(stop);
    
     cudaEventElapsedTime(&elapsedTime, start,stop);
     printf("Elapsed time : %f ms\n" ,elapsedTime);