0

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

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

4

1 回答 1

1

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

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

input[ b * idist + x * istride]

b当前正在处理的批号在哪里,即b = 0, 1, 2, ...批大小)

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

于 2014-12-31T12:03:07.580 回答