StreamIT: A Complier for Streaming Applications
Streaming programs represent an increasingly important and widespread class of applications that holds unprecedented opportunitie sfor high-impact compiler technology. Unlike sequential programs with obscured dependence information and complex communication patterns, a stream program is naturally wr...
Main Authors: | , , , , , , , |
---|---|
Published: |
2023
|
Online Access: | https://hdl.handle.net/1721.1/149311 |
_version_ | 1811097366735880192 |
---|---|
author | Thies, William F. Karczmarek, Michael Gordon, Michael Maze, David Wong, Jeremy Hoffmann, Henry Brown, Matthew Amarasinghe, Saman |
author_facet | Thies, William F. Karczmarek, Michael Gordon, Michael Maze, David Wong, Jeremy Hoffmann, Henry Brown, Matthew Amarasinghe, Saman |
author_sort | Thies, William F. |
collection | MIT |
description | Streaming programs represent an increasingly important and widespread class of applications that holds unprecedented opportunitie sfor high-impact compiler technology. Unlike sequential programs with obscured dependence information and complex communication patterns, a stream program is naturally written as a set of concurrent filters with regular steady-state communication. The StreamIt language aims to provide a natural, high-level syntax that improves programmer productivity in the streaming domain. At the same time, the language imposes a hierarchical structure on the stream graph that enables novel representations and optimizations within the StreamIt compiler. We define the "stream dependence function," a fundamental relationship between the input channels of two filters in a stream graph. We also describe a suite of stream optimizations, a denotational semantics for validating these optimizations, and a novel phased scheduling algorithm for stream graphs. In addition, we have implemented a prototype of the StreamIt optimizing compiler that is showing promising results. |
first_indexed | 2024-09-23T16:58:34Z |
id | mit-1721.1/149311 |
institution | Massachusetts Institute of Technology |
last_indexed | 2024-09-23T16:58:34Z |
publishDate | 2023 |
record_format | dspace |
spelling | mit-1721.1/1493112023-03-30T03:02:01Z StreamIT: A Complier for Streaming Applications Thies, William F. Karczmarek, Michael Gordon, Michael Maze, David Wong, Jeremy Hoffmann, Henry Brown, Matthew Amarasinghe, Saman Streaming programs represent an increasingly important and widespread class of applications that holds unprecedented opportunitie sfor high-impact compiler technology. Unlike sequential programs with obscured dependence information and complex communication patterns, a stream program is naturally written as a set of concurrent filters with regular steady-state communication. The StreamIt language aims to provide a natural, high-level syntax that improves programmer productivity in the streaming domain. At the same time, the language imposes a hierarchical structure on the stream graph that enables novel representations and optimizations within the StreamIt compiler. We define the "stream dependence function," a fundamental relationship between the input channels of two filters in a stream graph. We also describe a suite of stream optimizations, a denotational semantics for validating these optimizations, and a novel phased scheduling algorithm for stream graphs. In addition, we have implemented a prototype of the StreamIt optimizing compiler that is showing promising results. 2023-03-29T14:42:29Z 2023-03-29T14:42:29Z 2002-02 https://hdl.handle.net/1721.1/149311 MIT-LCS-TM-622 application/pdf |
spellingShingle | Thies, William F. Karczmarek, Michael Gordon, Michael Maze, David Wong, Jeremy Hoffmann, Henry Brown, Matthew Amarasinghe, Saman StreamIT: A Complier for Streaming Applications |
title | StreamIT: A Complier for Streaming Applications |
title_full | StreamIT: A Complier for Streaming Applications |
title_fullStr | StreamIT: A Complier for Streaming Applications |
title_full_unstemmed | StreamIT: A Complier for Streaming Applications |
title_short | StreamIT: A Complier for Streaming Applications |
title_sort | streamit a complier for streaming applications |
url | https://hdl.handle.net/1721.1/149311 |
work_keys_str_mv | AT thieswilliamf streamitacomplierforstreamingapplications AT karczmarekmichael streamitacomplierforstreamingapplications AT gordonmichael streamitacomplierforstreamingapplications AT mazedavid streamitacomplierforstreamingapplications AT wongjeremy streamitacomplierforstreamingapplications AT hoffmannhenry streamitacomplierforstreamingapplications AT brownmatthew streamitacomplierforstreamingapplications AT amarasinghesaman streamitacomplierforstreamingapplications |