用于GPU的OpenCL FFT库?

时间:2010-11-19 01:28:04

标签: opencl gpu fft gpgpu gpu-programming

是否有可用于使用OpenCL在GPU上运行的通用FFT库?据我所知,苹果公司的二次幂OpenCL FFT示例代码是唯一可用的代码吗?

对于非二次幂变换大小,是否存在任何此类库?如果没有,修改Apple OpenCL样本有多容易或多困难?

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

7 个答案:

答案 0 :(得分:3)

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

https://github.com/clMathLibraries/clFFT

有可用的python绑定

https://github.com/geggo/gpyfft

答案 1 :(得分:2)

您可以从SHOC benchmark suite下载一些OpenCL代码示例,包括FFT。

答案 2 :(得分:2)

我知道目前正在开发的OpenCL FFT库, 但是他们并没有计划在第一版中使用非二次幂变换。

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

OpenMM(https://simtk.org/home/openmm)包含OpenCL的3D FFT。它可能不适合您直接使用,因为它是针对特定情况而设计的:3D FFT,其中每个维度足够小以存储在本地存储器中(例如,100x100x100网格)。但它确实支持非二次幂(基数2,3,4和5),因此您可以调整它。

答案 5 :(得分:1)

VexCL为OpenCL提供FFT实现,它接受任意向量表达式作为输入,允许执行多维变换(任意数量的维度),并支持任意大小的向量。以下是其自述文件相关部分的link

答案 6 :(得分:0)

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