discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] PS3 - gcell_fft


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] PS3 - gcell_fft
Date: Fri, 29 Jan 2010 12:51:23 -0800
User-agent: Mutt/1.5.20 (2009-08-17)

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 <address@hidden>:
> > 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 ...
> >
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]