使用CudaEvent记录时间错误

时间:2011-02-02 04:26:11

标签: cuda

我正在使用cudaEvent方法来查找内核执行所需的时间。这是手册中给出的代码。

  cudaEvent_t start,stop;
  float time=0;
  cudaEventCreate(&start);
  cudaEventCreate(&stop);      
  cudaEventRecord(start,0);
  subsampler<<<gridSize,blockSize>>>(img_redd,img_greend,img_blued,img_height,img_width,final_device_r,final_device_g,final_device_b);
  cudaEventRecord(stop,0);
  cudaEventSynchronize(stop);
  cudaEventElapsedTime(&time,start,stop);

现在,当我运行它并尝试看到时间它像52428800.0000(值不同但是这个顺序)。我知道它是以毫秒为单位但仍然是一个巨大的数字,特别是当这个程序执行不需要更多有人指出为什么会这样。我真的需要找出内核执行的时间。

1 个答案:

答案 0 :(得分:0)

您应该检查每个CUDA调用的返回值。至少在最后调用cudaGetLastError()来检查一切是否成功。

如果在内核执行期间出现错误,请尝试使用cuda-memcheck运行应用程序,特别是如果您有未指定的启动失败,以检查非法内存访问。