求助:CUFFT的异步调用

本来想在句柄部分与流绑定后实现异步的:
cufftHandle plan[nStream];
for(int i=0;i<nStream;i++)
{
cufftSafeCall(cufftPlan1d(&plan[i], SIGNAL_SIZE/nStream, CUFFT_C2C, 1));
cufftSetStream(plan[i],stream[i]);
}

调用的时候这样:
for(int i=0;i<nStream;i++)
cufftSafeCall(cufftExecC2C(plan[i], (cufftComplex )d_signal+iSIGNAL_SIZE/nStream, (cufftComplex )d_signal+iSIGNAL_SIZE/nStream, CUFFT_FORWARD));

但是测试发现是串行执行的!!!!!
请问有没有办法异步调用CUFFT,因为自己写的FFT没有他的快~~~高手指点啊!!!!

纯粹的内核异步调用本来就是串行的,除非你在内核执行的时候,CPU也在做事,当然从某种意义上说,目前的GPU内核之间执行都是串行的,只有执行完一个内核才会执行另一个。

也就是说只能使用自己写的KERNEL函数实现FFT,再通过异步调用KERNEL来实现吗?

怎么说呢!总之就是问题没有那么简单,要考虑的东西很多,没有必要花太多的时间关注这些性能提升可能不明显的地方。呵呵!我 的观点可能激进了点