A Common Machine Language for Communication-Exposed Architectures - - PowerPoint PPT Presentation

a common machine language for communication exposed
SMART_READER_LITE
LIVE PREVIEW

A Common Machine Language for Communication-Exposed Architectures - - PowerPoint PPT Presentation

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 A Common


slide-1
SLIDE 1

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

slide-2
SLIDE 2

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 Science HPCA Work-in-Progress Session, February 2002

slide-3
SLIDE 3

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

slide-4
SLIDE 4

Programming Language Evolution

5 10 15 20 25 30 35 40 1970 1975 1980 1985 1990 1995 2000 2005

Language Effectiveness C C++ Java

slide-5
SLIDE 5

Programming Language Evolution

1 10 100 1000 10000 100000 1000000 10000000 1970 1975 1980 1985 1990 1995 2000 2005

Language Effectiveness Moore's Law

slide-6
SLIDE 6
  • Two choices:
  • Develop cool architecture with

complicated, ad-hoc language

  • Bend over backwards to support
  • ld languages like C/C++
  • Two choices:
  • Develop cool architecture with

complicated, ad-hoc language

  • Bend over backwards to support
  • ld languages like C/C++

Languages Have Not Kept Up

Modern architecture

  • Two choices:
  • Develop cool architecture with

complicated, ad-hoc language

  • Bend over backwards to support
  • ld languages like C/C++

C von-Neumann machine

slide-7
SLIDE 7

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 Speculative Execution Prefetching Branch Prediction Value Prediction

slide-8
SLIDE 8

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

slide-9
SLIDE 9
  • 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!

slide-10
SLIDE 10

The StreamIt Language

  • A high-level language for communication-

exposed architectures

  • Computation is expressed

as a hierarchical composition

  • f independent filters
slide-11
SLIDE 11

The StreamIt Language

  • A high-level language for communication-

exposed architectures

  • Computation is expressed

as a hierarchical composition

  • f independent filters
  • Features:

– High-bandwidth channels – Low-bandwidth messaging – Re-initialization

slide-12
SLIDE 12

The StreamIt Compiler

  • We have a compiler for a uniprocessor

– Performs comparably to C++ runtime system

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

For more information, see: http://cag.lcs.mit.edu/streamit/ Thank you!