1
Pyftt (Python 3.6)와 matlab r2017a fft를 비교하려고합니다. 난 MATLAB를 사용하면 동시에matlab fft보다 Pyfftw가 느림
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))
:
x=5*rand(2^20,1);tic;fft(x);toc
요청 FFT 알고리즘의 계산을위한 단지 시간, 즉 fft_object에 파이썬 통화 approximatively 동시에이다().
친절한 지원에 미리 감사드립니다. (당신이 적절한 하드웨어를 가지고있는 경우)
그래서 Matlab 호출은 PyFFTW만큼 빠르다. Matlab은 FFTW도 사용하지만 인텔 MKL 가속을 사용하여 컴파일합니다. Intel의 C 컴파일러 나 MKL 라이브러리가 없으면 PyFFTW는 Matlab의 FFT보다 느릴 수 있습니다. –
'pyfftw.builders.fft' 단계는 기본적으로 FFTW가 실제 측정으로 최적화 된 FFT 체계를 찾기 때문에 시간이 오래 걸립니다 : https://hgomersall.github.io/pyFFTW/pyfftw/builders/builders.html#additional을 참조하십시오. 특히'planner_effort' 플래그. 이 측정 값을 파일로 내보내려면'export_wisdom'을 사용하고,로드하려면'import_wisdom'을 사용하면 많은 시간을 절약 할 수 있습니다. Matlab 사용자는 계획을 세우고 지혜를 다루는 데 어려움을 겪을 수 없기 때문에 FFTW에게 FFT 스키마를 신속하게 '추정'할 것을 지시합니다. –
질문을 업데이트하고 Python과 Matlab의 출력 시간을 포함 할 수 있습니까? –