PS3 - gcell_fft

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?

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 …

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

2010/1/27 Eric B. [email protected]:

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 :slight_smile:

Eric

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