2011-11-19 22 views
1

我有一个任务,涉及计算非常大的维度的一维FFT。而且,“非常大”的意思是超出我物理记忆的量。例如,我现在的系统中有16 GB的内存,这足以同时保持2^30个双精度浮点数。我希望能够做2^30的维度的FFT,并且可能对更大数量的浮点数(例如2^35)进行FFT,这显然需要逐块将它们传递到FFT库。giga样本和更长的FFT

根据我的测试,IPP FFT不会超过2^27,NVIDIA CUFFT不会超过2^24。我已经能够编写一些代码来做到这一点,但我对性能不满意。

是否有开源项目或图书馆会为我做这个?

+0

你试过fftw吗? – hpixel

+1

您需要的搜索项是“Out-of-core FFT” - 请参阅Cormen和Nicol:http://www.cs.dartmouth.edu/~thc/papers/PER.ps.gz –

回答

2

外核FFT将受可用磁盘带宽的限制,如果不是最佳条带化,则磁盘搜索延迟将受到限制。您可能会考虑在您的系统上安装一对快速固态硬盘驱动器,或者在具有足够物理内存的服务器(在“云”中)租用时间(并且可能还有包含巨大数据中心的CPU,可能是安腾或Power 7) FFT内核。