march 12, 2007 introduction to ps3 cell be programming narate taerat
TRANSCRIPT
March 12, 2007
Introduction to PS3 Cell BE Programming
Narate Taerat
QuickTime™ and aTIFF (Uncompressed) decompressor
are needed to see this picture.
March 12, 2007
Cell BE Architecture
Picture ref: http://gamasutra.com/features/20060721/chow_01.shtml
March 12, 2007
Cell BE Architecture in PS3
PPEs
SPEs
March 12, 2007
PPEs
• PowerPC Processor Element• Main Processor• 64 bit• Also support Vector/SIMD• Run the OS, Manage SPE
March 12, 2007
SPEs
• Synergistic Processor Element• 128-bit RISC, SIMD (vector) processor• 256 KB local storage memory• Use DMA to transfer data between local storage
and main memory
March 12, 2007
Yellow Dog Linux
Easiest Linux installation on PS 3
Support to only Cell BE SDK 2.0
March 12, 2007
Fedora Core 6
• Support Cell BE SDK 2.1
• More difficult to install• See instruction at
– www.ps3coderz.com/index2.php?option=com_content&do_pdf=1&id=73
March 12, 2007
Cell Programming
• Main Process run on PPE• Threads run on SPEs• PPE Centric programming paradigm
PPE process
SPE thread
SPE thread
SPE thread
...
March 12, 2007
PPE programming basic
• To create a SPE thread• speid_t spe_create_thread (
spe_gid_t gid, spe_program_handle_t *spe_program_handle, void
*argp, void *envp,
unsigned long *mask, int flags) • To wait a thread to complete• void speid_wait (
speid_t id, int *status, int option)
March 12, 2007
SPE Programming basic
• To put data to and get data from PPE• mfc_get(ls, ea, size, tag, tid, rid) • mfc_put(ls, ea, size, tag, tid, rid)
void* ls: Local Storagevoid* ea: Effective Address (of PPE)size_t size: size, in byte, of transfer memoryint tag: DMA tag (0-31)int tid, rid: ???
March 12, 2007
Compiling + Linking
• First compile SPE– spu-gcc spe_src.c -o spe_bin
• Embed it to a specific variable– embedspu spe_handle_var spu_bin embeded_spe.o
• Compile PPE and link to SPE– gcc ppe_src.c embeded_spe.o -lspu -o ppe_bin
March 12, 2007
Reference & Sources
• CBE Programming Tutorialhttp://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/FC857AE550F7EB83872571A80061F788
• Cell SDK & Linux installation tutorialwww.ps3coderz.com/index2.php?option=com_content&do_pdf=1&id=73
http://www-128.ibm.com/developerworks/power/library/pa-linuxps3-1/
http://www-128.ibm.com/developerworks/power/library/pa-linuxps3-2/
http://www-128.ibm.com/developerworks/power/library/pa-linuxps3-3/
• Resources– http://hpci.latech.edu
March 12, 2007
Demo