Well, after some amount of experimentation with sysctl settings, I've been able to construct a single-thread FFT that has an input bandwidth of 8Msps, and an FFT size of 8M points!!!
This is much better than I was hoping for, and it will allow me to build a SETI analyser with 1Hz resolution. I had to balloon out kernel.shmmax to 512MB to support this application. This thing is a monster, though. The virtual size of the process is over 4G, and the resident set size is about 2.3G!! It consumes about 30% of my Quad-core Q6600 system that is overclocked to 3.5GHz. The CPU consumption was less than I was expecting, but these Core-2 CPUs have awesome floating-point performance (about 7GFLOP/core) at standard clock speeds, and even better when overclocked. My estimate of the number of FLOPs required per FFT at this size is about 1-2GFLOPs. So, now I'm trying to decide how to code the analyser. My previous analyser was done in Python, using spectral estimates stored in an FFT probe buffer. But at 8M points, I'll need to code the analysis phase in C/C++. So, do I make a "SETI Analyser" block, or use a named-pipe and feed an external analysis process? I did a FIFO-based program for purposes of testing last night, which simply takes the raw FFT outputs, and runs them through a single-pole IIR filter, and then reduces the number of bins for display using Gnu Plot. That works just fine. -- Marcus Leech Principal Investigator, Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
