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...
Gespeichert in:
Hauptverfasser: | , , , , |
---|---|
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 |