INF5063 - Cell Broadband Engine Resources & FAQ

 

Page for resources and frequently asked questions for the Cell machines. If you have any other questions, please send an email to inf5063@ifi.uio.no

 The following talbe gives an overview of the status of the Playstation 3 machines in the lab at Simula. Remember that you have to SSH into oslo.simula.no to access the lab-net here at Simula. Username and password has been provided to all groups:

Cell Status
Computer Status
cell-1.ndlab.net Operational
cell-2.ndlab.net Operational
cell-3.ndlab.net Operational
cell-4.ndlab.net Operational
cell-5.ndlab.net Operational
cell-6.ndlab.net Operational
cell-7.ndlab.net Operational
cell-8.ndlab.net Operational

Please note that only one person in a group may reserve a timeslot (max 4 hours) at a time! The reason for this is to allow other user access to the Cell machines as well. We have a reservation system in place for the Playstation 3 machines here at Simula:

http://booking.ndlab.net

The login to open the page is the same you use to access the Home Exams. Remember to log into the calendar with the username and password provided to your group.

 

Cell Resources

Cell Broadband Engine Programming Handbook (IBM)

Cell SPE Runtime Management Library (IBM) 

Cell Programming Primer (Sony)

C/C++ Language Extensions for Cell Broadband Engine™ Architecture (Sony)

 

Frequently Asked Questions

 

Q: Can I use my own PS3?

A: No, not really.. You need the old "fat" PS3 with an old firmware that supports Linux.

 

Q: What software do I need if I want to run on my own PS3?

A: Here at Simula, we are running Ubuntu 9.04 Server (64-bit) with Cell SDK 3.0 (apt-get install cell-sdk).

 

Q: Linking with libraries on the SPE is not working

A: Try adding the library after the source files on the command line, e.g. spu-gcc test.c -lm -o spu-test

 

Q: How do I debug bus errors?

A: Try wrapping your DMA requests to see the addresses. E.g.:

#define spu_mfcdma32(ls, l, sz, tag, cmd) { \
    printf("spu_mfcdma32(%p, %x, %d, %d, %d) -- Line: %d\n", ls, l, sz, tag, cmd, __LINE__); \
    spu_mfcdma32(ls, l, sz, tag, cmd); \
}

#define spu_mfcdma64(ls, h, l, sz, tag, cmd) { \
    printf("spu_mfcdma64(%p, %x, %x, %d, %d, %d) -- Line: %d\n", ls, h, l, sz, tag, cmd, __LINE__); \
    spu_mfcdma64(ls, h, l, sz, tag, cmd); \
}