2011-11-19 77 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內核。