From: John Larkin on 18 Apr 2008 22:42 Hi, Does anybody have an estimate of how long it might take to do a million-point FFT on a modern Intel PC? Google is no help. Our data would be from a 16-bit ADC, but I get the impression that, on an Intel machine, a floating-point fft might be faster than fixed-point. John
From: linnix on 18 Apr 2008 23:14 On Apr 18, 7:42 pm, John Larkin <jjlar...(a)highNOTlandTHIStechnologyPART.com> wrote: > Hi, > > Does anybody have an estimate of how long it might take to do a > million-point FFT on a modern Intel PC? Google is no help. > > Our data would be from a 16-bit ADC, but I get the impression that, on > an Intel machine, a floating-point fft might be faster than > fixed-point. > > John If I did the test right, 15 to 20 seconds on a Pentium 200.
From: Antonio Pasini on 19 Apr 2008 03:06 Il 19/04/2008 4.42, John Larkin ha scritto: > Hi, > > Does anybody have an estimate of how long it might take to do a > million-point FFT on a modern Intel PC? Google is no help. > > Our data would be from a 16-bit ADC, but I get the impression that, on > an Intel machine, a floating-point fft might be faster than > fixed-point. > > John > Have a look at http://www.fftw.org; it's one of the fastest free fft library on PC. They maintain an huge benchmark suite.
From: Andrew Holme on 19 Apr 2008 04:19 "Antonio Pasini" <removethis_antonio.pasini(a)alice.it> wrote in message news:480999E2.1010602(a)alice.it... > Il 19/04/2008 4.42, John Larkin ha scritto: >> Hi, >> >> Does anybody have an estimate of how long it might take to do a >> million-point FFT on a modern Intel PC? Google is no help. >> >> Our data would be from a 16-bit ADC, but I get the impression that, on >> an Intel machine, a floating-point fft might be faster than >> fixed-point. >> >> John >> > > Have a look at http://www.fftw.org; it's one of the fastest free fft > library on PC. They maintain an huge benchmark suite. > I use FFTW. A one-million point FFT in double precision arithmetic takes 172 ms on my 1.7 GHz Pentium. See code and output below. Time = 172 ms 0, -2.8582e-011 1, -2.8871e-011 2, -2.9773e-011 3, -3.1409e-011 4, -3.4026e-011 5, -3.8109e-011 6, -4.4659e-011 7, -5.6043e-011 8, -7.9395e-011 9, -1.5043e-010 10, 0.5 11, 1.3611e-010 12, 6.4959e-011 13, 4.1423e-011 14, 2.9773e-011 15, 2.2866e-011 16, 1.8322e-011 17, 1.5123e-011 18, 1.276e-011 19, 1.0951e-011 Press any key to continue #include "fftw3.h" #include <windows.h> #include <stdio.h> #include <math.h> #define LEN 1000000 fftw_complex *t, *f; fftw_plan t2f; #define PI 3.1415926535 int main() { int i; t = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * LEN); f = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * LEN); t2f = fftw_plan_dft_1d(LEN, t, f, FFTW_FORWARD, FFTW_ESTIMATE); for (i=0; i<LEN; i++) { t[i][0] = cos(2*PI*10*i/LEN); t[i][1] = 0; } long start = GetTickCount(); fftw_execute(t2f); printf("Time = %d ms\n", GetTickCount() - start); for (i=0; i<20; i++) printf("%d, %0.5g\n", i, f[i][0]/LEN); fftw_destroy_plan(t2f); fftw_free(t); fftw_free(f); return 0; }
From: John Larkin on 19 Apr 2008 11:09
On Sat, 19 Apr 2008 09:19:04 +0100, "Andrew Holme" <ah(a)nospam.co.uk> wrote: > >"Antonio Pasini" <removethis_antonio.pasini(a)alice.it> wrote in message >news:480999E2.1010602(a)alice.it... >> Il 19/04/2008 4.42, John Larkin ha scritto: >>> Hi, >>> >>> Does anybody have an estimate of how long it might take to do a >>> million-point FFT on a modern Intel PC? Google is no help. >>> >>> Our data would be from a 16-bit ADC, but I get the impression that, on >>> an Intel machine, a floating-point fft might be faster than >>> fixed-point. >>> >>> John >>> >> >> Have a look at http://www.fftw.org; it's one of the fastest free fft >> library on PC. They maintain an huge benchmark suite. >> > >I use FFTW. A one-million point FFT in double precision arithmetic takes >172 ms on my 1.7 GHz Pentium. Cool! I had no idea if it was milliseconds or minutes. We'd only have to do it every second or so, so we have lots of time. (I'm getting ready to make a proposal/presentation next week, and I have to simulate intelligence.) Thanks, guys. John > >See code and output below. > > >Time = 172 ms >0, -2.8582e-011 >1, -2.8871e-011 >2, -2.9773e-011 >3, -3.1409e-011 >4, -3.4026e-011 >5, -3.8109e-011 >6, -4.4659e-011 >7, -5.6043e-011 >8, -7.9395e-011 >9, -1.5043e-010 >10, 0.5 >11, 1.3611e-010 >12, 6.4959e-011 >13, 4.1423e-011 >14, 2.9773e-011 >15, 2.2866e-011 >16, 1.8322e-011 >17, 1.5123e-011 >18, 1.276e-011 >19, 1.0951e-011 >Press any key to continue > > >#include "fftw3.h" >#include <windows.h> >#include <stdio.h> >#include <math.h> > >#define LEN 1000000 > >fftw_complex *t, *f; >fftw_plan t2f; > >#define PI 3.1415926535 > >int main() >{ > int i; > > t = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * LEN); > f = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * LEN); > > t2f = fftw_plan_dft_1d(LEN, t, f, FFTW_FORWARD, FFTW_ESTIMATE); > > for (i=0; i<LEN; i++) { > t[i][0] = cos(2*PI*10*i/LEN); > t[i][1] = 0; > } > > long start = GetTickCount(); > fftw_execute(t2f); > printf("Time = %d ms\n", GetTickCount() - start); > > for (i=0; i<20; i++) printf("%d, %0.5g\n", i, f[i][0]/LEN); > > fftw_destroy_plan(t2f); > fftw_free(t); > fftw_free(f); > > return 0; >} > > > |