4

我有一些代码大量使用np.fft.rfftand np.fft.irfft,因此这是优化的瓶颈。

有没有比这更快的机会,如果是这样,我最好的选择是什么。我的想法是:

  • Cython - 听说这非常快;但它在这里有帮助吗?
  • 深入研究 numpy- rfftcalls_raw_fft进行大量检查然后调用fftpack.cfftf。Profiler 告诉我只有 80% 的时间在fftpack.cfftf,将包装剥离到我需要的唯一位可以节省一点时间。
  • 在某处找到更快的 DFT 算法?
  • 购买更多电脑

所以真的问题归结为:

  1. 有 Cython 经验的人知道是否值得在这里尝试 - 或者它不能让 numpy 更快。
  2. 有没有更快的包呢?可以快多少?
4

1 回答 1

6

我发现这个问题/答案实际上回答了这个问题的一部分:

https://stackoverflow.com/a/8481916/1900520

表明 scipy 中还有另一个 FFT 实现要快得多,而且还有一个名为 FFTW 的包速度更快(在这些基准测试中高达大约 3 倍)。

所以这就留下了 Cython 是否会让这一切更快的问题。

于 2013-08-30T15:35:08.103 回答