Top Banner
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
15

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

Jan 19, 2016

Download

Documents

Patricia Brown
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: 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!