8

是否有任何通用 FFT 库可用于使用 OpenCL 在 GPU 上运行?据我所知,Apple 的二次幂 OpenCL FFT 示例代码是唯一可用的此类代码吗?

对于非二次幂变换大小,是否存在任何此类库?如果不是,修改 Apple OpenCL 示例的难易程度如何?

我正在研究具有非二次方变换大小的图像处理应用程序,我将不得不做一大堆 FFT,一个批处理 FFT。

4

7 回答 7

3

试试 AMD 开发的 clFFT。它针对 AMD 显卡,但也适用于 nVidia GPU。它可以转换基数为 2、3 和 5(以及其中的组合)的数组。

https://github.com/clMathLibraries/clFFT

有可用的python绑定

https://github.com/geggo/gpyfft

于 2014-01-07T12:43:04.640 回答
2

您可以从SHOC 基准套件下载一些 OpenCL 代码示例,包括 FFT 。

于 2010-11-19T20:22:46.473 回答
2

我知道目前正在开发的 OpenCL FFT 库,但他们不打算在第一个版本中使用非二次方变换大小。

您能否提供有关您的申请的任何信息?如果很多人都可以使用它,那么提高该功能的优先级可能会有所帮助。

于 2010-12-06T16:53:47.723 回答
2

空填充可用于使任意长度的数据适合二次方 FFT 算法。考虑这是否适合您的应用程序。增加样本数量会减小输出域中的“步长”,这意味着更高的输出分辨率。

于 2011-09-19T20:24:22.143 回答
1

OpenMM (https://simtk.org/home/openmm) 包含用于 OpenCL 的 3D FFT。它可能无法直接为您工作,因为它是为特定情况设计的:3D FFT,其中每个维度都小到可以存储在本地内存中(例如 100x100x100 网格)。但它确实支持非二次幂大小(基数 2、3、4 和 5),因此您可能能够适应它。

于 2011-04-20T19:06:02.180 回答
1

VexCL为 OpenCL 提供了 FFT 实现,它接受任意向量表达式作为输入,允许执行多维变换(任意维数),并支持任意大小的向量。这是其 README 相关部分的链接。

于 2013-11-21T12:41:28.063 回答
0

看看APPML-FFT库。虽然它仍然是两个变换的力量。

于 2011-06-07T21:51:51.100 回答