1 / 13

Introduction to PS3 Cell BE Programming

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

kay
Download Presentation

Introduction to PS3 Cell BE Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Narate Taerat Introduction to PS3 Cell BE Programming

  2. Cell BE Architecture Picture ref: http://gamasutra.com/features/20060721/chow_01.shtml

  3. Cell BE Architecture in PS3 PPEs SPEs

  4. PPEs • PowerPC Processor Element • Main Processor • 64 bit • Also support Vector/SIMD • Run the OS, Manage SPE

  5. 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

  6. Yellow Dog Linux Easiest Linux installation on PS 3 Support to only Cell BE SDK 2.0

  7. 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

  8. Cell Programming • Main Process run on PPE • Threads run on SPEs • PPE Centric programming paradigm PPE process SPE thread SPE thread SPE thread ...

  9. 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)‏

  10. 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: ???

  11. 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

  12. 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

  13. Demo

More Related