1 / 15

A Common Machine Language for Communication-Exposed Architectures

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.

rodney
Download Presentation

A Common Machine Language for Communication-Exposed Architectures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Common Machine Languagefor 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

  2. A Common Machine Languagefor 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

  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

  4. Programming Language Evolution

  5. Programming Language Evolution

  6. C von-Neumannmachine Languages Have Not Kept Up Modern architecture • 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++ • Two choices: • Develop cool architecture with complicated, ad-hoc language • Bend over backwards to supportold languages like C/C++

  7. BranchPrediction Pipelining Out-of-Order Execution Prefetching SpeculativeExecution Renaming 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? ValuePrediction

  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

  9. C does not qualify!  A New Common Machine Language • Should expose shared properties: • Explicit parallelism (multiple program counters) • Regular communication patterns • Distributed memory banks • No global clock • 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

  10. The StreamIt Language • A high-level language for communication-exposed architectures • Computation is expressed as a hierarchical composition of independent filters

  11. 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

  12. The StreamIt Compiler • We have a compiler for a uniprocessor • Performs comparably to C++ runtime system

  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

  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

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

More Related