130 likes | 287 Views
Narate Taerat. Introduction to PS3 Cell BE Programming. Cell BE Architecture. Picture ref: http://gamasutra.com/features/20060721/chow_01.shtml. Cell BE Architecture in PS3. PPEs. SPEs. PPEs. PowerPC Processor Element Main Processor 64 bit Also support Vector/SIMD
E N D
Narate Taerat Introduction to PS3 Cell BE Programming
Cell BE Architecture Picture ref: http://gamasutra.com/features/20060721/chow_01.shtml
Cell BE Architecture in PS3 PPEs SPEs
PPEs • PowerPC Processor Element • Main Processor • 64 bit • Also support Vector/SIMD • Run the OS, Manage SPE
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
Yellow Dog Linux Easiest Linux installation on PS 3 Support to only Cell BE SDK 2.0
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
Cell Programming • Main Process run on PPE • Threads run on SPEs • PPE Centric programming paradigm PPE process SPE thread SPE thread SPE thread ...
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)
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 Storage void* ea: Effective Address (of PPE) size_t size: size, in byte, of transfer memory int tag: DMA tag (0-31) int tid, rid: ???
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
Reference & Sources • CBE Programming Tutorial http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/FC857AE550F7EB83872571A80061F788 • Cell SDK & Linux installation tutorial www.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