Ошибка записи времени с CudaEvent - PullRequest
0 голосов
/ 02 февраля 2011

Я использую методы 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 голосов
/ 04 февраля 2011

Вы должны проверить возвращаемые значения каждого из этих вызовов CUDA.По крайней мере, вызовите cudaGetLastError () в конце, чтобы проверить, все ли прошло успешно.

Если вы получили ошибку во время выполнения ядра, попробуйте запустить ваше приложение с помощью cuda-memcheck, особенно если у вас неустановленная ошибка запуска, для проверки недопустимого доступа к памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...