在没有计划创建时间的情况下计算执行时间所需的时间可以用以下代码片段来衡量。它只是重新排列问题中的行。
cufftResult cuRet ;
/* creates 1D FFT plan */
cuRet = cufftPlan1d(&plan, NX, CUFFT_C2C, BATCH);
if (CUFFT_SUCCESS != cuRet)
{
printf ("Failed in plan creation\n") ;
return ;
}
cudaEventRecord(start, 0);
/* executes FFT processes */
cuRet = cufftExecC2C(plan, devPtr, devPtr, CUFFT_FORWARD);
if (CUFFT_SUCCESS != cuRet)
{
printf ("Failed in FFT execution\n") ;
return ;
}
if (cudaThreadSynchronize() != cudaSuccess)
{
printf("Failed to synchronize\n");
return;
}
cudaEventRecord(stop, 0);
cudaEventSynchronize(stop);
请记住检查我没有显示的错误的返回值,cudaEventRecord
但您可以在此处找到检查错误的正确方法。cudaEventSynchronize