cell software model - nc state universitymueller/cluster/ps3/workshop/day1_04_c… · a properly...

30
Systems and Technology Group Course Code: L2T1H1-11 Cell Software Model 06/27/06 © 2006 IBM Corporation Cell Software Model Course Code: L2T1H1-11 Cell Ecosystem Solutions Enablement

Upload: others

Post on 24-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

Course Code: L2T1H1-11 Cell Software Model 06/27/06 © 2006 IBM Corporation

Cell Software Model

Course Code: L2T1H1-11Cell Ecosystem Solutions Enablement

Page 2: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/062

Class Objectives – Things you will learn

Cell software considerations including • Two levels of parallelism: SIMD and parallel task execution• Computational

– Multicore– Multithreading – Multiple local store accesses

• Commutational– DMA and bus bandwidth– Traffic control– Shared memory/message passing– Synchronization

Programming models that exploit cell features

Page 3: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/063

Class Agenda

Cell Software Design Considerations Cell Programming Model OverviewPPE Programming ModelsSPE Programming ModelsParallel Programming ModelsMulti-tasking SPEsCell Software Development Flow

ReferencesMichael Day, Ted Maeurer, and Alex Chow, Cell Software Overview

TrademarksCell Broadband Engine ™ is a trademark of Sony Computer Entertainment, Inc.

Page 4: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/064

CELL software design considerationsTwo Levels of Parallelism– Regular vector data that is SIMD-able

– Independent tasks that may be executed in parallel

Computational– SIMD engines on 8 SPEs and 1 PPE (multi-threaded)

– Parallel sequence to be distributed over 8 SPE / 1 PPE

– 256KB local store per SPE usage (data + code)

Communicational– DMA and Bus bandwidth

• DMA granularity – 128 bytes• DMA bandwidth among LS and System memory

– Traffic control• Exploit computational complexity and data locality to lower data traffic requirement

– Shared memory / Message passing abstraction overhead

– Synchronization

– DMA latency handling

Page 5: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/065

The role of Cell programming models

Cell provides a massive computational capacity.

Cell provides a huge communicational bandwidth.

The resources are distributed.

A properly selected Cell programming model provides a programmer a systematic and cost-effective framework to apply Cell resources to a particular class of applications.

A Cell programming model may be supported by language constructs, runtime, libraries, or object-oriented frameworks.

Page 6: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/066

Cell programming models

SPE LS

SPE LS

PPE thread

Large small

Multi-SPE

BE-level

Effective AddressSpace

Single Cell environment:

PPE programming models

SPE Programming models– Small single-SPE models

– Large single-SPE models

– Multi-SPE parallel programming models

Cell Embedded SPE Object Format (CESOF)

Page 7: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/067

Cell programming models - continued

Multi-tasking SPEs– Local Store resident multi-tasking

– Self-managed multi-tasking

– Kernel-managed SPE scheduling and virtualization

Application development flow

Final programming model points

Page 8: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/068

PPE programming model (participation)PPE is a 64-bit PowerPC core, hosting operating systems and hypervisorPPE program inherits traditional programming modelsCell environment: a PPE program serves as a controller or facilitator– CESOF support provides SPE image handles to the PPE runtime– PPE program establishes a runtime environment for SPE programs

• e.g. memory mapping, exception handling, SPE run control– It allocates and manages Cell system resources

• SPE scheduling, hypervisor CBEA resource management– It provides OS services to SPE programs and threads

• e.g. printf, file I/O

Page 9: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/069

Small single-SPE modelsSingle tasked environmentSmall enough to fit into a 256KB- local storeSufficient for many dedicated workloadsSeparated SPE and PPE address spaces – LS / EAExplicit input and output of the SPE program– Program arguments and exit code per SPE ABI– DMA– Mailboxes– SPE side system callsFoundation for a function offload model or a synchronous RPC model– Facilitated by interface description language (IDL)

Page 10: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0610

Small single-SPE models – tools and environment

SPE compiler/linker compiles and links an SPE executable

The SPE executable image is embedded as reference-able RO data in the PPE executable (CESOF)

A Cell programmer controls an SPE program via a PPE controlling process and its SPE management library

– i.e. loads, initializes, starts/stops an SPE program

The PPE controlling process, OS/PPE, and runtime/(PPE or SPE) together establish the SPE runtime environment, e.g. argument passing, memory mapping, system call service.

Page 11: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0611

Small single-SPE models – a sample

/* spe_foo.c:* A C program to be compiled into an executable called “spe_foo”*/

int main( int speid, addr64 argp, addr64 envp){char i;

/* do something intelligent here */i = func_foo (argp);

/* when the syscall is supported */printf( “Hello world! my result is %d \n”, i);

return i;}

Page 12: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0612

Small single-SPE models – PPE controlling program

extern spe_program_handle spe_foo; /* the spe image handle from CESOF */

int main(){int rc, status;speid_t spe_id;

/* load & start the spe_foo program on an allocated spe */spe_id = spe_create_thread (0, &spe_foo, 0, NULL, -1, 0);

/* wait for spe prog. to complete and return final status */rc = spe_wait (spe_id, &status, 0);

return status;}

Page 13: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0613

Large single-SPE programming models

Data or code working set cannot fit completely into a local storeThe PPE controlling process, kernel, and libspe runtime set up the system memory mapping as SPE’s secondary memory storeThe SPE program accesses the secondary memory store via its software-controlled SPE DMA engine - Memory Flow Controller (MFC)

SPE Program

System Memory

PPE controller maps system memory for

SPE DMA trans.

Local Store

DMA transactions

Page 14: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0614

Large single-SPE programming models – I/O data

System memory for large size input / output data– e.g. Streaming model

int g_ip[512*1024]

System memory

int g_op[512*1024]

int ip[32]

int op[32]

SPE program: op = func(ip)

DMA

DMA

Local store

Page 15: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0615

Large single-SPE programming models

System memory as secondary memory store– Manual management of data buffers

– Automatic software-managed data cache • Software cache framework libraries• Compiler runtime support

Global objects

System memory

SW cache entriesSPE program

Local store

Page 16: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0616

Large single-SPE programming models

System memory as secondary memory store– Manual loading of plug-in into code buffer

• Plug-in framework libraries– Automatic software-managed code overlay

• Compiler generated overlaying code System memory

Local store

SPE plug-in b

SPE plug-in a

SPE plug-in e

SPE plug-in a

SPE plug-in b

SPE plug-in c

SPE plug-in d

SPE plug-in e

SPE plug-in f

Page 17: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0617

Large single-SPE prog. models – Job Queue

Code and data packaged together as inputs to an SPE kernel program

A multi-tasking model – more discussion later

Job queue

System memory

Local store

code/data ncode/data n+1code/data n+2

code/data …

Code nData n

SPE kernel

DMA

Page 18: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0618

Large single-SPE programming models - DMA

DMA latency handling is critical to overall performance for SPE programs moving large data or codeData pre-fetching is a key technique to hide DMA latency– e.g. double-buffering

Time

I Buf 1 (n) O Buf 1 (n)

I Buf 2 (n+1) O Buf 2 (n-1)

SPE program: Func (n)

outputn-2 inputn Outputn-1

Func (inputn)

Inputn+1

Func (inputn+1)Func (inputn-1)

outputn Inputn+2DMAs

SPE exec.

DMAs

SPE exec.

Page 19: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0619

Large single-SPE programming models - CESOFCell Embedded SPE Object Format (CESOF) and PPE/SPE toolchains support the resolution of SPE references to the global system memory objects in the effective-address space.

_EAR_g_foo structure

Local Store Space

Effective Address Space

Char g_foo[512]

Char local_foo[512]

DMA transactions

CESOF EARsymbol resolution

Page 20: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0620

Parallel programming models

Traditional parallel programming models applicable

Based on interacting single-SPE programs

Parallel SPE program synchronization mechanism• Cache line-based MFC atomic update commands similar to the

PowerPC lwarx, ldarx, stwcx, and stdcx instructions• SPE input and output mailboxes with PPE• SPE signal notification / register• SPE events and interrupts• SPE busy poll of shared memory location

Page 21: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0621

Parallel programming models – Shared Memory

Access data by address– Random access in nature

CESOF support for shared effective-address variables

With proper locking mechanism, large SPE programs may access shared memory objects located in the effective-address space

Compiler OpenMP support

Page 22: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0622

Parallel programming models – Streaming

Large array of data fed through a group of SPE programs

A special case of job queue with regular data

Each SPE program locks on the shared job queue to obtain next job

For uneven jobs, workloads are self-balanced among available SPEs

PPE

SPE1Kernel()

SPE0Kernel()

SPE7Kernel()

System Memory

In

.I7

I6

I5

I4

I3

I2

I1

I0

On

.O7

O6

O5

O4

O3

O2

O1

O0

…..

Page 23: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0623

Parallel programming models – Message Passing

Access data by connection

– Sequential in nature

Applicable to SPE programs where addressable data space only spans over local store

The message connection is still built on top of the shared memory model

Compared with software-cache shared memory model– More efficient runtime is possible, no address info handling overhead

once connected

– LS to LS DMA optimized for data streaming through pipeline model

Page 24: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0624

Parallel programming models – Pipeline

Use LS to LS DMA bandwidth, not system memory bandwidth

Flexibility in connecting pipeline functions

Larger collective code size per pipeline

Load-balance is harderPPE

SPE1Kernel1()

SPE0Kernel0()

SPE7Kernel7()

System Memory

In

.

.I6

I5

I4

I3

I2

I1

I0

On

.

.O6

O5

O4

O3

O2

O1

O0

…..DMA DMA

Page 25: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0625

Multi-tasking SPEs – LS resident multi-tasking

Simplest multi-tasking programming model

No memory protection among tasks

Co-operative, Non-preemptive, event-driven scheduling

acadxacd

Task a

Task b

Task c

Task d

Task x

EventDispatcher

Local Store

SPE n

Event Queue

Page 26: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0626

Multi-tasking SPEs – Self-managed multi-tasking

Non-LS resident

Blocked job context is swapped out of LS and scheduled back later to the job queue once unblocked

Job queue

System memory

Local store

task ntask n+1task n+2

Task …

Code nData n

SPE kerneltask n’

task queue

Page 27: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0627

Multi-tasking SPEs – Kernel managed

Kernel-level SPE management model– SPE as a device resource– SPE as a heterogeneous processor– SPE resource represented as a file system

SPE scheduling and virtualization– Maps running threads over a physical SPE or a group of SPEs– More concurrent logical SPE tasks than the number of physical SPEs – High context save/restore overhead

• favors run-to-completion scheduling policy– Supports pre-emptive scheduling when needed– Supports memory protection

Page 28: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0628

Typical CELL Software Development Flow

Algorithm complexity studyData layout/locality and Data flow analysisExperimental partitioning and mapping of the algorithm and program structure to the architectureDevelop PPE Control, PPE Scalar codeDevelop PPE Control, partitioned SPE scalar code– Communication, synchronization, latency handlingTransform SPE scalar code to SPE SIMD codeRe-balance the computation / data movementOther optimization considerations– PPE SIMD, system bottle-neck, load balance

Page 29: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0629

Programming Model Final PointsA proper programming model reduces development cost while achieving higher performanceProgramming frameworks and abstractions help with productivityMixing programming models are common practiceNew models may be developed for particular applications.With the vast computational capacity, it is not hard to achieve a performance gain from an existing legacy baseTop performance is harderTools are critical in improving programmer productivity

Page 30: Cell Software Model - Nc State Universitymueller/cluster/ps3/workshop/Day1_04_C… · A properly selected Cell programming model provides a programmer a systematic and cost-effective

Systems and Technology Group

© 2006 IBM CorporationCourse Code: L2T1H1-11 Cell Software Model 06/27/0630

(c) Copyright International Business Machines Corporation 2006.All Rights Reserved. Printed in the United Sates September 2006.

The following are trademarks of International Business Machines Corporation in the United States, or other countries, or both. IBM IBM Logo Power Architecture

Other company, product and service names may be trademarks or service marks of others.

All information contained in this document is subject to change without notice. The products described in this document are NOT intended for use in applications such as implantation, life support, or other hazardous uses where malfunction could result in death, bodily injury, or catastrophic property damage. The information contained in this document does not affect or change IBM product specifications or warranties. Nothing in this document shall operate as an express or implied license or indemnity under the intellectual property rights of IBM or third parties. All information contained in this document was obtained in specific environments, and is presented as an illustration. The results obtained in other operating environments may vary.

While the information contained herein is believed to be accurate, such information is preliminary, and should not be relied upon for accuracy or completeness, and no representations or warranties of accuracy or completeness are made.

THE INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED ON AN "AS IS" BASIS. In no event will IBM be liable for damages arising directly or indirectly from any use of the information contained in this document.

IBM Microelectronics Division The IBM home page is http://www.ibm.com1580 Route 52, Bldg. 504 The IBM Microelectronics Division home page is Hopewell Junction, NY 12533-6351 http://www.chips.ibm.com