Linear analysis and optimization of stream programs

As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input langua...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:SIGPLAN notices 2003-05, Vol.38 (5), p.12-25
Hauptverfasser: Lamb, Andrew A., Thies, William, Amarasinghe, Saman
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 25
container_issue 5
container_start_page 12
container_title SIGPLAN notices
container_volume 38
creator Lamb, Andrew A.
Thies, William
Amarasinghe, Saman
description As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input language is StreamIt, which represents programs as a hierarchical graph of autonomous filters. A filter is linear if each of its outputs can be represented as an affine combination of its inputs. Linearity is common in DSP components; examples include FIR filters, expanders, compressors, FFTs and DCTs.We demonstrate that several algorithmic transformations, traditionally hand-tuned by DSP experts, can be completely automated by the compiler. First, we present a linear extraction analysis that automatically detects linear filters from the C-like code in their work function. Then, we give a procedure for combining adjacent linear filters into a single filter, as well as for translating a linear filter to operate in the frequency domain. We also present an optimization selection algorithm, which finds the sequence of combination and frequency transformations that will give the maximal benefit.We have completed a fully-automatic implementation of the above techniques as part of the StreamIt compiler, and we demonstrate a 450% performance improvement over our benchmark suite.
doi_str_mv 10.1145/780822.781134
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_29403878</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>29403878</sourcerecordid><originalsourceid>FETCH-LOGICAL-a240t-94ea6ed935a6b629faea980dfa35a2345919605a93d25452abd48c2212e0c2e43</originalsourceid><addsrcrecordid>eNo9kDFPwzAQRi0EEqUwMrBlYks5n-3EHlEFBSkSC8zWNXGQUZwEOx3KrycoFdOdvu_pTnqM3XLYcC7VQ6lBI25KzbmQZ2zFldI55wWcsxWIAvM5hkt2ldIXAAhAvWKi8r2jmFFP3TH5NC9NNoyTD_6HJj_02dBmaYqOQjbG4TNSSNfsoqUuuZvTXLOP56f37Uteve1et49VTihhyo10VLjGCEXFvkDTkiOjoWlpTlBIZbgpQJERDSqpkPaN1DUiRwc1OinW7H65Oz_-Prg02eBT7bqOejcckkUjQehSz2C-gHUcUoqutWP0geLRcrB_auyixi5qZv5u4akO_-ip-wVa2V1K</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>29403878</pqid></control><display><type>article</type><title>Linear analysis and optimization of stream programs</title><source>ACM Digital Library</source><creator>Lamb, Andrew A. ; Thies, William ; Amarasinghe, Saman</creator><creatorcontrib>Lamb, Andrew A. ; Thies, William ; Amarasinghe, Saman</creatorcontrib><description>As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input language is StreamIt, which represents programs as a hierarchical graph of autonomous filters. A filter is linear if each of its outputs can be represented as an affine combination of its inputs. Linearity is common in DSP components; examples include FIR filters, expanders, compressors, FFTs and DCTs.We demonstrate that several algorithmic transformations, traditionally hand-tuned by DSP experts, can be completely automated by the compiler. First, we present a linear extraction analysis that automatically detects linear filters from the C-like code in their work function. Then, we give a procedure for combining adjacent linear filters into a single filter, as well as for translating a linear filter to operate in the frequency domain. We also present an optimization selection algorithm, which finds the sequence of combination and frequency transformations that will give the maximal benefit.We have completed a fully-automatic implementation of the above techniques as part of the StreamIt compiler, and we demonstrate a 450% performance improvement over our benchmark suite.</description><identifier>ISSN: 0362-1340</identifier><identifier>EISSN: 1558-1160</identifier><identifier>DOI: 10.1145/780822.781134</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Compilers ; Designing software ; General programming languages ; Language features ; Language types ; Software and its engineering ; Software creation and management ; Software design techniques ; Software development process management ; Software implementation planning ; Software notations and tools</subject><ispartof>SIGPLAN notices, 2003-05, Vol.38 (5), p.12-25</ispartof><rights>ACM</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-a240t-94ea6ed935a6b629faea980dfa35a2345919605a93d25452abd48c2212e0c2e43</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://dl.acm.org/doi/pdf/10.1145/780822.781134$$EPDF$$P50$$Gacm$$H</linktopdf><link.rule.ids>314,778,782,2278,27911,27912,40183,75985</link.rule.ids></links><search><creatorcontrib>Lamb, Andrew A.</creatorcontrib><creatorcontrib>Thies, William</creatorcontrib><creatorcontrib>Amarasinghe, Saman</creatorcontrib><title>Linear analysis and optimization of stream programs</title><title>SIGPLAN notices</title><addtitle>ACM SIGPLAN</addtitle><description>As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input language is StreamIt, which represents programs as a hierarchical graph of autonomous filters. A filter is linear if each of its outputs can be represented as an affine combination of its inputs. Linearity is common in DSP components; examples include FIR filters, expanders, compressors, FFTs and DCTs.We demonstrate that several algorithmic transformations, traditionally hand-tuned by DSP experts, can be completely automated by the compiler. First, we present a linear extraction analysis that automatically detects linear filters from the C-like code in their work function. Then, we give a procedure for combining adjacent linear filters into a single filter, as well as for translating a linear filter to operate in the frequency domain. We also present an optimization selection algorithm, which finds the sequence of combination and frequency transformations that will give the maximal benefit.We have completed a fully-automatic implementation of the above techniques as part of the StreamIt compiler, and we demonstrate a 450% performance improvement over our benchmark suite.</description><subject>Compilers</subject><subject>Designing software</subject><subject>General programming languages</subject><subject>Language features</subject><subject>Language types</subject><subject>Software and its engineering</subject><subject>Software creation and management</subject><subject>Software design techniques</subject><subject>Software development process management</subject><subject>Software implementation planning</subject><subject>Software notations and tools</subject><issn>0362-1340</issn><issn>1558-1160</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2003</creationdate><recordtype>article</recordtype><recordid>eNo9kDFPwzAQRi0EEqUwMrBlYks5n-3EHlEFBSkSC8zWNXGQUZwEOx3KrycoFdOdvu_pTnqM3XLYcC7VQ6lBI25KzbmQZ2zFldI55wWcsxWIAvM5hkt2ldIXAAhAvWKi8r2jmFFP3TH5NC9NNoyTD_6HJj_02dBmaYqOQjbG4TNSSNfsoqUuuZvTXLOP56f37Uteve1et49VTihhyo10VLjGCEXFvkDTkiOjoWlpTlBIZbgpQJERDSqpkPaN1DUiRwc1OinW7H65Oz_-Prg02eBT7bqOejcckkUjQehSz2C-gHUcUoqutWP0geLRcrB_auyixi5qZv5u4akO_-ip-wVa2V1K</recordid><startdate>20030509</startdate><enddate>20030509</enddate><creator>Lamb, Andrew A.</creator><creator>Thies, William</creator><creator>Amarasinghe, Saman</creator><general>ACM</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>20030509</creationdate><title>Linear analysis and optimization of stream programs</title><author>Lamb, Andrew A. ; Thies, William ; Amarasinghe, Saman</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a240t-94ea6ed935a6b629faea980dfa35a2345919605a93d25452abd48c2212e0c2e43</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2003</creationdate><topic>Compilers</topic><topic>Designing software</topic><topic>General programming languages</topic><topic>Language features</topic><topic>Language types</topic><topic>Software and its engineering</topic><topic>Software creation and management</topic><topic>Software design techniques</topic><topic>Software development process management</topic><topic>Software implementation planning</topic><topic>Software notations and tools</topic><toplevel>online_resources</toplevel><creatorcontrib>Lamb, Andrew A.</creatorcontrib><creatorcontrib>Thies, William</creatorcontrib><creatorcontrib>Amarasinghe, Saman</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>SIGPLAN notices</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Lamb, Andrew A.</au><au>Thies, William</au><au>Amarasinghe, Saman</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Linear analysis and optimization of stream programs</atitle><jtitle>SIGPLAN notices</jtitle><stitle>ACM SIGPLAN</stitle><date>2003-05-09</date><risdate>2003</risdate><volume>38</volume><issue>5</issue><spage>12</spage><epage>25</epage><pages>12-25</pages><issn>0362-1340</issn><eissn>1558-1160</eissn><abstract>As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input language is StreamIt, which represents programs as a hierarchical graph of autonomous filters. A filter is linear if each of its outputs can be represented as an affine combination of its inputs. Linearity is common in DSP components; examples include FIR filters, expanders, compressors, FFTs and DCTs.We demonstrate that several algorithmic transformations, traditionally hand-tuned by DSP experts, can be completely automated by the compiler. First, we present a linear extraction analysis that automatically detects linear filters from the C-like code in their work function. Then, we give a procedure for combining adjacent linear filters into a single filter, as well as for translating a linear filter to operate in the frequency domain. We also present an optimization selection algorithm, which finds the sequence of combination and frequency transformations that will give the maximal benefit.We have completed a fully-automatic implementation of the above techniques as part of the StreamIt compiler, and we demonstrate a 450% performance improvement over our benchmark suite.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/780822.781134</doi><tpages>14</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0362-1340
ispartof SIGPLAN notices, 2003-05, Vol.38 (5), p.12-25
issn 0362-1340
1558-1160
language eng
recordid cdi_proquest_miscellaneous_29403878
source ACM Digital Library
subjects Compilers
Designing software
General programming languages
Language features
Language types
Software and its engineering
Software creation and management
Software design techniques
Software development process management
Software implementation planning
Software notations and tools
title Linear analysis and optimization of stream programs
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-15T13%3A03%3A15IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Linear%20analysis%20and%20optimization%20of%20stream%20programs&rft.jtitle=SIGPLAN%20notices&rft.au=Lamb,%20Andrew%20A.&rft.date=2003-05-09&rft.volume=38&rft.issue=5&rft.spage=12&rft.epage=25&rft.pages=12-25&rft.issn=0362-1340&rft.eissn=1558-1160&rft_id=info:doi/10.1145/780822.781134&rft_dat=%3Cproquest_cross%3E29403878%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=29403878&rft_id=info:pmid/&rfr_iscdi=true