我正在尝试使用cufft为2,500个点的数据类型doublereal找到fft,每个点具有20,000个数据点。我使用:
cufftHandle plan;
cufftPlan1d(&plan, 20000, CUFFT_D2Z, 2500) ;
cufftExecD2Z(plan, source, result);当数据点的数量达到15000个时,代码似乎工作得很好。但除此之外,结果并不准确。我发现在一维数组中我可以有2^27个数据点,但20000*2500仍然小于2^27。谁能指出错误是什么,以及必须做些什么来纠正它?
发布于 2015-07-16 21:59:21
用于批处理的cufftPlan1d()被标记为已弃用(在CUDA6.0和更高版本中,可能已经更早了?),请参阅http://docs.nvidia.com/cuda/cufft/index.html#function-cufftmakeplan1d。
您是否尝试使用推荐的cufftPlanMany()?对于您的示例,计划应如下所示:
int size[1] = {20000};
cufftPlanMany( &plan, 1, size, NULL, 0, 0, NULL, 0, 0, CUFFT_D2Z, 2500 );有关参数的更多信息,请参见http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplanmany。
https://stackoverflow.com/questions/31443754
复制相似问题