是否有任何通用FFT库可用于使用OpenCL在GPU上运行?据我所知,苹果示例代码是两个幂的OpenCL FFT是唯一可用的代码?用于GPU的OpenCL FFT库?
对于非幂次幂变换大小是否存在这样的库?如果不是,修改Apple OpenCL示例有多简单或困难?
我正在研究图像处理应用程序,使用非功率为2的变换尺寸,我将不得不做一大堆FFT,一个批量的FFT。
是否有任何通用FFT库可用于使用OpenCL在GPU上运行?据我所知,苹果示例代码是两个幂的OpenCL FFT是唯一可用的代码?用于GPU的OpenCL FFT库?
对于非幂次幂变换大小是否存在这样的库?如果不是,修改Apple OpenCL示例有多简单或困难?
我正在研究图像处理应用程序,使用非功率为2的变换尺寸,我将不得不做一大堆FFT,一个批量的FFT。
我知道目前正在开发的OpenCL FFT库, 但他们不打算在第一版中具有非幂次幂变换大小。
你能提供关于你的应用程序的任何信息吗?如果这是许多人可以使用的功能,那么可以帮助优先考虑该功能。
您可以从SHOC benchmark suite下载一些OpenCL代码示例,包括FFT。
OpenMM(https://simtk.org/home/openmm)包含OpenCL的3D FFT。它可能不适用于您,因为它是为特定情况设计的:3D FFT,其中每个维度都足够小以存储在本地内存(例如100x100x100网格)中。但它确实支持非二次幂的大小(基数2,3,4和5),所以你可能会适应它。
看看APPML-FFT库。虽然它仍然是两次变革的权力。
可以使用空填充使任意长度的数据适合二次幂的FFT算法。考虑一下,如果这将适合你的应用程序。 增加采样数减少了输出域的“步长”,这意味着更高的输出分辨率。
尝试AMD开发的clFFT。它针对AMD显卡,但也应该在nVidia GPU上工作。它可以以2,3和5的基数(以及其组合)转换数组。
https://github.com/clMathLibraries/clFFT
有可用的
不错,现在它也支持基数7,11和13。 – marcin 2016-05-20 12:52:08
你会分享哪些图书馆是这样吗? – rotoglup 2013-09-13 19:14:48
@rotoglup我上面的评论是指AMD的clAmdFft库。几年前,我参与了1.0版本的发布,它不支持2的非功率,但是我看到随后的发布增加了一些其他主要因素。 http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-math-libraries/ – 2013-09-16 13:19:36