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

时间:2014-12-31 10:29:09

标签: c++ c cuda cufft

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

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

1 个答案:

答案 0 :(得分:1)

如果使用Advanced Data Layoutidist参数应该允许您设置2个连续变换输入集的起始点之间的任意偏移。

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

input[ b * idist + x * istride]

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

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

相关问题