Enabling Multithreading on CGRAs

Coarse-Grained Reconfigurable Arrays or CGRAs are programmable fabrics that promise both high performance and high power efficiency. Traditionally, CGRAs were used to accelerate extremely-embedded systems, and were typically manually programmed. However, as CGRAs are conceived to be used as more gen...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Shrivastava, A., Pager, J., Jeyapaul, R., Hamzeh, M., Vrudhula, S.
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 264
container_issue
container_start_page 255
container_title
container_volume
creator Shrivastava, A.
Pager, J.
Jeyapaul, R.
Hamzeh, M.
Vrudhula, S.
description Coarse-Grained Reconfigurable Arrays or CGRAs are programmable fabrics that promise both high performance and high power efficiency. Traditionally, CGRAs were used to accelerate extremely-embedded systems, and were typically manually programmed. However, as CGRAs are conceived to be used as more general-purpose accelerators, there is a need to develop software tools and capabilities. Much work has been done on developing compiler techniques for CGRAs, making programming them easier, however, there is no support for multithreading. As an accelerator to a multithreaded processor, CGRAs now are restricted to accelerating only one kernel of one thread running on the processor at any point in time. Supporting multithreading is difficult, since the start times and end times of threads are dynamic in nature, while CGRAs are statically scheduled. In this paper, we propose a strategy to do multithreading on a CGRA. The chief capability that we develop is a scheme to quickly transform an existing application mapping using the entire CGRA to one using only a fraction of it. Our experimental results on kernels from multimedia applications demonstrate that multithreading support can improve the total throughput of a CGRA by over 30%, 75%, and 150% on 4×4, 6×6, and 8×8 CGRAs, respectively, compared to single-threaded methods.
doi_str_mv 10.1109/ICPP.2011.77
format Conference Proceeding
fullrecord <record><control><sourceid>ieee_6IE</sourceid><recordid>TN_cdi_ieee_primary_6047194</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>6047194</ieee_id><sourcerecordid>6047194</sourcerecordid><originalsourceid>FETCH-LOGICAL-i90t-1417e6dabd182c9becbd5394011d439476a5f4139f248f659faaafa2a3c1f9c73</originalsourceid><addsrcrecordid>eNotjrtOw0AQAJeXhBPS0dH4B2x2b-_hLSMrhEhBRCh9dLbv4KRgkG0K_p4gqEbTjAbglrAkQrnf1LtdqZCodO4MZuisGG0I7TlkilkVxgpewIy0cY6YrbmEDEmwYKHqGhbjmBokU7FyVGWQr3rfHFP_mj99Hac0vQ3Bd7_60ef1-mU53sBV9McxLP45h_3Dal8_Ftvn9aZeboskOBWkyQXb-aajSrXShLbpDIs-jXb6RGe9iZpYotJVtEai9z565bmlKK3jOdz9ZVMI4fA5pHc_fB8sakei-QdCyUA-</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Enabling Multithreading on CGRAs</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Shrivastava, A. ; Pager, J. ; Jeyapaul, R. ; Hamzeh, M. ; Vrudhula, S.</creator><creatorcontrib>Shrivastava, A. ; Pager, J. ; Jeyapaul, R. ; Hamzeh, M. ; Vrudhula, S.</creatorcontrib><description>Coarse-Grained Reconfigurable Arrays or CGRAs are programmable fabrics that promise both high performance and high power efficiency. Traditionally, CGRAs were used to accelerate extremely-embedded systems, and were typically manually programmed. However, as CGRAs are conceived to be used as more general-purpose accelerators, there is a need to develop software tools and capabilities. Much work has been done on developing compiler techniques for CGRAs, making programming them easier, however, there is no support for multithreading. As an accelerator to a multithreaded processor, CGRAs now are restricted to accelerating only one kernel of one thread running on the processor at any point in time. Supporting multithreading is difficult, since the start times and end times of threads are dynamic in nature, while CGRAs are statically scheduled. In this paper, we propose a strategy to do multithreading on a CGRA. The chief capability that we develop is a scheme to quickly transform an existing application mapping using the entire CGRA to one using only a fraction of it. Our experimental results on kernels from multimedia applications demonstrate that multithreading support can improve the total throughput of a CGRA by over 30%, 75%, and 150% on 4×4, 6×6, and 8×8 CGRAs, respectively, compared to single-threaded methods.</description><identifier>ISSN: 0190-3918</identifier><identifier>ISBN: 1457713365</identifier><identifier>ISBN: 9781457713361</identifier><identifier>EISSN: 2332-5690</identifier><identifier>EISBN: 0769545106</identifier><identifier>EISBN: 9780769545103</identifier><identifier>DOI: 10.1109/ICPP.2011.77</identifier><language>eng</language><publisher>IEEE</publisher><subject>Acceleration ; CGRA ; CGRA mapping technique ; compiler optimization ; dynamic threading ; Instruction sets ; Kernel ; low power ; Multithreading ; page-based mapping ; processor accelerator ; Registers ; Runtime ; runtime scheduling ; Schedules ; scheduling technique</subject><ispartof>2011 International Conference on Parallel Processing, 2011, p.255-264</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/6047194$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,776,780,785,786,2051,27904,54899</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/6047194$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Shrivastava, A.</creatorcontrib><creatorcontrib>Pager, J.</creatorcontrib><creatorcontrib>Jeyapaul, R.</creatorcontrib><creatorcontrib>Hamzeh, M.</creatorcontrib><creatorcontrib>Vrudhula, S.</creatorcontrib><title>Enabling Multithreading on CGRAs</title><title>2011 International Conference on Parallel Processing</title><addtitle>icpp</addtitle><description>Coarse-Grained Reconfigurable Arrays or CGRAs are programmable fabrics that promise both high performance and high power efficiency. Traditionally, CGRAs were used to accelerate extremely-embedded systems, and were typically manually programmed. However, as CGRAs are conceived to be used as more general-purpose accelerators, there is a need to develop software tools and capabilities. Much work has been done on developing compiler techniques for CGRAs, making programming them easier, however, there is no support for multithreading. As an accelerator to a multithreaded processor, CGRAs now are restricted to accelerating only one kernel of one thread running on the processor at any point in time. Supporting multithreading is difficult, since the start times and end times of threads are dynamic in nature, while CGRAs are statically scheduled. In this paper, we propose a strategy to do multithreading on a CGRA. The chief capability that we develop is a scheme to quickly transform an existing application mapping using the entire CGRA to one using only a fraction of it. Our experimental results on kernels from multimedia applications demonstrate that multithreading support can improve the total throughput of a CGRA by over 30%, 75%, and 150% on 4×4, 6×6, and 8×8 CGRAs, respectively, compared to single-threaded methods.</description><subject>Acceleration</subject><subject>CGRA</subject><subject>CGRA mapping technique</subject><subject>compiler optimization</subject><subject>dynamic threading</subject><subject>Instruction sets</subject><subject>Kernel</subject><subject>low power</subject><subject>Multithreading</subject><subject>page-based mapping</subject><subject>processor accelerator</subject><subject>Registers</subject><subject>Runtime</subject><subject>runtime scheduling</subject><subject>Schedules</subject><subject>scheduling technique</subject><issn>0190-3918</issn><issn>2332-5690</issn><isbn>1457713365</isbn><isbn>9781457713361</isbn><isbn>0769545106</isbn><isbn>9780769545103</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2011</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><sourceid>RIE</sourceid><recordid>eNotjrtOw0AQAJeXhBPS0dH4B2x2b-_hLSMrhEhBRCh9dLbv4KRgkG0K_p4gqEbTjAbglrAkQrnf1LtdqZCodO4MZuisGG0I7TlkilkVxgpewIy0cY6YrbmEDEmwYKHqGhbjmBokU7FyVGWQr3rfHFP_mj99Hac0vQ3Bd7_60ef1-mU53sBV9McxLP45h_3Dal8_Ftvn9aZeboskOBWkyQXb-aajSrXShLbpDIs-jXb6RGe9iZpYotJVtEai9z565bmlKK3jOdz9ZVMI4fA5pHc_fB8sakei-QdCyUA-</recordid><startdate>201109</startdate><enddate>201109</enddate><creator>Shrivastava, A.</creator><creator>Pager, J.</creator><creator>Jeyapaul, R.</creator><creator>Hamzeh, M.</creator><creator>Vrudhula, S.</creator><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>201109</creationdate><title>Enabling Multithreading on CGRAs</title><author>Shrivastava, A. ; Pager, J. ; Jeyapaul, R. ; Hamzeh, M. ; Vrudhula, S.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-i90t-1417e6dabd182c9becbd5394011d439476a5f4139f248f659faaafa2a3c1f9c73</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2011</creationdate><topic>Acceleration</topic><topic>CGRA</topic><topic>CGRA mapping technique</topic><topic>compiler optimization</topic><topic>dynamic threading</topic><topic>Instruction sets</topic><topic>Kernel</topic><topic>low power</topic><topic>Multithreading</topic><topic>page-based mapping</topic><topic>processor accelerator</topic><topic>Registers</topic><topic>Runtime</topic><topic>runtime scheduling</topic><topic>Schedules</topic><topic>scheduling technique</topic><toplevel>online_resources</toplevel><creatorcontrib>Shrivastava, A.</creatorcontrib><creatorcontrib>Pager, J.</creatorcontrib><creatorcontrib>Jeyapaul, R.</creatorcontrib><creatorcontrib>Hamzeh, M.</creatorcontrib><creatorcontrib>Vrudhula, S.</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Electronic Library (IEL)</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Shrivastava, A.</au><au>Pager, J.</au><au>Jeyapaul, R.</au><au>Hamzeh, M.</au><au>Vrudhula, S.</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Enabling Multithreading on CGRAs</atitle><btitle>2011 International Conference on Parallel Processing</btitle><stitle>icpp</stitle><date>2011-09</date><risdate>2011</risdate><spage>255</spage><epage>264</epage><pages>255-264</pages><issn>0190-3918</issn><eissn>2332-5690</eissn><isbn>1457713365</isbn><isbn>9781457713361</isbn><eisbn>0769545106</eisbn><eisbn>9780769545103</eisbn><abstract>Coarse-Grained Reconfigurable Arrays or CGRAs are programmable fabrics that promise both high performance and high power efficiency. Traditionally, CGRAs were used to accelerate extremely-embedded systems, and were typically manually programmed. However, as CGRAs are conceived to be used as more general-purpose accelerators, there is a need to develop software tools and capabilities. Much work has been done on developing compiler techniques for CGRAs, making programming them easier, however, there is no support for multithreading. As an accelerator to a multithreaded processor, CGRAs now are restricted to accelerating only one kernel of one thread running on the processor at any point in time. Supporting multithreading is difficult, since the start times and end times of threads are dynamic in nature, while CGRAs are statically scheduled. In this paper, we propose a strategy to do multithreading on a CGRA. The chief capability that we develop is a scheme to quickly transform an existing application mapping using the entire CGRA to one using only a fraction of it. Our experimental results on kernels from multimedia applications demonstrate that multithreading support can improve the total throughput of a CGRA by over 30%, 75%, and 150% on 4×4, 6×6, and 8×8 CGRAs, respectively, compared to single-threaded methods.</abstract><pub>IEEE</pub><doi>10.1109/ICPP.2011.77</doi><tpages>10</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0190-3918
ispartof 2011 International Conference on Parallel Processing, 2011, p.255-264
issn 0190-3918
2332-5690
language eng
recordid cdi_ieee_primary_6047194
source IEEE Electronic Library (IEL) Conference Proceedings
subjects Acceleration
CGRA
CGRA mapping technique
compiler optimization
dynamic threading
Instruction sets
Kernel
low power
Multithreading
page-based mapping
processor accelerator
Registers
Runtime
runtime scheduling
Schedules
scheduling technique
title Enabling Multithreading on CGRAs
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-23T02%3A38%3A48IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-ieee_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Enabling%20Multithreading%20on%20CGRAs&rft.btitle=2011%20International%20Conference%20on%20Parallel%20Processing&rft.au=Shrivastava,%20A.&rft.date=2011-09&rft.spage=255&rft.epage=264&rft.pages=255-264&rft.issn=0190-3918&rft.eissn=2332-5690&rft.isbn=1457713365&rft.isbn_list=9781457713361&rft_id=info:doi/10.1109/ICPP.2011.77&rft_dat=%3Cieee_6IE%3E6047194%3C/ieee_6IE%3E%3Curl%3E%3C/url%3E&rft.eisbn=0769545106&rft.eisbn_list=9780769545103&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=6047194&rfr_iscdi=true