Меня немного смущает использование cudaEvent_t
. В настоящее время я использую вызов clock ()
, подобный этому, чтобы определить продолжительность вызова ядра:
cudaThreadSynchronize();
clock_t begin = clock();
fooKernel<<< x, y >>>( z, w );
cudaThreadSynchronize();
clock_t end = clock();
// Print time difference: ( end - begin )
Ищу таймер с более высоким разрешением. Я рассматриваю возможность использования cudaEvent_t
. Нужно ли мне вызывать cudaThreadSynchronize ()
, прежде чем я записываю время с помощью cudaEventRecord ()
, или это избыточно?
Я спрашиваю, потому что есть другой вызов cudaEventSynchronize ()
, который, кажется, ждет, пока событие не будет записано. Если запись задерживается, выиграет » t рассчитанная разница во времени показывает дополнительное время после завершения работы ядра?