|
This
is a project I have been working on with my advisor Ras Bodik
since the Fall of 2003 in collaboration with Kemal Ebciglou and Rodric Rabbah
from MIT, with the support of Vivek Sarkar, also from Watson.
StreamBit
is a tool that aims to increase productivity in the development of
applications that process streams at the bit level. Such bit-stream
programs occur in several domains such as cryptography and coding, and
they are characterized by strong performance requirements and huge
performance differences between highly tuned implementations and more
naively written ones. For this reason, widely used implementations
often combine clever high-level optimizations with careful low-level
coding. Our tool instead uses StreamIt,
a high level Domain Specific Language for streaming applications,
combined with optimization sketches to allow for separation of concerns
between the algorithm specification and the implementation details,
greatly simplifying the development process.
StreamBit is a transformation system; the
original program is transformed into an efficient implementation by
applying a set of semantics preserving transformations. The user
controls the transformation process by providing sketches that tell the
system how the code should look like after particular transformation
steps.
| Links: |
|
Distribution of the StreamBit
compiler (last updated 08/19/2005) (tar.gz)
|
|
A brief tutorial given to the
participants in the user study (PDF)
Skeleton
Code for Exercises in the tutorial
Solutions
to Exercises in the tutorial
|
| StreamIt
Page |
| PLDI05 Talk (PPT)(ZIP) |
| An older talk from my Summer at IBM in
2004
(PPT) |
| Conference
Papers: |
Armando
Solar-Lezama, Rodric Rabbah, Rastislav Bodik, Kemal Ebcioglu, "Programming by
Sketching for Bitstreaming Programs", in ACM SIGPLAN
Conference on Programming Language Design and Implementation (PLDI
'05), Chicago IL, June 2005 (BibTex)
Best paper award |
| Workshop
Papers: |
| Armando
Solar-Lezama, and Rastislav Bodik, "Templating
Transformations for Bitstream Programs," in HPCA Workshop on
Productivity and Performance in High-End Computing (P-PHEC 2004, held
in conjunction with HPCA 2004, Madrid, Spain. |
|