A compiler and runtime for heterogeneous computing

Heterogeneous systems show a lot of promise for extracting high-performance by combining the benefits of conventional architectures with specialized accelerators in the form of graphics processors (GPUs) and reconfigurable hardware (FPGAs). Extracting this performance often entails programming in di...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Auerbach, Joshua, Bacon, David F., Burcea, Ioana, Cheng, Perry, Fink, Stephen J., Rabbah, Rodric, Shukla, Sunil
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 276
container_issue
container_start_page 271
container_title
container_volume
creator Auerbach, Joshua
Bacon, David F.
Burcea, Ioana
Cheng, Perry
Fink, Stephen J.
Rabbah, Rodric
Shukla, Sunil
description Heterogeneous systems show a lot of promise for extracting high-performance by combining the benefits of conventional architectures with specialized accelerators in the form of graphics processors (GPUs) and reconfigurable hardware (FPGAs). Extracting this performance often entails programming in disparate languages and models, making it hard for a programmer to work equally well on all aspects of an application. Further, relatively little attention is paid to co-execution---the problem of orchestrating program execution using multiple distinct computational elements that work seamlessly together. We present Liquid Metal, a comprehensive compiler and runtime system for a new programming language called Lime. Our work enables the use of a single language for programming heterogeneous computing platforms, and the seamless co-execution of the resultant programs on CPUs and accelerators that include GPUs and FPGAs. We have developed a number of Lime applications, and successfully compiled some of these for co-execution on various GPU and FPGA enabled architectures. Our experience so far leads us to believe the Liquid Metal approach is promising and can make the computational power of heterogeneous architectures more easily accessible to mainstream programmers.
doi_str_mv 10.1145/2228360.2228411
format Conference Proceeding
fullrecord <record><control><sourceid>acm_6IE</sourceid><recordid>TN_cdi_ieee_primary_6241521</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>6241521</ieee_id><sourcerecordid>acm_books_10_1145_2228360_2228411</sourcerecordid><originalsourceid>FETCH-LOGICAL-a293t-7f30055b646a2c80a81102c3b83745d4f22ee087298943e5bb514b94d88593283</originalsourceid><addsrcrecordid>eNqNkL1PwzAQxY0AiVI6M7BkZEm5O9uJPVYVX1IlFpDYLDu9lECTVE4y8N-T0g6MTE93795J7yfENcIcUek7IjIyg_leFeKJuBy3IBGtzU__DmdiArk0KQK8X4hZ130CACKBzrOJoEVStPWu2nJMfLNO4tD0Vc1J2cbkg3uO7YYbbofu92zoq2ZzJc5Lv-14dtSpeHu4f10-pauXx-flYpV6srJP81ICaB0ylXkqDHiDCFTIYGSu9FqVRMxgcrLGKsk6BI0qWLU2Rls5lpuKm8PfipndLla1j98uI4WacHTnB9cXtQtt-9U5BLdH445o3BGNC7Hicgzc_jMgfwCQp10L</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>A compiler and runtime for heterogeneous computing</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Auerbach, Joshua ; Bacon, David F. ; Burcea, Ioana ; Cheng, Perry ; Fink, Stephen J. ; Rabbah, Rodric ; Shukla, Sunil</creator><creatorcontrib>Auerbach, Joshua ; Bacon, David F. ; Burcea, Ioana ; Cheng, Perry ; Fink, Stephen J. ; Rabbah, Rodric ; Shukla, Sunil</creatorcontrib><description>Heterogeneous systems show a lot of promise for extracting high-performance by combining the benefits of conventional architectures with specialized accelerators in the form of graphics processors (GPUs) and reconfigurable hardware (FPGAs). Extracting this performance often entails programming in disparate languages and models, making it hard for a programmer to work equally well on all aspects of an application. Further, relatively little attention is paid to co-execution---the problem of orchestrating program execution using multiple distinct computational elements that work seamlessly together. We present Liquid Metal, a comprehensive compiler and runtime system for a new programming language called Lime. Our work enables the use of a single language for programming heterogeneous computing platforms, and the seamless co-execution of the resultant programs on CPUs and accelerators that include GPUs and FPGAs. We have developed a number of Lime applications, and successfully compiled some of these for co-execution on various GPU and FPGA enabled architectures. Our experience so far leads us to believe the Liquid Metal approach is promising and can make the computational power of heterogeneous architectures more easily accessible to mainstream programmers.</description><identifier>ISSN: 0738-100X</identifier><identifier>ISBN: 1450311997</identifier><identifier>ISBN: 9781450311991</identifier><identifier>EISBN: 1450311997</identifier><identifier>EISBN: 9781450311991</identifier><identifier>DOI: 10.1145/2228360.2228411</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Arrays ; Field programmable gate arrays ; FPGA ; GPU ; Graphics processing unit ; Hardware -- Integrated circuits -- Logic circuits ; Heterogeneous ; Java ; Liquids ; Metals ; Runtime ; Software and its engineering -- Software notations and tools -- General programming languages -- Language features ; Streaming</subject><ispartof>DAC Design Automation Conference 2012, 2012, p.271-276</ispartof><rights>2012 ACM</rights><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-a293t-7f30055b646a2c80a81102c3b83745d4f22ee087298943e5bb514b94d88593283</citedby></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/6241521$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,776,780,785,786,792,2051,27904,54737,54899</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/6241521$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Auerbach, Joshua</creatorcontrib><creatorcontrib>Bacon, David F.</creatorcontrib><creatorcontrib>Burcea, Ioana</creatorcontrib><creatorcontrib>Cheng, Perry</creatorcontrib><creatorcontrib>Fink, Stephen J.</creatorcontrib><creatorcontrib>Rabbah, Rodric</creatorcontrib><creatorcontrib>Shukla, Sunil</creatorcontrib><title>A compiler and runtime for heterogeneous computing</title><title>DAC Design Automation Conference 2012</title><addtitle>DAC</addtitle><description>Heterogeneous systems show a lot of promise for extracting high-performance by combining the benefits of conventional architectures with specialized accelerators in the form of graphics processors (GPUs) and reconfigurable hardware (FPGAs). Extracting this performance often entails programming in disparate languages and models, making it hard for a programmer to work equally well on all aspects of an application. Further, relatively little attention is paid to co-execution---the problem of orchestrating program execution using multiple distinct computational elements that work seamlessly together. We present Liquid Metal, a comprehensive compiler and runtime system for a new programming language called Lime. Our work enables the use of a single language for programming heterogeneous computing platforms, and the seamless co-execution of the resultant programs on CPUs and accelerators that include GPUs and FPGAs. We have developed a number of Lime applications, and successfully compiled some of these for co-execution on various GPU and FPGA enabled architectures. Our experience so far leads us to believe the Liquid Metal approach is promising and can make the computational power of heterogeneous architectures more easily accessible to mainstream programmers.</description><subject>Arrays</subject><subject>Field programmable gate arrays</subject><subject>FPGA</subject><subject>GPU</subject><subject>Graphics processing unit</subject><subject>Hardware -- Integrated circuits -- Logic circuits</subject><subject>Heterogeneous</subject><subject>Java</subject><subject>Liquids</subject><subject>Metals</subject><subject>Runtime</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages -- Language features</subject><subject>Streaming</subject><issn>0738-100X</issn><isbn>1450311997</isbn><isbn>9781450311991</isbn><isbn>1450311997</isbn><isbn>9781450311991</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2012</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><sourceid>RIE</sourceid><recordid>eNqNkL1PwzAQxY0AiVI6M7BkZEm5O9uJPVYVX1IlFpDYLDu9lECTVE4y8N-T0g6MTE93795J7yfENcIcUek7IjIyg_leFeKJuBy3IBGtzU__DmdiArk0KQK8X4hZ130CACKBzrOJoEVStPWu2nJMfLNO4tD0Vc1J2cbkg3uO7YYbbofu92zoq2ZzJc5Lv-14dtSpeHu4f10-pauXx-flYpV6srJP81ICaB0ylXkqDHiDCFTIYGSu9FqVRMxgcrLGKsk6BI0qWLU2Rls5lpuKm8PfipndLla1j98uI4WacHTnB9cXtQtt-9U5BLdH445o3BGNC7Hicgzc_jMgfwCQp10L</recordid><startdate>20120603</startdate><enddate>20120603</enddate><creator>Auerbach, Joshua</creator><creator>Bacon, David F.</creator><creator>Burcea, Ioana</creator><creator>Cheng, Perry</creator><creator>Fink, Stephen J.</creator><creator>Rabbah, Rodric</creator><creator>Shukla, Sunil</creator><general>ACM</general><general>IEEE</general><scope>6IE</scope><scope>6IH</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIO</scope></search><sort><creationdate>20120603</creationdate><title>A compiler and runtime for heterogeneous computing</title><author>Auerbach, Joshua ; Bacon, David F. ; Burcea, Ioana ; Cheng, Perry ; Fink, Stephen J. ; Rabbah, Rodric ; Shukla, Sunil</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a293t-7f30055b646a2c80a81102c3b83745d4f22ee087298943e5bb514b94d88593283</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2012</creationdate><topic>Arrays</topic><topic>Field programmable gate arrays</topic><topic>FPGA</topic><topic>GPU</topic><topic>Graphics processing unit</topic><topic>Hardware -- Integrated circuits -- Logic circuits</topic><topic>Heterogeneous</topic><topic>Java</topic><topic>Liquids</topic><topic>Metals</topic><topic>Runtime</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages -- Language features</topic><topic>Streaming</topic><toplevel>online_resources</toplevel><creatorcontrib>Auerbach, Joshua</creatorcontrib><creatorcontrib>Bacon, David F.</creatorcontrib><creatorcontrib>Burcea, Ioana</creatorcontrib><creatorcontrib>Cheng, Perry</creatorcontrib><creatorcontrib>Fink, Stephen J.</creatorcontrib><creatorcontrib>Rabbah, Rodric</creatorcontrib><creatorcontrib>Shukla, Sunil</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan (POP) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Electronic Library (IEL)</collection><collection>IEEE Proceedings Order Plans (POP) 1998-present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Auerbach, Joshua</au><au>Bacon, David F.</au><au>Burcea, Ioana</au><au>Cheng, Perry</au><au>Fink, Stephen J.</au><au>Rabbah, Rodric</au><au>Shukla, Sunil</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>A compiler and runtime for heterogeneous computing</atitle><btitle>DAC Design Automation Conference 2012</btitle><stitle>DAC</stitle><date>2012-06-03</date><risdate>2012</risdate><spage>271</spage><epage>276</epage><pages>271-276</pages><issn>0738-100X</issn><isbn>1450311997</isbn><isbn>9781450311991</isbn><eisbn>1450311997</eisbn><eisbn>9781450311991</eisbn><abstract>Heterogeneous systems show a lot of promise for extracting high-performance by combining the benefits of conventional architectures with specialized accelerators in the form of graphics processors (GPUs) and reconfigurable hardware (FPGAs). Extracting this performance often entails programming in disparate languages and models, making it hard for a programmer to work equally well on all aspects of an application. Further, relatively little attention is paid to co-execution---the problem of orchestrating program execution using multiple distinct computational elements that work seamlessly together. We present Liquid Metal, a comprehensive compiler and runtime system for a new programming language called Lime. Our work enables the use of a single language for programming heterogeneous computing platforms, and the seamless co-execution of the resultant programs on CPUs and accelerators that include GPUs and FPGAs. We have developed a number of Lime applications, and successfully compiled some of these for co-execution on various GPU and FPGA enabled architectures. Our experience so far leads us to believe the Liquid Metal approach is promising and can make the computational power of heterogeneous architectures more easily accessible to mainstream programmers.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/2228360.2228411</doi><tpages>6</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0738-100X
ispartof DAC Design Automation Conference 2012, 2012, p.271-276
issn 0738-100X
language eng
recordid cdi_ieee_primary_6241521
source IEEE Electronic Library (IEL) Conference Proceedings
subjects Arrays
Field programmable gate arrays
FPGA
GPU
Graphics processing unit
Hardware -- Integrated circuits -- Logic circuits
Heterogeneous
Java
Liquids
Metals
Runtime
Software and its engineering -- Software notations and tools -- General programming languages -- Language features
Streaming
title A compiler and runtime for heterogeneous computing
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-23T04%3A37%3A15IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=A%20compiler%20and%20runtime%20for%20heterogeneous%20computing&rft.btitle=DAC%20Design%20Automation%20Conference%202012&rft.au=Auerbach,%20Joshua&rft.date=2012-06-03&rft.spage=271&rft.epage=276&rft.pages=271-276&rft.issn=0738-100X&rft.isbn=1450311997&rft.isbn_list=9781450311991&rft_id=info:doi/10.1145/2228360.2228411&rft_dat=%3Cacm_6IE%3Eacm_books_10_1145_2228360_2228411%3C/acm_6IE%3E%3Curl%3E%3C/url%3E&rft.eisbn=1450311997&rft.eisbn_list=9781450311991&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=6241521&rfr_iscdi=true