我正在使用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(值不同但是这个顺序)。我知道它是以毫秒为单位但仍然是一个巨大的数字,特别是当这个程序执行不需要更多有人指出为什么会这样。我真的需要找出内核执行的时间。
答案 0 :(得分:0)
您应该检查每个CUDA调用的返回值。至少在最后调用cudaGetLastError()来检查一切是否成功。
如果在内核执行期间出现错误,请尝试使用cuda-memcheck运行应用程序,特别是如果您有未指定的启动失败,以检查非法内存访问。