我在我的代码中使用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的变量吗?
答案 0 :(得分:3)
在CUDA内核代码中使用cufftComplex
类型没有问题。 cufftComplex
只是标准CUDA单精度复杂类型cuComplex
的别名,专门用于设备代码。
但是,您问题中的其余代码完全错误。 cuFFT库是一个主机端库,无法在CUDA内核代码中调用。因此,尝试在内核中调用cufftExecC2C
是完全非法的,如果你尝试就不会编译。