我们可以在内核中声明一个cufftComplex类型的变量

时间:2013-07-05 12:32:47

标签: cuda nvidia

我在我的代码中使用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的变量吗?

1 个答案:

答案 0 :(得分:3)

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

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

相关问题