Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2228360.2228411acmconferencesArticle/Chapter ViewAbstractPublication PagesdacConference Proceedingsconference-collections
research-article

A compiler and runtime for heterogeneous computing

Published: 03 June 2012 Publication History

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.

References

[1]
J. Auerbach, D. F. Bacon, P. Cheng, and R. Rabbah. Lime: a Java-compatible and synthesizable language for heterogeneous architectures. In OOPSLA, pp. 89--108, Oct. 2010.
[2]
J. M. Cardoso and P. C. Diniz. Compilation Techniques for Reconfigurable Architectures. Springer, 2008.
[3]
C. Dubach, P. Cheng, R. Rabbah, D. F. Bacon, and S. J. Fink. Compiling a high-level language for GPUs. In PLDI, June 2012.
[4]
S. S. Huang, A. Hormati, D. F. Bacon, and R. Rabbah. Liquid Metal: Object-oriented programming across the hardware/software boundary. In ECOOP, pp. 76--103. Springer-Verlag, 2008.
[5]
Khronos OpenCL Working Group. The OpenCL Specification.
[6]
S. Kou and J. Palsberg. From OO to FPGA: fitting round objects into square hardware? In OOPSLA, pp. 109--124. ACM, 2010.
[7]
C.-K. Luk, S. Hong, and H. Kim. Qilin: exploiting parallelism on heterogeneous multiprocessors with adaptive mapping. In MICRO, pp. 45--55. ACM, 2009.
[8]
A. D. Reid, K. Flautner, E. Grimley-Evans, and Y. Lin. SoC-C: efficient programming abstractions for heterogeneous multicore systems on chip. In CASES, pp. 95--104. ACM, 2008.
[9]
S. Singh and D. J. Greaves. Kiwi: Synthesis of FPGA circuits from parallel programs. In FCCM, pp. 3--12. IEEE Computer Society, 2008.
[10]
D. Tarditi, S. Puri, and J. Oglesby. Accelerator: using data parallelism to program GPUs for general-purpose uses. In ASPLOS, pp. 325--335. ACM, 2006.
[11]
B. L. Titzer. Virgil: objects on the head of a pin. In OOPSLA, pp. 191--208. ACM, 2006.
[12]
P. H. Wang, J. D. Collins, G. N. Chinya, H. Jiang, X. Tian, M. Girkar, N. Y. Yang, G.-Y. Lueh, and H. Wang. Exochi: architecture and programming environment for a heterogeneous multi-core multithreaded system. In PLDI, pp. 156--166. ACM, 2007.
[13]
J. R. Wernsing and G. Stitt. Elastic computing: a framework for transparent, portable, and adaptive multi-core heterogeneous computing. In LCTES, pp. 115--124. ACM, 2010.

Cited By

View all
  • (2023)HIR: An MLIR-based Intermediate Representation for Hardware Accelerator DescriptionProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624767(189-201)Online publication date: 25-Mar-2023
  • (2023)CEDR: A Compiler-integrated, Extensible DSSoC RuntimeACM Transactions on Embedded Computing Systems10.1145/352925722:2(1-34)Online publication date: 24-Jan-2023
  • (2023)HLS-based High-throughput and Work-efficient Synthesizable Graph Processing Template PipelineACM Transactions on Embedded Computing Systems10.1145/352925622:2(1-24)Online publication date: 24-Jan-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
DAC '12: Proceedings of the 49th Annual Design Automation Conference
June 2012
1357 pages
ISBN:9781450311991
DOI:10.1145/2228360
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 June 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. FPGA
  2. GPU
  3. Java
  4. heterogeneous
  5. streaming

Qualifiers

  • Research-article

Conference

DAC '12
Sponsor:
DAC '12: The 49th Annual Design Automation Conference 2012
June 3 - 7, 2012
California, San Francisco

Acceptance Rates

Overall Acceptance Rate 1,770 of 5,499 submissions, 32%

Upcoming Conference

DAC '25
62nd ACM/IEEE Design Automation Conference
June 22 - 26, 2025
San Francisco , CA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)43
  • Downloads (Last 6 weeks)8
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)HIR: An MLIR-based Intermediate Representation for Hardware Accelerator DescriptionProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624767(189-201)Online publication date: 25-Mar-2023
  • (2023)CEDR: A Compiler-integrated, Extensible DSSoC RuntimeACM Transactions on Embedded Computing Systems10.1145/352925722:2(1-34)Online publication date: 24-Jan-2023
  • (2023)HLS-based High-throughput and Work-efficient Synthesizable Graph Processing Template PipelineACM Transactions on Embedded Computing Systems10.1145/352925622:2(1-24)Online publication date: 24-Jan-2023
  • (2022)Accelerators for Classical Molecular Dynamics Simulations of BiomoleculesJournal of Chemical Theory and Computation10.1021/acs.jctc.1c0121418:7(4047-4069)Online publication date: 16-Jun-2022
  • (2021)Sustainable Security for the Internet of Things Using Artificial Intelligence ArchitecturesACM Transactions on Internet Technology10.1145/344861421:3(1-22)Online publication date: 16-Jun-2021
  • (2021)Spatio-temporal Bayesian Learning for Mobile Edge Computing Resource Planning in Smart CitiesACM Transactions on Internet Technology10.1145/344861321:3(1-21)Online publication date: 9-Jun-2021
  • (2021)An Exact Method for the Minimum Feedback Arc Set ProblemACM Journal of Experimental Algorithmics10.1145/344642926(1-28)Online publication date: 23-Apr-2021
  • (2021)HyperBenchACM Journal of Experimental Algorithmics10.1145/344001526(1-40)Online publication date: 9-Jul-2021
  • (2021)How We Write with CrowdsProceedings of the ACM on Human-Computer Interaction10.1145/34329284:CSCW3(1-31)Online publication date: 5-Jan-2021
  • (2021)Using Data to Approach the UnknownProceedings of the ACM on Human-Computer Interaction10.1145/34329264:CSCW3(1-35)Online publication date: 5-Jan-2021
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media