How to use gcell gang-scheduling in qa_fft.py (Python) on Cell BE?

Hi,

when i run benchmark_nop on Cell BE (PS3), i can see the speedup pretty
well.
When i take qa_fft.py as testcase i can’t see the speedup.
All SPEs run the same code for same time. So when i use 6 SPEs,
computing
takes the same time
as 1 SPE but it computes six times more.
I think i have to set gang_schedule() to true in gc_job_manager.h.
But how can i use this option in qa_fft.py?

def setUp(self):
ph =
gcell.program_handle_from_filename("…/…/gcell/lib/spu/gcell_all")
opts = gcell.jm_options(ph, 1)
self.mgr = gcell.job_manager(opts)
gcell.set_singleton(self.mgr)

gcell.jm_options() has only two parameters, in gc_job_manager.h there
are 7
options.

Maybe, somebody can help me! I want to achieve, to see the speedup as
well
with qa_fft.py as testcase.

Best Regards
Matty

On Fri, Jul 23, 2010 at 11:29:40AM +0200, matty wrote:

Hi,

when i run benchmark_nop on Cell BE (PS3), i can see the speedup pretty
well.
When i take qa_fft.py as testcase i can’t see the speedup.
All SPEs run the same code for same time. So when i use 6 SPEs, computing
takes the same time
as 1 SPE but it computes six times more.

gcell.jm_options() has only two parameters, in gc_job_manager.h there are 7
options.

Maybe, somebody can help me! I want to achieve, to see the speedup as well
with qa_fft.py as testcase.

Best Regards
Matty

I don’t believe that gang scheduling was ever implemented by the kernel.

Eric

But gang scheduling is implemented in gcell code, or i am wrong?
Do you mean the gcell kernel?
Ok, then i have to look for gc_job_manager_impl.cc.
But there are gang_scheduling constructs in gc_job_manager.h and the
matching SWIG file and in benchmark_nop.cc.

Matty

2010/7/23 Eric B. [email protected]

On Sat, Jul 24, 2010 at 09:40:55AM +0200, matty wrote:

But gang scheduling is implemented in gcell code, or i am wrong?
Do you mean the gcell kernel?
Ok, then i have to look for gc_job_manager_impl.cc.
But there are gang_scheduling constructs in gc_job_manager.h and the
matching SWIG file and in benchmark_nop.cc.

Matty

I mean the linux kernel. The spe_gang_context was defined in the
libspe2
interface, but I’m pretty sure that it doesn’t change any behavior.
IIRC, this was dicussed on the cbe-oss-dev mailing list, which was the
place for discussion of everything about Cell on Linux.

FWIW, you should be able to set the flag in opts like this:

opts = gcell.jm_options(ph, 1)
opts.gang_schedule = True

Eric