1.CPU下:使用clock_t统计时间
clock_t start;
clock_t end;
start=clock();
filter2D (outimage,B,-1,fx);//这是要统计时间的函数
end=clock();
double time=(double)(end-start)/CLOCKS_PER_SEC;
printf("\n");
cout<<"原函数 filter2D 的执行时间 is: "<<time*1000<<"ms"<<endl;
- GPU下:使用cudaEventCreate统计时间
cudaEventCreate(&start);
cudaEventCreate(&stop);
cudaEventRecord(start,0);
kernel_filter2D<<<grid, block>>>(width,height,byteCount,d_src_imgbuf,d_filter2D_imgbuf);
cudaEventRecord(stop, 0);
cudaEventSynchronize(start);
cudaEventSynchronize(stop);
cudaEventElapsedTime(&time,start,stop);
cudaEventDestroy(start);
cudaEventDestroy(stop);
printf("GPU下 filter2D 的执行时间:%f(ms)\n",time);