Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3120895.3120918acmotherconferencesArticle/Chapter ViewAbstractPublication PagesheartConference Proceedingsconference-collections
research-article

High-level Synthesis based on Parallel Design Patterns using a Functional Language

Published: 07 June 2017 Publication History

Abstract

Logic-circuit integration of a field-programmable gate array (FPGA) has grown considerably with improvements in semiconductor technology. High-level synthesis (HLS) is now widely used to implement complex FPGA applications to increase design efficiency, taking the place of typical register-transfer level (RTL) design. Most HLS tools support C-like languages such as C/C++, SystemC, OpenCL, and CUDA. However, coarse-grain parallelism from a C-like language cannot be extracted easily, hence some tools use explicitly parallel programming languages to design hardware. However, all such tools rely on the programmer to correctly parallelize and perform optimizations on the application, which often forces the programmer to acquire hardware-design knowledge.
In this work, we propose an HLS environment for FPGAs using the embedded domain-specific language (DSL) of Haskell as the design language. Haskell is a pure functional language that has the features of referential transparency and no side effects. Hence, it is better for mapping to hardware. Higher-order functions such as map, zipWith, and reduce are useful for allowing a parallel design pattern to automatically extract parallelism in the design. In our environment, the embedded DSL program is compiled to the LLVM intermediate representation (LLVM IR), which is then integrated into the open-source HLS tool, LegUp. LegUp synthesizes the LLVM IR to Verilog HDL, which can be merged with the FPGA design tools of the FPGA vendor.
The evaluation results show that our proposed implementation achieves 3.00 and 4.96 times speed-up in two benchmarks, array addition and summation of array, respectively, relative to a C-like language design.

References

[1]
Per Bjesse, Koen Claessen, Mary Sheeran, and Satnam Singh. 1998. Lava: Hardware Design in Haskell. ACM SIGPLAN Notices 34, 1 (sep 1998), 174--184. https://doi.org/10.1145/291251.289440
[2]
Corrado Böhm and Giuseppe Jacopini. 1966. Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules. Commun. ACM 9, 5 (May 1966), 366--371. https://doi.org/10.1145/355592.365646
[3]
Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Tomasz Czajkowski, Stephen D. Brown, and Jason H. Anderson. 2013. LegUp: An Open-Source High-Level Synthesis Tool for FPGA-Based Processor/Accelerator Systems. ACM Transactions on Embedded Computing Systems (TECS) 13, 2 (2013), 24:1--24:27. https://doi.org/10.1145/2514740
[4]
Koen Claessen and Mary Sheeran. 2007. A Slightly Revised Tutorial on Lava: A Hardware Description and Verification System. (2007), 98 pages.
[5]
Jason Cong, Bin Liu, Stephen Neuendorffer, Juanjo Noguera, Kees Vissers, and Zhiru Zhang. 2011. High-Level Synthesis for FPGAs: From Prototyping to Deployment. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 30, 4 (2011), 473--491. https://doi.org/10.1109/TCAD.2011.2110592
[6]
Tomasz S. Czajkowski, Utku Aydonat, Dmitry Denisenko, John Freeman, Michael Kinsner, David Neto, Jason Wong, Peter Yiannacouras, and Deshanand P. Singh. 2012. From OpenCL to High-Performance Hardware on FPGAs. In Proc. 22nd International Conference on Field Programmable Logic and Applications (FPL). IEEE, Oslo, Norway, 531--534. https://doi.org/10.1109/FPL.2012.6339272
[7]
Andy Gill, Tristan Bull, Garrin Kimmell, Erik Perrins, and Brett Werling. 2009. Introducing Kansas Lava. In Proc. 21st International Symposia on Implementation and Application of Functional Languages (IFL). Springer Berlin Heidelberg, South Orange, NJ, USA, 18--35.
[8]
Zsolt István, Gustavo Alonso, Michaela Blott, and Kees Vissers. 2015. A Hash Table for Line-Rate Data Processing. ACM Transactions on Reconfigurable Technology and Systems (TRETS) 8, 2 (2015), 13:1--13:15. https://doi.org/10.1145/2629582
[9]
David Koeplinger, Raghu Prabhakar, Yaqi Zhang, Christina Delimitrou, Christos Kozyrakis, and Kunle Olukotun. 2016. Automatic Generation of Efficient Accelerators for Reconfigurable Hardware. 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA) 00 (2016), 115--127. https://doi.org/10.1109/ISCA.2016.20
[10]
Matthew Naylor and Colin Runciman. 2012. The Reduceron Reconfigured and Re-evaluated. Journal of Functional Programming 22, 4--5 (aug 2012), 574--613. https://doi.org/10.1017/S0956796812000214
[11]
Jian Ouyang, Shiding Lin, Song Jiang, Zhenyu Hou, Yong Wang, and Yuanzheng Wang. 2014. SDF: Software-defined Flash for Web-scale Internet Storage Systems. In Proc. 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). ACM, Salt Lake City, Utah, USA, 471--484. https://doi.org/10.1145/2541940.2541959
[12]
Alexandros Papakonstantinou, Karthik Gururaj, John A. Stratton, Deming Chen, Jason Cong, and Wen-Mei W. Hwu. 2009. FCUDA: Enabling efficient compilation of CUDA kernels onto FPGAs. In Proc. IEEE 7th Symposium on Application Specific Processors (SASP). IEEE Computer Society, San Diego, CA, USA, 35--42. https://doi.org/10.1109/SASP.2009.5226333
[13]
Raghu Prabhakar, David Koeplinger, Kevin J. Brown, HyoukJoong Lee, Christopher De Sa, Christos Kozyrakis, and Kunle Olukotun. 2016. Generating Configurable Hardware from Parallel Patterns. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '16). ACM, New York, NY, USA, 651--665. https://doi.org/10.1145/2872362.2872415
[14]
The LLVM projecct. [n. d.]. The LLVM Compiler Infrastructure Project. ([n. d.]). Retrieved March 2017 from http://www.llvm.org
[15]
Andrew Putnam, Adrian M. Caulfield, Eric S. Chung, Derek Chiou, Kypros Constantinides, John Demme, Hadi Esmaeilzadeh, Jeremy Fowers, Gopi Prashanth Gopal, Jan Gray, Michael Haselman, Scott Hauck, Stephen Heil, Amir Hormati, Joo-Young Kim, Sitaram Lanka, James Larus, Eric Peterson, Simon Pope, Aaron Smith, Jason Thong, Phillip Yi Xiao, and Doug Burger. 2014. A Reconfigurable Fabric for Accelerating Large-scale Datacenter Services. In Proc. ACM/IEEE 41st Annual International Symposium on Computer Architecture (ISCA). IEEE, Minneapolis, MN, USA, 13--24. https://doi.org/10.1109/ISCA.2014.6853195
[16]
Satnam. Singh and Phil. James-Roxby. 2001. Lava and JBits: From HDL to Bit-stream in Seconds. In Proc. IEEE 9th Annual Symposium on Field-Programmable Custom Computing Machines (FCCM). IEEE Computer Society, 91--100. https://doi.org/10.1109/FCCM.2001.28
[17]
Jason Villarreal, Adrian Park, Walid Najjar, and Robert Halstead. 2010. Designing Modular Hardware Accelerators in C with ROCCC 2.0. In Proc. IEEE 18th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). IEEE Computer Society, Charlotte, NC, USA, 127--134. https://doi.org/10.1109/FCCM.2010.28

Cited By

View all
  • (2020)A Survey on Performance Optimization of High-Level Synthesis ToolsJournal of Computer Science and Technology10.1007/s11390-020-9414-835:3(697-720)Online publication date: 1-May-2020

Index Terms

  1. High-level Synthesis based on Parallel Design Patterns using a Functional Language

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    HEART '17: Proceedings of the 8th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies
    June 2017
    172 pages
    ISBN:9781450353168
    DOI:10.1145/3120895
    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]

    In-Cooperation

    • Ruhr-Universität Bochum: Ruhr-Universität Bochum

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 07 June 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Functinal language
    2. High-level synthesis
    3. Parallel design pattern

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    HEART2017

    Acceptance Rates

    Overall Acceptance Rate 22 of 50 submissions, 44%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 13 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)A Survey on Performance Optimization of High-Level Synthesis ToolsJournal of Computer Science and Technology10.1007/s11390-020-9414-835:3(697-720)Online publication date: 1-May-2020

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media