cufft执行失败CUFFT_EXE_FAILED

执行结果总是失败,其中err1 和err2 都是成功,就err3 总是CUFFT_EXE_FAILED,怎么回事呢,可能是哪里出的问题呢?

cufftHandle mPlan_CA;
cufftComplex * wf_Ca;
cufftComplex * d_wf_Ca;
int mFFTSize = 12288;
int size = sizeof(cufftComplex)*mFFTSize;

cudaMallocHost((void**)&wf_Ca,size);
cudaMalloc((void**)&d_wf_Ca, size);

//…wf_Ca赋值,赋值这步我在内存里看了赋值是成功的,wf_Ca中是我想要的值

cudaError_t err1 = cudaMemcpyAsync(d_wf_Ca, wf_Ca, size, cudaMemcpyHostToDevice);
cufftResult err2 = cufftPlan1d(&mPlan_CA,mFFTSize, CUFFT_C2C,1);
cudaThreadSynchronize();
cufftResult err3 = cufftExecC2C(mPlan_CA, (cufftComplex *)(d_wf_Ca),(cufftComplex *)(d_wf_Ca), CUFFT_FORWARD);

谢谢大侠们指点!!

LZ您好:

请您顺便提供一下报错的具体信息。

以及,根据目测,cufftExecC2C()函数的第一个参数是cufftHandle*类型的,您在调用的时候使用的cufftHandle类型的mPlan_CA这里应该是有问题的。

但不保证是否还有其他问题。
一般成熟的函数出现问题,请先检查参数是否正确。

大致如此,请您排查。
祝您编码顺利~

我把鼠标停在cufftExecC2C()这里,现在版本中这个函数的第一个参数是cufftHandle类型了。
我把断点停在cufftExecC2C()函数的后一句,查看这个函数的执行返回结果就是CUFFT_EXE_FAILED 。程序倒没崩掉。
我用err1和err2查看确保我输入的mPlan_CA和d_wf_Ca参数是对的

那现在还有什么可以怀疑的地方呢?我想不到了呢

LZ您好:

我刚才是按照CUDA 5.0中cufft的手册中函数说明的内容判断的,在该pdf中,第一个参数是cufftHandle*的类型。

以及如果您保证在您使用的版本下,这些参数都是正确的,那我确实不知道还有哪些问题了。

祝您好运~

哦,我使用的是4.2版本,哎,谁有经验啊,分享下啊,这可能是哪里出了问题呢

LZ您好:

刚查阅了CUDA 4.2附带的cufft的手册,cufftExecC2C()函数的第一个参数依然标称为cufftHandle*类型。

因此,您不妨一试。

祝您好运~