是否可以将批量FFT与CUDA的cuFFT库和cufftPlanMany重叠?

我正在尝试并行化声学指纹库(称为Chromaprint)的FFT变换。 它的工作原理是“将原始音频分成许多重叠的帧并对它们应用傅里叶变换”。 Chromaprint使用4096的帧大小,重叠2/3。 例如,第一帧由元素[0 … 4095]组成,然后第二帧类似于[1366 … 5462]。

使用cufftPlanMany,我知道您可以指定批量为4096的批次,这将执行[0 … 4095],[4096 … 8192]等批次。是否有某种方法可以使批处理变换重叠,或者应该我考虑另一种不使用批量执行的方法?

如果使用高级数据布局 ,则idist参数应允许您设置2个连续变换输入集的起始点之间的任意偏移。

对于1D情况,将根据您传递的参数根据以下内容选择输入:

 input[ b * idist + x * istride] 

(其中b是当前正在处理的批号,即b = 0,1,2,…批量大小)

“idist和odist参数表示输入和输出数据中两个连续批次的第一个元素之间的距离。”