2010-11-19 69 views
8

是否有任何通用FFT庫可用於使用OpenCL在GPU上運行?據我所知,蘋果示例代碼是兩個冪的OpenCL FFT是唯一可用的代碼?用於GPU的OpenCL FFT庫?

對於非冪次冪變換大小是否存在這樣的庫?如果不是,修改Apple OpenCL示例有多簡單或困難?

我正在研究圖像處理應用程序,使用非功率爲2的變換尺寸,我將不得不做一大堆FFT,一個批量的FFT。

回答

2

我知道目前正在開發的OpenCL FFT庫, 但他們不打算在第一版中具有非冪次冪變換大小。

你能提供關於你的應用程序的任何信息嗎?如果這是許多人可以使用的功能,那麼可以幫助優先考慮該功能。

+0

你會分享哪些圖書館是這樣嗎? – rotoglup 2013-09-13 19:14:48

+0

@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

2

您可以從SHOC benchmark suite下載一些OpenCL代碼示例,包括FFT。

+0

python綁定,但是這僅僅是維FFT,電源的兩...,但仍然非常有用,感謝 – Neo 2010-11-22 02:23:26

+0

尼斯!我自己編寫了這些庫中的一個。很高興在巨人的肩膀上:) – 2010-11-30 01:33:02

+0

到目前爲止任何運氣?? .... – Neo 2010-12-08 04:56:49

1

OpenMM(https://simtk.org/home/openmm)包含OpenCL的3D FFT。它可能不適用於您,因爲它是爲特定情況設計的:3D FFT,其中每個維度都足夠小以存儲在本地內存(例如100x100x100網格)中。但它確實支持非二次冪的大小(基數2,3,4和5),所以你可能會適應它。

0

看看APPML-FFT庫。雖然它仍然是兩次變革的權力。

2

可以使用空填充使任意長度的數據適合二次冪的FFT算法。考慮一下,如果這將適合你的應用程序。 增加採樣數減少了輸出域的「步長」,這意味着更高的輸出分辨率。

1

VexCL爲OpenCL提供了FFT的實現,它接受任意向量表達式作爲輸入,允許執行多維變換(任意維數),並支持任意大小的向量。以下是自述文件相關部分的link