是否有可用于使用OpenCL在GPU上运行的通用FFT库?据我所知,苹果公司的二次幂OpenCL FFT示例代码是唯一可用的代码吗?
对于非二次幂变换大小,是否存在任何此类库?如果没有,修改Apple OpenCL样本有多容易或多困难?
我正在研究具有非二次幂变换大小的图像处理应用程序,我将不得不做一大堆FFT,一个批量FFT。
答案 0 :(得分:3)
尝试AMD开发的clFFT。它针对AMD显卡,但也适用于nVidia GPU。它可以转换基数为2,3和5的数组(以及其中的组合)。
https://github.com/clMathLibraries/clFFT
有可用的python绑定
答案 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)
答案 6 :(得分:0)
查看APPML-FFT库。虽然它仍然是两个变换的力量。