Top Banner
March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture.
13

March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

Dec 31, 2015

Download

Documents

Allen Dorsey
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

March 12, 2007

Introduction to PS3 Cell BE Programming

Narate Taerat

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.

Page 2: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

March 12, 2007

Cell BE Architecture

Picture ref: http://gamasutra.com/features/20060721/chow_01.shtml

Page 3: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

March 12, 2007

Cell BE Architecture in PS3

PPEs

SPEs

Page 4: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

March 12, 2007

PPEs

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

Page 5: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

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

Page 6: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

March 12, 2007

Yellow Dog Linux

Easiest Linux installation on PS 3

Support to only Cell BE SDK 2.0

Page 7: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

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

Page 8: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

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

...

Page 9: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

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)

Page 10: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

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

Page 11: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

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

Page 13: March 12, 2007 Introduction to PS3 Cell BE Programming Narate Taerat.

March 12, 2007

Demo