Saturday, December 16, 2006

Working on the Cell BE

For one of my courses (Computer Architecture), we (my partner and I), decided to port the popular ffmpeg library to the Cell Broadband engine. Yep, this is the same processor that was developed for the Playstation 3. It has got impressive computation capabilities that made us believe it would lead to significant speed-ups to video encoding. We already knew of real-time encoders written by Toshiba for H.264 (the industry's leading-edge codec), and so we decided to do the port for MPEG-4.

Our initial attempts to get hold of a Playstation 3 failed :D, and we had to settle for using the simulator to code our application.

Since we had no idea what approach would lead to a speed-up we tried many approaches, coding, benchmarking and then deciding what to do next. We got very close to both ffmpeg and Cell, but in the end, we had underestimated the task of porting a legacy application to the Cell. If you're wondering why most of your applications are not multi-core yet, you better realise it's hard. Even more, the Cell has 9 cores, 8 of which can only access their own memories (256K). Fun.

Our final results were not impressive. We could only port a single function off to the SPU (one of the 8 vector cores), and not take advantage at all of the 8 cores. Thankfully, despite the overhead, we had 0% speedup. That does mean there is scope here. Let's see, I'll be continuing on this project for some more time. Hopefully it'll lead me to some interesting research problems.

For now, I'll be content pushing the changes we made back to ffmpeg.

P.S.: Anybody tired of their PS3 and wishing to donate it, can please contact me.

2 comments:

Rupin Chheda said...

Well I dont have a ps3 although i have been able to spot a dust picking ps2..let me know if it will work...and yes..if it will i suppose you will be able to return back in the same shape(hardware/software) :)

ksp said...

Play that PS2 man!

Anyways, thanks, but the PS2 doesn't have the Cell processor. It's only the PS3 that has one.