40
Homogeneous multiprocessing for the masses Paul Stravers Philips Research

Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

  • Upload
    dangnga

  • View
    231

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

Homogeneous multiprocessingfor the masses

Paul Stravers

Philips Research

Page 2: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

2

Philips Research

Agenda

PART 1 Embedded multiprocessors• Pollack’s observation• Power efficient processors• Heterogeneous vs. homogeneous multiprocessors

PART 2 The shifting balance• Technology scaling• Efficiency gap is narrowing• Platform success depends on flexibility• Predictable system design

Page 3: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

3

Philips Research

0.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

1.5 1.0 0.7 0.5 .35 .18 .13 .09

NormalizedArea IncreasePerformanceIncrease

Source: Intel keynote PACT’00

Pollack’s observation

Pollack observed that the next processor architecture generation has:Area: 2 … 3x equivalent gatesBut only: 1.4 …1.7x more performance

The situation is getting worse over time… or is it?

Here Pollack madehis observation

Moore’sLaw

Page 4: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

4

Philips Research

How to achieve high processor clock frequencies?• Use strong buffers to quickly charge and discharge:

Power efficiency (1)

wire capacitance

• But the buffers bring their own parasitic capacitances tothe circuit, often much more than the wires!

• Typical: 2x faster clock ⇒ 4x more Joules per clock !!!!

Page 5: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

5

Philips Research

Solution is in parallelism: do multiple independentcomputations per clock cycle

• Pipelining (function parallelism):

Power efficiency (2)

register

• Instruction level parallelism (ILP) or data parallelism (SIMD):

Page 6: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

6

Philips Research

Power efficiency (3)Compare two industrial examples:• Intel Pentium-4 (Northwood) in 0.13 micron technology

– 3.0 GHz– 20 pipeline stages– Aggressive buffering to boost clock frequency– 13 nano Joule / instruction

• Philips Trimedia “Lite” in 0.13 micron technology– 250 MHz– 8 pipeline stages– Relaxed buffering, focus on instruction parallelism– 0.2 nano Joule / instruction

• Trimedia is doing 65x better than Pentium

Page 7: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

7

Philips Research

Power efficiency (4)

Who cares for power efficiency, anyway?

We do! …Because• Cost of electricity. The electricity bill of a modern PC is

about 50 euro per year. Really!• A chip package that can handle a hot processor chip costs

up to 75 euro. Just the package!• A fan (for air cooling) is expensive and noisy.• The consumer appliance box gets ugly and expensive

Ultimately, heat dissipation limits what we can compute

Page 8: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

8

Philips Research

Parallelism

• Processor innovation has been driven for 40 years byfine grain parallelism:– Pipelining– Instruction level parallelism (ILP)– Single instruction, multiple data (SIMD)

• We are now confronted with diminishing returns (Pollack)• The next big step is course grain parallelism

– Multiprocessing– Hyperthreading (not discussed here)

• The key to parallelism is finding independent operations• Course grain parallelism requires user awareness, i.e. the

programmer must find the independent functions !!!

Page 9: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

9

Philips Research

Multiprocessors (1)

Replace single big, hot processor with multiple small,efficient processors. Each computes part of the job:

Task parallelism:

decodevideo

improvepicture

Processor-1 Processor-2

Data parallelism:

decodevideo

improvepicture

decodevideo

improvepicture

Processor-1 (upper half of picture) Processor-2 (bottom half of picture)

Page 10: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

10

Philips Research

Multiprocessors (2)

Two of the most important architecture characteristics are• Synchronization

Tasks must wait on each other. For example:– only read new data after it has actually been produced

by the upstream task (task parallelism)– only proceed with next picture when all tasks are done

with current picture (data parallelism)• Communication

Move data between tasks. Two basic models:– Message passing: explicit action by sender & receiver– Shared memory: implicit access by all tasks to all data

Page 11: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

11

Philips Research

Heterogeneous vs. homogeneous multiprocessors (1)

Another important characteristic is the mix of processors.

Homogeneous:Very flexible, moderate design effort, moderate comp.efficiency

Heterogeneous:Less flexible, large design effort, high comp.efficiency

TM TM TM TM TMTM

TM MIPS audioDSP

mpegdec

pictureimprove

Page 12: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

12

Philips Research

Heterogeneous vs. homogeneous multiprocessors (2)

The following characteristics play well together:

Homogeneous ⇔ data parallelism ⇔ shared memory⇔ dynamic task mapping

Heterogeneous ⇔ task parallelism ⇔ message passing⇔ static task mapping

Historically,embedded multiprocessors favor the heterogeneous model;server multiprocessors favor the homogeneous model

Page 13: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

13

Philips Research

Example: Viper2

• Heterogeneous• Platform based• >60 different cores• Task parallelism• Sync with interrupts• Streaming

communication• Semi-static

application graph• 50 M transistors• 120nm technology• Powerful, efficient

TM3260

TM3260

MIPS PR4450

QVCP2L

QVCP5L

VIP

MSP

TDCS

MDCS

MBS

VMPG

Page 14: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

14

Philips Research

DCS-CTR

CLOCKS

GLOBAL

RESET

TM1-DBG

MIPSPR4450

M-IPC

M-GIC

MBS1

QVCP1

QVCP2

VMPG

MSP2

VLD

MSP1

S

S

S

S

S

S

S

TM32

RW

RW

TM1-IPCS

TM2-IPC

SPDIO

S

AIO1

AIO2

AIO3

GPIO

TUNNEL

MS

MS

MS

MS

MS

MS

DE

IIC1

SMC2

USB

IIC3

SMC1

S

RW

RW

S

S

S

S

S

S

MS

MS

S

RW

TM32

DCS-SEC

S

UART1 S

TM2-DBG IIC2

PCI/XIOMS

S

S

S

S

S

S

PMA-ARBS

PMA-SECS

PMA-MONS

EJTAG

BOOT

MS

MS

RW

RW

RW

MBS2 SRW

DVDD SRW

QTNR S

VIP1

VIP2 S

SW

W

EDMA SRW

VPK

TSDMAS

SRW

W

RW

R

R

RW

RW

RW

RW

RW

RW

RW

RW

RWR

W

RW

RW

M-Gate

C-Bridge

TM1-GIC

S

TM2-GICS

DENCS

DCS-SECS DCS-CTRS

T-DCSM-DCS

PMA

RW

MemoryController

RWMSMS

UART2 S

UART3 S

Page 15: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

15

Philips Research

Example: Philips Wasabi• Homogeneous multiprocessor for media applications• First 65 nm silicon expected 1st half 2006• Two-level communication hierarchy

– Top: scalable message passingnetwork plus tiles

– Tile: shared memory plus processors, accelerators

TM TM TM TM TMTM

ARM pixelsimd

videoscale

pictureimprove

TM

memory

• Fully cache coherent to support data parallelism

Page 16: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

16

Philips Research

P1

P2

P5

P4

P3

P6

P1, P2, P3 P4, P5, P6

Kahn API Kahn API

Run-time scheduler Run-time scheduler

Wasabi tile hardware

Tile-1

Wasabi tile hardware

Tile-2Link

P1

P2

P3P5

P4P6

Static task graph partitioning

Page 17: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

17

Philips Research

1 2 4124

0

1

2

3

4

5

6

7

speedup

# CPUs per tile# tiles

Limited speedup with task parallel mpeg2 decoder

Page 18: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

18

Philips Research

Data parallelism (1)

• We would like to do better than 5x speedup• MPEG2: 1920x1088 picture contains at least 68 slices• Each slice can be decoded independently from other slices• Original code in function decode_picture():

while (next_slice_start_code())decode_slice();

• New code:while (next_slice_start_code()) {

context[i] = copy_context();new_task(decode_slice, &context[i]);i = i + 1;

}wait_for_all_unfinished_tasks();

Page 19: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

19

Philips Research

Data parallelism (2)

• Create as many tasks as there are slices• Run-time scheduler maps tasks to available processors• Task surplus is good for load balancing!

main task uses8th processor

main task readywith while loop

Page 20: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

20

Philips Research

Data parallelism (3)

Level-off beyond10 trimedias

Page 21: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

21

Philips Research

Data parallelism (4)

Analysis:The main task (executing the while loop) cannot find newslices fast enough to keep >10 trimedias busy

The underlying problem is a very inefficient implementationof next_slice_start_code()

With little effort we fixed the problem, resulting in near-linear speedup for 20 trimedias and up

Surprisingly, only 1 man-week was invested in modifying theoriginal sequential code for data parallelism…

Page 22: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

22

Philips Research

Multiprocessors summary

• Pollack’s Rule calls for course grain parallelism• Programmer must be aware of course grain parallelism!• Multiprocessors can have ~2 orders better power efficiency• Heat dissipation limits what we can compute• Data parallelism scales better than task parallelism

– Requires homogeneous multiprocessor– Easier to program when sequential program available

(E.g. 1 man-week vs. 1 man-year for Kahn task graph)• Heterogeneous architectures are even more power efficient

but are less flexible and offer no data parallelism

Page 23: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

23

Philips Research

Agenda

PART 1 Embedded multiprocessors• Pollack’s observation• Power efficient processors• Heterogeneous vs. homogeneous multiprocessors

PART 2 The shifting balance• Technology scaling• Efficiency gap is narrowing• Platform success depends on flexibility• Predictable system design

Page 24: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

24

Philips Research

Effect of technology scaling on architecture

In the next few slides we show that technology scaling shiftsthe balance in favor of homogeneous, software-centeredarchitectures:

• Memory increasingly dominates silicon cost (on-chipmemory for bandwidth, Straverius’ First Law for capacity)– Smaller weight to area penalty of homogeneous

processor array• Platform with large user community is needed to recover

non-recurrent silicon costs, and reduce applicationdevelopment costs– Flexible architecture increases application range

Page 25: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

25

Philips Research

Memory speed trend[Hennessy & Patterson, 1996]

CPU60%/yr.

DRAM7% / yr.

1

10

100

100019

8019

81

1983

1984

1985

1986

1987

1988

1989

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

1982

Processor-MemoryPerformance Gap:(grows 50% / year)

Spee

d

Page 26: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

26

Philips Research

Implications (1)

CPI ≈ cache_miss_rate * mem_latencycache_miss_rate ≅ 1/sqrt(cache_size)Keeping CPI constant:

⇒ cache_size ≅ (CPU_memory_gap)2

⇒ cache_size ≅ (1.5)2 / yr ≈ 2.2x / yr

Viper-1: 72 kB Viper-2: 192 kB

Page 27: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

27

Philips Research

Embedded DRAM speed

• Embedded DRAM frequency scales much better• Straverius’ Law takes over:

– new technology node computes S times faster– need S times bigger cache, memory– results in 1.1x / yr cache size increase

CPU

mem

ory

New processgeneration

CPU

mem

ory

scaling CPU

mem

ory

Faster CPU needsmore memory

balancing

Page 28: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

28

Philips Research

Memory bandwidth trend

20% / year more bandwidth

’01 ’02 ’03 ’04 ’05

4.8 GB/s

4 GB/s

DDR366, 2.9 GB/s

Source: JEDEC/AMI2, Intel, Samsung

’06

Page 29: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

29

Philips Research

Memory bandwidth trend

• Compute speed, bandwidth: 60% / year• DDR, DDR2 bandwidth: 20% / year

Bandwidth mismatch increasing 35% / yr

Page 30: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

30

Philips Research

Efficiency gap is narrowing

• Memory footprint is predominantly determined by theapplication, much less by the architecture

• Technology scaling gradually replaces the intrinsiccomputation component with memory

CPUDSP

ASIC

Log

area

_effi

cien

cy

time

constantefficiency gap

intrinsic efficiency

archinnovation

system efficiency

CPUDSP

ASIC

Log

area

_effi

cien

cytime

narrowinggap

buffers go on-chip

for bandwidth

Page 31: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

31

Philips Research

What is a platform (1)

A platform is a collection of assets that are shared by aset of products. These assets can be divided intofour categories:

Source: Robertson and Ulrich

• Components• Processes• Knowledge• People and relationships

A successful platform needs all four ingredients!

Page 32: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

32

Philips Research

What is a platform (2)

• The platform approach contrasts with product-specificdevelopment:– define and study the product requirements– then develop optimal technology for it

• Such dedicated products are potentially of higher qualitythan their platform counterpart

• But in practice one-time development endeavors oftenresult in product flaws due to lack of experience

• Platforms, in contrast, can be improved thru feedbackfrom earlier products

Page 33: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

33

Philips Research

Platform benefits

• Greater ability to tailor products• Reduced development cost and time• Reduced manufacturing cost• Reduced production investment• Reduced system complexity• Lower risk• Improved service

Source: Robertson and Ulrich

Page 34: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

34

Philips Research

Platform risks (1)

platform

Product A Product B Product X

RISK

RISKRISKRISK

platform based

application-specific

Product A

RISK

Product BRISK

Page 35: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

35

Philips Research

Platform risks (2)

• Platform benefits only materialize if all ingredients arepresent– components, processes, knowledge, community

• A lot of effort (=money) goes into platform building– components, processes, knowledge

• Pay-back only occurs when enough products are derived• This requires a large enough developer community• Typically this means that company-internal platforms do

not provide the expected benefits

⇒ Must share the platform with customers, even competitors!

Page 36: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

36

Philips Research

A stack of platforms in consumer media products

Semiconductor process platform

Digital design reuse platform

System-on-Chip architecture platform

Java

Linux

Universal Home API

TTL streaming

Nexperia API UPnP

Page 37: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

37

Philips Research

Putting it together

• Homogeneous systems are inherently more flexible thanheterogeneous systems– address broader application range– attract a larger user community

• Strong need for successful SoC platform– Non-recurrent costs keep rising– Product innovation rate keeps rising

• Efficiency gap is narrowing

Future platforms must focus on homogeneous architecture

Page 38: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

38

Philips Research

Predictable system design

• Heterogeneous systems have more predictablebehavior than homogeneous systems– Static task graph mapping– Dedicated streaming hardware functions– In general: less resource sharing

• Homogeneous embedded systems call for increasedfocus on shared resource virtualisation– Shared L2 caches: footprint and bandwidth– Bursty, latency critical memory traffic

Page 39: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system

39

Philips Research

Concluding remarks and hints for future research

• Homogeneous multiprocessors provide– A strong base for a successful media platform– Increasingly efficient processing power– Performance scaling, from low cost to high performance– Technology scaling (tiling), complement Moore’s Law– High degree of software reuse (stable SoC architecture)– Very high silicon yield (redundant SoC architecture)

• More research needed on composable resource sharing• More research needed on structured approach to shared

memory media processing

Page 40: Homogeneous multiprocessing for the masses - Semantic … · •Heterogeneous vs. homogeneous multiprocessors ... = copy_context(); new_task(decode_slice, &context[i]); ... system