Related articles |
---|
StreamIt Compiler Release rabbah@mit.edu (Rodric M. Rabbah) (2003-10-27) |
From: | "Rodric M. Rabbah" <rabbah@mit.edu> |
Newsgroups: | comp.compilers |
Date: | 27 Oct 2003 16:12:17 -0500 |
Organization: | Compilers Central |
Keywords: | tools, available |
Posted-Date: | 27 Oct 2003 16:12:16 EST |
Hi,
We are pleased to announce the first public release of the StreamIt
compilation infrastructure. StreamIt is a programming language and a
compilation infrastructure, engineered for modern streaming systems.
To download StreamIt, or for more information, please visit:
http://cag.csail.mit.edu/streamit/
The features of StreamIt 2.0 include:
- Language constructs that improve programmer productivity for
streaming, including hierarchical structured streams, graph
parameterization, and circular buffer management.
- An optimizing compiler infrastructure for the Raw microprocessor,
with fully automatic load balancing, graph layout, communication
scheduling, and routing.
- A robust compilation infrastructure that compiles to an ANSI C
runtime library for execution on a general-purpose uniprocessor.
- A set of domain-specific optimizations for linear filters, in which
each output is a weighted sum of the inputs (e.g., FIR, FFT, DCT).
The analysis automatically detects linear filters and performs
large-scale algebraic simplification of adjacent components, as well
as automated translation into the frequency domain.
- A dynamic programming partitioner that is used for load balancing
(in the Raw backend) and optimization selection (for linear
optimizations). The partitioner efficiently searches a large space
of hierarchical stream configurations to optimize a given metric.
- A minimal latency scheduler that leverages phased scheduling to
produce a deadlock-free schedule for hierarchical stream graphs.
Phased scheduling also offers a flexible tradeoff between code size
and buffer size.
- A high-level stream IR (in Java) with a host of graph transformations,
including graph canonicalization, synchronization removal,
refactoring of parallel components, fusion of adjacent filters
(running in parallel or in sequence), and fission of individual
filters (into data-parallel or task-parallel components.)
- A set of benchmarks for the evaluation of streaming optimizations
and architectures.
We are releasing StreamIt for both the user community and the developer
community. We look forward to interacting with you as you might start
to use or build upon the infrastructure.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.