A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek,...

15
A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory for Computer Science HPCA Work-in-Progress Session, February 2002

Transcript of A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek,...

Page 1: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

A Common Machine Language

for Communication-Exposed Architectures

Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman

Amarasinghe

MIT Laboratory for Computer ScienceHPCA Work-in-Progress Session, February 2002

Page 2: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

A Common Machine Language

for Communication-Exposed Architectures

Language Designers Have Been Ignoring Architects

Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman

Amarasinghe

MIT Laboratory for Computer ScienceHPCA Work-in-Progress Session, February 2002

Page 3: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

Back in The Good Old Days…

•Architecture: simple von-Neumann•“Common Machine Language”: C

–Abstracts away idiosyncratic differences•Instruction set • Pipeline depth•Cache configuration • Register layout

–Exposes common properties•Program counter • Arithmetic instructions•Monolithic memory

–Efficient implementations on many machines

–Portable: everyone uses it

Page 4: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

Programming Language Evolution

0

5

10

15

20

25

30

35

40

1970 1975 1980 1985 1990 1995 2000 2005

Language Effectiveness

C

C++

Java

Page 5: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

Programming Language Evolution

1

10

100

1000

10000

100000

1000000

10000000

1970 1975 1980 1985 1990 1995 2000 2005

Language EffectivenessMoore's Law

Page 6: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

•Two choices:•Develop cool architecture with complicated, ad-hoc language

•Bend over backwards to supportold languages like C/C++

•Two choices:•Develop cool architecture with complicated, ad-hoc language

•Bend over backwards to supportold languages like C/C++

Languages Have Not Kept Up

Modernarchitecture

•Two choices:•Develop cool architecture with complicated, ad-hoc language

•Bend over backwards to supportold languages like C/C++

C von-Neumannmachine

Page 7: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

Evidence: Superscalars•Huge effort into improving performance of sequential instruction stream

•Complexity has grown unmanageable•Even with 1 billion transistors on a chip, what more can be done?

Renaming

Out-of-Order

Execution

Pipelining

SpeculativeExecution

Prefetching

BranchPrediction

ValuePrediction

Page 8: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

A New Era of Architectures

•Facing new design parameters–Transistors are in excess–Wire delays will dominate

•“Communication-exposed” architectures–Explicitly parallel hardware–Compiler-controlled communication–e.g. RAW, Smart Memories, TRIPS, Imagine, the Grid Processor, Blue Gene

Page 9: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

•Should expose shared properties:–Explicit parallelism (multiple program counters)

–Regular communication patterns–Distributed memory banks–No global clock

A New Common Machine Language

•Should expose shared properties:–Explicit parallelism (multiple program counters)

–Regular communication patterns

•Should hide small differences:–Granularity of computation elements–Topology of network interconnect– Interface to memory units

C does not qualify!

Page 10: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

The StreamIt Language•A high-level language for communication-exposed architectures

•Computation is expressed as a hierarchical composition of independent filters

Page 11: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

The StreamIt Language•A high-level language for communication-exposed architectures

•Computation is expressed as a hierarchical composition of independent filters

•Features:–High-bandwidth channels–Low-bandwidth messaging–Re-initialization

Page 12: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

The StreamIt Compiler•We have a compiler for a uniprocessor

–Performs comparably to C++ runtime system

Page 13: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

The StreamIt Compiler•We have a compiler for a uniprocessor

–Performs comparably to C++ runtime system

•Working on a backend for RAW–Fission and fusion transformations

–Many optimizations in progress

Page 14: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

The StreamIt Compiler•We have a compiler for a uniprocessor

–Performs comparably to C++ runtime system

•Working on a backend for RAW–Fission and fusion transformations

–Many optimizations in progress

•Goal: High-performance, portable language for communication-exposed architectures

Page 15: A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory.

For more information, see:

http://cag.lcs.mit.edu/streamit/

Thank you!