我有一个CUDA程序,用于计算大小的FFT 50000.目前,我将整个阵列复制到GPU并执行cuFFT.现在,我正在尝试优化程序,NVIDIA Visual Profiler告诉我通过并行计算并发隐藏memcopy.我的问题是:
例如,是否可以复制第一个5000元素,然后开始计算,然后将下一组数据并行复制到计算等?
由于DFT基本上是时间值乘以复指数函数的总和,我认为应该可以"逐块"地计算FFT.
袖口支持吗?它一般是一个好的计算理念吗?
编辑
为了更清楚,我不想在不同的阵列上并行计算不同的FFT.假设我在时域中有很大的正弦信号,我想知道信号中有哪些频率.我的想法是将例如信号长度的三分之一复制到GPU,然后是下一个三分之一并且用已经复制的输入值的前三分之一并行计算FFT.然后复制最后一个三分之一并更新输出值,直到处理完所有时间值.所以最后应该有一个输出阵列,在窦的频率处有一个峰值.