0

我在我的代码中使用了 CUFFT 库。

__global__ void kernel1(...)
{
    /****** processing to get real and imaginary values *******/
    cufftComplex data[SIGANAL_SIZE];


    cufftExecC2C(plan[0],data[0],data[0],CUFFT_FORWARD);

}


int main()
{
   ...
   kernel1<<<N,N>>>(...);
   ...
}

我从我的内核函数“kernel1”中调用 cufft 函数。我可以在内核中声明 cufftComplex 类型的变量吗?

4

1 回答 1

3

cufftComplex在 CUDA 内核代码中使用类型没有问题。cufftComplex只是标准 CUDA 单精度复杂类型的别名,cuComplex专门用于设备代码。

但是,您问题中的其余代码是完全错误的。cuFFT 库是一个主机端库,不能在 CUDA 内核代码中调用。所以试图cufftExecC2C在内核内部调用是完全非法的,如果你尝试将不会编译。

于 2013-07-05T14:15:03.733 回答