c++ - 你如何使用CUFFT的批处理模式?

标签 c++ cuda fft fftw

我正在尝试弄清楚如何使用 CUFFT 库中提供的批处理模式。

我基本上有一张宽 5300 像素、高 3500 像素的图像。目前,这意味着我正在使用 FFTW 在这 5300 个元素上运行 3500 个一维 FFT。

这是一个以批处理模式运行 CUFFT 库的好候选问题吗?必须如何设置数据才能解决此问题?

谢谢

最佳答案

是的,您可以使用批处理模式。

要使用批处理模式,需要连续存储5300个元素。

这意味着相邻批处理之间的距离为 5300。 你可以这样走:

..........
cufftComplex *host;
cufftComplex *device;
CudaMallocHost((void **)&host,sizeof(cufftComplex)*5300*3500);
CudaMalloc((void **)&devcie,sizeof(cufftComplex)*5300*3500);
//here add the elements,like this:
//host[0-5299] the first batch, host[5300-10599] the second batch ,and up to the 3500th batch.
CudaMemcpy(device,host,sizeof(cufftComplex)*5300*3500,......);
CufftPlan1d(&device,5300,type,3500);
CufftExecC2C(......);
......

有关详细信息,请参阅 CUFFT 手册。

关于c++ - 你如何使用CUFFT的批处理模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234573/

相关文章:

cuda - 编译helloworld.cu时遇到问题

c++ - 使用 Nvidia NPP 调整图像大小时出现未记录的调整大小错误

r - R中是否有一个包可以提供-归一化-逆FFT?

c++ - OS X/Clang 不会使用 c++11 头文件

c++ - 将std::string移入捕获

algorithm - CUDA 流压缩 : understanding the concept

c++ - 为初学者实现实时频谱

java - 使用 JTransforms 进行 FFT : is it radix 2?

c++ - 如何在 C++ 中复制 std::string 类型的字符串?

c++ - QT HTML 与对齐不工作