SCAN: A Heuristic for Near-Optimal Software Pipelining

Software pipelining is a classic compiler optimization that improves the performances of inner loops on instruction-level parallel processors. In the context of embedded computing, applications are compiled prior to manufacturing the system, so it is possible to invest large amounts of time for comp...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Blachot, F., de Dinechin, Benoît Dupont, Huard, Guillaume
Format: Buchkapitel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 298
container_issue
container_start_page 289
container_title
container_volume
creator Blachot, F.
de Dinechin, Benoît Dupont
Huard, Guillaume
description Software pipelining is a classic compiler optimization that improves the performances of inner loops on instruction-level parallel processors. In the context of embedded computing, applications are compiled prior to manufacturing the system, so it is possible to invest large amounts of time for compiler optimizations. Traditionally, software pipelining is performed by heuristics such as iterative modulo scheduling. Optimal software pipelining can be formulated as integer linear programs, however these formulations can take exponential time to solve. As a result, the size of loops that can be optimally software pipelined is quite limited. In this article, we present the SCAN heuristic, which enables to benefit from the integer linear programming formulations of software pipelining even on loops of significant size. The principle of the SCAN heuristic is to iteratively constrain the software pipelining problem until the integer linear programming formulation is solvable in reasonable time. We applied the SCAN heuristic to a multimedia benchmark for the ST200 VLIW processor. We show that it almost always compute an optimal solution for loops that are intractable by classic integer linear programming approaches. This improves performances by up to 33.3% over the heuristic modulo scheduling of the production ST200 compiler.
doi_str_mv 10.1007/11823285_30
format Book Chapter
fullrecord <record><control><sourceid>pascalfrancis_sprin</sourceid><recordid>TN_cdi_pascalfrancis_primary_19993215</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>19993215</sourcerecordid><originalsourceid>FETCH-LOGICAL-p256t-1d758512948a1ecd7fbcca6908ad509ecb25cdd7fdeaba705430816092f52b7b3</originalsourceid><addsrcrecordid>eNpVUE1Lw0AUXL_AUnvyD-TiwUP0vX3Z7K63UqoVSitUz8tmsynRmITdiPjvjdSDzmVgZhiGYewS4QYB5C2i4sSVMARHbKalIpEBSakyfcwmmCOmRJk--ecRP2UTIOCplhmds1mMrzCCUAqBE5bvFvPNXTJPVv4j1HGoXVJ1Idl4G9JtP9Tvtkl2XTV82uCTp7r3Td3W7f6CnVW2iX72y1P2cr98XqzS9fbhcTFfpz0X-ZBiKYUSyHWmLHpXyqpwzuYalC0FaO8KLlw5yqW3hZUgMgKFOWheCV7Igqbs6tDb2-hsUwXbujqaPozDwpdBrTVxFGPu-pCLo9XufTBF171Fg2B-vjN_vqNvYGlZkg</addsrcrecordid><sourcetype>Index Database</sourcetype><iscdi>true</iscdi><recordtype>book_chapter</recordtype></control><display><type>book_chapter</type><title>SCAN: A Heuristic for Near-Optimal Software Pipelining</title><source>Springer Books</source><creator>Blachot, F. ; de Dinechin, Benoît Dupont ; Huard, Guillaume</creator><contributor>Walter, Wolfgang V. ; Lehner, Wolfgang ; Nagel, Wolfgang E.</contributor><creatorcontrib>Blachot, F. ; de Dinechin, Benoît Dupont ; Huard, Guillaume ; Walter, Wolfgang V. ; Lehner, Wolfgang ; Nagel, Wolfgang E.</creatorcontrib><description>Software pipelining is a classic compiler optimization that improves the performances of inner loops on instruction-level parallel processors. In the context of embedded computing, applications are compiled prior to manufacturing the system, so it is possible to invest large amounts of time for compiler optimizations. Traditionally, software pipelining is performed by heuristics such as iterative modulo scheduling. Optimal software pipelining can be formulated as integer linear programs, however these formulations can take exponential time to solve. As a result, the size of loops that can be optimally software pipelined is quite limited. In this article, we present the SCAN heuristic, which enables to benefit from the integer linear programming formulations of software pipelining even on loops of significant size. The principle of the SCAN heuristic is to iteratively constrain the software pipelining problem until the integer linear programming formulation is solvable in reasonable time. We applied the SCAN heuristic to a multimedia benchmark for the ST200 VLIW processor. We show that it almost always compute an optimal solution for loops that are intractable by classic integer linear programming approaches. This improves performances by up to 33.3% over the heuristic modulo scheduling of the production ST200 compiler.</description><identifier>ISSN: 0302-9743</identifier><identifier>ISBN: 9783540377832</identifier><identifier>ISBN: 3540377832</identifier><identifier>EISSN: 1611-3349</identifier><identifier>EISBN: 9783540377849</identifier><identifier>EISBN: 3540377840</identifier><identifier>DOI: 10.1007/11823285_30</identifier><language>eng</language><publisher>Berlin, Heidelberg: Springer Berlin Heidelberg</publisher><subject>Applied sciences ; Computer science; control theory; systems ; Computer systems and distributed systems. User interface ; Exact sciences and technology ; Language theory and syntactical analysis ; Operational research and scientific management ; Operational research. Management science ; Scheduling, sequencing ; Software ; Theoretical computing</subject><ispartof>Euro-Par 2006 Parallel Processing, 2006, p.289-298</ispartof><rights>Springer-Verlag Berlin Heidelberg 2006</rights><rights>2008 INIST-CNRS</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><relation>Lecture Notes in Computer Science</relation></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/11823285_30$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/11823285_30$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>309,310,779,780,784,789,790,793,4047,4048,27923,38253,41440,42509</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=19993215$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><contributor>Walter, Wolfgang V.</contributor><contributor>Lehner, Wolfgang</contributor><contributor>Nagel, Wolfgang E.</contributor><creatorcontrib>Blachot, F.</creatorcontrib><creatorcontrib>de Dinechin, Benoît Dupont</creatorcontrib><creatorcontrib>Huard, Guillaume</creatorcontrib><title>SCAN: A Heuristic for Near-Optimal Software Pipelining</title><title>Euro-Par 2006 Parallel Processing</title><description>Software pipelining is a classic compiler optimization that improves the performances of inner loops on instruction-level parallel processors. In the context of embedded computing, applications are compiled prior to manufacturing the system, so it is possible to invest large amounts of time for compiler optimizations. Traditionally, software pipelining is performed by heuristics such as iterative modulo scheduling. Optimal software pipelining can be formulated as integer linear programs, however these formulations can take exponential time to solve. As a result, the size of loops that can be optimally software pipelined is quite limited. In this article, we present the SCAN heuristic, which enables to benefit from the integer linear programming formulations of software pipelining even on loops of significant size. The principle of the SCAN heuristic is to iteratively constrain the software pipelining problem until the integer linear programming formulation is solvable in reasonable time. We applied the SCAN heuristic to a multimedia benchmark for the ST200 VLIW processor. We show that it almost always compute an optimal solution for loops that are intractable by classic integer linear programming approaches. This improves performances by up to 33.3% over the heuristic modulo scheduling of the production ST200 compiler.</description><subject>Applied sciences</subject><subject>Computer science; control theory; systems</subject><subject>Computer systems and distributed systems. User interface</subject><subject>Exact sciences and technology</subject><subject>Language theory and syntactical analysis</subject><subject>Operational research and scientific management</subject><subject>Operational research. Management science</subject><subject>Scheduling, sequencing</subject><subject>Software</subject><subject>Theoretical computing</subject><issn>0302-9743</issn><issn>1611-3349</issn><isbn>9783540377832</isbn><isbn>3540377832</isbn><isbn>9783540377849</isbn><isbn>3540377840</isbn><fulltext>true</fulltext><rsrctype>book_chapter</rsrctype><creationdate>2006</creationdate><recordtype>book_chapter</recordtype><recordid>eNpVUE1Lw0AUXL_AUnvyD-TiwUP0vX3Z7K63UqoVSitUz8tmsynRmITdiPjvjdSDzmVgZhiGYewS4QYB5C2i4sSVMARHbKalIpEBSakyfcwmmCOmRJk--ecRP2UTIOCplhmds1mMrzCCUAqBE5bvFvPNXTJPVv4j1HGoXVJ1Idl4G9JtP9Tvtkl2XTV82uCTp7r3Td3W7f6CnVW2iX72y1P2cr98XqzS9fbhcTFfpz0X-ZBiKYUSyHWmLHpXyqpwzuYalC0FaO8KLlw5yqW3hZUgMgKFOWheCV7Igqbs6tDb2-hsUwXbujqaPozDwpdBrTVxFGPu-pCLo9XufTBF171Fg2B-vjN_vqNvYGlZkg</recordid><startdate>2006</startdate><enddate>2006</enddate><creator>Blachot, F.</creator><creator>de Dinechin, Benoît Dupont</creator><creator>Huard, Guillaume</creator><general>Springer Berlin Heidelberg</general><general>Springer</general><scope>IQODW</scope></search><sort><creationdate>2006</creationdate><title>SCAN: A Heuristic for Near-Optimal Software Pipelining</title><author>Blachot, F. ; de Dinechin, Benoît Dupont ; Huard, Guillaume</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-p256t-1d758512948a1ecd7fbcca6908ad509ecb25cdd7fdeaba705430816092f52b7b3</frbrgroupid><rsrctype>book_chapters</rsrctype><prefilter>book_chapters</prefilter><language>eng</language><creationdate>2006</creationdate><topic>Applied sciences</topic><topic>Computer science; control theory; systems</topic><topic>Computer systems and distributed systems. User interface</topic><topic>Exact sciences and technology</topic><topic>Language theory and syntactical analysis</topic><topic>Operational research and scientific management</topic><topic>Operational research. Management science</topic><topic>Scheduling, sequencing</topic><topic>Software</topic><topic>Theoretical computing</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Blachot, F.</creatorcontrib><creatorcontrib>de Dinechin, Benoît Dupont</creatorcontrib><creatorcontrib>Huard, Guillaume</creatorcontrib><collection>Pascal-Francis</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Blachot, F.</au><au>de Dinechin, Benoît Dupont</au><au>Huard, Guillaume</au><au>Walter, Wolfgang V.</au><au>Lehner, Wolfgang</au><au>Nagel, Wolfgang E.</au><format>book</format><genre>bookitem</genre><ristype>CHAP</ristype><atitle>SCAN: A Heuristic for Near-Optimal Software Pipelining</atitle><btitle>Euro-Par 2006 Parallel Processing</btitle><seriestitle>Lecture Notes in Computer Science</seriestitle><date>2006</date><risdate>2006</risdate><spage>289</spage><epage>298</epage><pages>289-298</pages><issn>0302-9743</issn><eissn>1611-3349</eissn><isbn>9783540377832</isbn><isbn>3540377832</isbn><eisbn>9783540377849</eisbn><eisbn>3540377840</eisbn><abstract>Software pipelining is a classic compiler optimization that improves the performances of inner loops on instruction-level parallel processors. In the context of embedded computing, applications are compiled prior to manufacturing the system, so it is possible to invest large amounts of time for compiler optimizations. Traditionally, software pipelining is performed by heuristics such as iterative modulo scheduling. Optimal software pipelining can be formulated as integer linear programs, however these formulations can take exponential time to solve. As a result, the size of loops that can be optimally software pipelined is quite limited. In this article, we present the SCAN heuristic, which enables to benefit from the integer linear programming formulations of software pipelining even on loops of significant size. The principle of the SCAN heuristic is to iteratively constrain the software pipelining problem until the integer linear programming formulation is solvable in reasonable time. We applied the SCAN heuristic to a multimedia benchmark for the ST200 VLIW processor. We show that it almost always compute an optimal solution for loops that are intractable by classic integer linear programming approaches. This improves performances by up to 33.3% over the heuristic modulo scheduling of the production ST200 compiler.</abstract><cop>Berlin, Heidelberg</cop><pub>Springer Berlin Heidelberg</pub><doi>10.1007/11823285_30</doi><tpages>10</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0302-9743
ispartof Euro-Par 2006 Parallel Processing, 2006, p.289-298
issn 0302-9743
1611-3349
language eng
recordid cdi_pascalfrancis_primary_19993215
source Springer Books
subjects Applied sciences
Computer science
control theory
systems
Computer systems and distributed systems. User interface
Exact sciences and technology
Language theory and syntactical analysis
Operational research and scientific management
Operational research. Management science
Scheduling, sequencing
Software
Theoretical computing
title SCAN: A Heuristic for Near-Optimal Software Pipelining
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-14T06%3A02%3A31IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-pascalfrancis_sprin&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=bookitem&rft.atitle=SCAN:%20A%20Heuristic%20for%20Near-Optimal%20Software%20Pipelining&rft.btitle=Euro-Par%202006%20Parallel%20Processing&rft.au=Blachot,%20F.&rft.date=2006&rft.spage=289&rft.epage=298&rft.pages=289-298&rft.issn=0302-9743&rft.eissn=1611-3349&rft.isbn=9783540377832&rft.isbn_list=3540377832&rft_id=info:doi/10.1007/11823285_30&rft_dat=%3Cpascalfrancis_sprin%3E19993215%3C/pascalfrancis_sprin%3E%3Curl%3E%3C/url%3E&rft.eisbn=9783540377849&rft.eisbn_list=3540377840&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true