On Fri, Jan 29, 2010 at 03:31:27PM +0100, Thilo Mönicke wrote: > Hi, > > I tryed to set the fft lenght to 16384... but the gcell fft only > accepts values to 4096. Its defined in the C-Files, but why? > > Do you have any working benchmarks for the ps3? > > regards, > Thilo
Sorry Thilo, I steered you in the wrong direction. The best gcell related FFT code is on CGRAN: Project description: https://www.cgran.org/wiki/GcellizedFFTW Best code: svn co https://www.cgran.org/cgran/projects/fftw-gcell/branches/developers/eb/fftw-wip This code will compute FFT's up to at least 16K points, perhaps 64K (I don't remember). It's implemented as a modified version of FFTW that knows about gcell. To test it, just build and install. By default, let fftw create the gcell job manager (FFTW will link in the right FFTW spe code. See fftw-wip/cell/gcell.cc for details.) It's also possible to link this code into your own SPE executable. With the modified FFTW library, use the regular gr.fft_vcc block, not the gcell.fft_vcc block. Eric > 2010/1/27 Eric Blossom <e...@comsec.com>: > > On Wed, Jan 27, 2010 at 11:36:14AM +0100, Thilo Mönicke wrote: > >> Hi, > >> > >> I tried to set up a little Testprogram for the PS3 which should show > >> the advantage of the Power PC structure. For that, the program should > >> calculate 10000 FFTs and take the time. Unfortunately this program is > >> much slower as a same program running at a GPP. With the tool spu-top > >> I verified that all SPUs are working... > >> > >> Do you have any idea how I could speed up my program? > > > > Currently, the break even point is higher than 1024 points due to > > the overhead to get to the SPEs and back. > > > > Try 16384 points :-) > > > > Eric > > > > > >> Here is my Python-code (only the intresting part...): > >> > >> class BenchmarkFFT(gr.top_block): > >> def __init__(self): > >> > >> ph = > >> gcell.program_handle_from_filename("/home/moenicke/gnuradio-3.2.2/gcell/lib/spu/gcell_all") > >> opts = gcell.jm_options(ph,0) > >> self.mgr = gcell.job_manager(opts) > >> gcell.set_singleton(self.mgr) > >> > >> gr.top_block.__init__(self) > >> > >> fft_len=1024 > >> n_ffts=10000 > >> > >> src = gr.noise_source_c(gr.GR_GAUSSIAN, 1.0) > >> head = gr.head(gr.sizeof_gr_complex, fft_len * n_ffts) > >> s2v = gr.stream_to_vector(gr.sizeof_gr_complex, fft_len) > >> fft= gcell.fft_vcc(fft_len, True, []) > >> sink = gr.null_sink(gr.sizeof_gr_complex * fft_len) > >> > >> self.connect (src, head, s2v, fft, sink) > >> > >> reguards > >> > >> Thilo > >> > >> @Eric: thank you for your last answer, it was a big help for me ... > > > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio