Pyfftw比matlab fft慢

时间:2017-04-14 09:16:30

标签: python matlab fft pyfftw

我正在尝试将Pyfftw(在Python 3.6中)与matlab r2017a fft进行比较。

import time
import numpy
import pyfftw
import multiprocessing


nthread = multiprocessing.cpu_count()
print(nthread)
n=2**20
a = pyfftw.empty_aligned(n, dtype='complex128')
print("fft_object = pyfftw.builders.fft(a)")
fft_object = pyfftw.builders.fft(a) #this instruction spend much time
print("generate numbers")
a[:]= 5*numpy.random.rand(n)
print(a)
print("start fft")
start = time.clock()
y=fft_object()
end4 = time.clock() - start
print(end, time:")
print(end4)
print("result")
print(y)
print(len(y))

如果我使用matlab:

x=5*rand(2^20,1);tic;fft(x);toc

这个请求只是计算fft算法的时间,也就是python调用fft_object()时的大致相同的时间。

提前感谢您的支持。

1 个答案:

答案 0 :(得分:0)

您可以查看基于GPU的代码(如果您有合适的硬件):

http://pypi.python.org/pypi/pyfft

http://pypi.python.org/pypi/scikits.cuda

它们基于PyCuda和PyOpenCL。我对这些经验并不多,所以你必须做一些挖掘才能找到最适合你的东西。