Я запускаю фильтр изображения на GPU, и мне нужно измерить время, которое каждая часть программы берет для сравнения. Сначала я попробовал библиотеку time.h, но всегда возвращал нуль. Затем я прочитал this postcudaEventRecord, возвращающий нуль
и использовал тот же код в своей программе до и после вызова ядра, но все же он возвращает ноль. Может ли кто-нибудь сказать мне, в чем проблема?
Это мой код:
cudaEvent_t start,stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);
float Elapsed=0,Cycle;
while(count)
{
cudaEventRecord(start,0);
ImgFilter<<<dimGrid,dimBlock>>>...
cudaEventRecord(stop,0);
cudaElapsedTime(&Cycle,statr,stop);
Elapsed += Cycle;
}
printf("Time = %f",Elapsed);
Я также попытался выполнить печать «Цикл», но это всегда равна нулю.
Большое вам спасибо, я попробую. –
Помните, что это 'cudaEventElapsedTime', и вы написали' statr' вместо 'start'. –