CUDA: использование cudaEvent_t и cudaThreadSynchronize

Меня немного смущает использование 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 рассчитанная разница во времени показывает дополнительное время после завершения работы ядра?

6
задан Ashwin Nanjappa 27 April 2011 в 09:08
поделиться