skip to main content
research-article

The Effect of Compiler Optimizations on High-Level Synthesis-Generated Hardware

Authors Info & Claims
Published:11 May 2015Publication History
Skip Abstract Section

Abstract

We consider the impact of compiler optimizations on the quality of high-level synthesis (HLS)-generated field-programmable gate array (FPGA) hardware. Using an HLS tool implemented within the state-of-the-art LLVM compiler, we study the effect of compiler optimizations on the hardware metrics of circuit area, execution cycles, FMax, and wall-clock time. We evaluate 56 different compiler optimizations implemented within LLVM and show that some optimizations significantly affect hardware quality. Moreover, we show that hardware quality is also affected by some optimization parameter values, as well as the order in which optimizations are applied. We then present a new HLS-directed approach to compiler optimizations, wherein we execute partial HLS and profiling at intermittent points in the optimization process and use the results to judiciously undo the impact of optimization passes predicted to be damaging to the generated hardware quality. Results show that our approach produces circuits with 16% better speed performance, on average, versus using the standard -O3 optimization level.

References

  1. Altera. 2012a. Implementing FPGA Design with the OpenCL Standard. White Paper WP-01173-2.0. Altera Corporation. Available at http://www.altera.com/literature/wp/wp-01173-opencl.pdf.Google ScholarGoogle Scholar
  2. Altera. 2012b. Cyclone-II FPGA Family Datasheet. Altera Corporation.Google ScholarGoogle Scholar
  3. Lelac Almagor, Keith D. Cooper, Alexander Grosul, Timothy J. Harvey, Steven W. Reeves, Devika Subramanian, Linda Torczon, and Todd Waterman. 2004. Finding effective compilation sequences. In Proceedings of the 2004 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’04). 231--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Tomasz Czajkowski, Stephen Brown, and Jason Anderson. 2013. LegUp: An open-source high-level synthesis tool for FPGA-based processor/accelerator systems. ACM Transactions on Embedded Computing Systms 13, 2, Article No. 24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Jason Cong, Bin Liu, Raghu Prabhakar, and Peng Zhang. 2012. A study on the impact of compiler optimizations on high-level synthesis. In Proceedings of the International Workshop on Languages and Compilers for Parallel Computing. 143--157.Google ScholarGoogle Scholar
  6. Jason Cong and Zhiru Zhang. 2006. An efficient and versatile scheduling algorithm based on SDC formulation. In Proceedings of the 2006 43rd ACM/IEEE Design Automation Conference (DAC’06). 433--438. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Phillipe Coussy, Ghizlane Lhairech-Lebreton, Dominique Heller, and Eric Martin. 2010. GAUT—a free and open source high-level synthesis tool. In Proceedings of IEEE Design Automation and Test in Europe (DATE’10).Google ScholarGoogle Scholar
  8. Grigori Fursin, Yuriy Kashnikov, Abdul Wahid Memon, Zbigniew Chamski, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Bilha Mendelson, Ayal Zaks, Eric Courtois, Francois Bodin, Phil Barnard, Elton Ashton, Edwin Bonilla, John Thomson, Christopher K. I. Williams, and Michael O’Boyle. 2011. Milepost GCC: Machine learning enabled self-tuning compiler. International Journal of Parallel Programming 39, 296--327. Issue 3.Google ScholarGoogle ScholarCross RefCross Ref
  9. Joseph A. Fisher. 1981. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers 100, 7, 478--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sumit Gupta, Nikil Dutt, Rajesh Gupta, and Alex Nicolau. 2003. SPARK: A high-level synthesis framework for applying parallelizing compiler transformations. In Proceedings of the 16th International Conference on VLSI Design. 461--466. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Stefan Hadjis, Andrew Canis, Jason Anderson, Jongsok Choi, Kevin Nam, Tomasz Czajkowski, and Stephen Brown. 2012. Impact of FPGA architecture on resource sharing in high-level synthesis. In Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA’12). 111--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Yuko Hara, Hiroyuki Tomiyama, Shinya Honda, and Hiroaki Takada. 2009. Proposal and quantitative analysis of the CHStone benchmark program suite for practical C-based high-level synthesis. Journal of Information Processing 17, 242--254.Google ScholarGoogle ScholarCross RefCross Ref
  13. Qijing Huang, Ruolong Lian, Andrew Canis, Jongsok Choi, Ryan Xi, Stephen Brown, and Jason Anderson. 2013. The effect of compiler optimizations on high-level synthesis for FPGAs. In Proceedings of the 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM’13). 89--96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. LLVM. 2010a. The LLVM Compiler. Infrastructure. Retrieved April 9, 2015, from http://www.llvm.org.Google ScholarGoogle Scholar
  15. LLVM. 2010b. LLVM Loop Unroll Pass. Retrieved April 9, 2015, from http://www.llvm.org/docs/Passes.html#loop-unroll-unroll-loops.Google ScholarGoogle Scholar
  16. Chris Loken, Daniel Gruner, Leslie Groer, Richard Peltier, Neil Bunn, Michael Craig, Teresa Henriques, Jillian Dempsey, Ching-Hsing Yu, Joseph Chen, L. Jonathan Dursi, Jason Chong, Scott Northrup, Jaime Pinto, Neil Knecht, and Ramses Van Zon. 2010. SciNet: Lessons learned from building a power-efficient top-20 system and data centre. Journal of Physics: Conference Series 256, 1, 012026.Google ScholarGoogle ScholarCross RefCross Ref
  17. Scott A. Mahlke, David C. Lin, William Y. Chen, Richard E. Hank, and Roger A. Bringmann. 1992. Effective compiler support for predicated execution using the hyperblock. In ACM SIGMICRO Newsletter 23, 45--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Zhelong Pan and Rudolf Eigenmann. 2006. Fast and effective orchestration of compiler optimizations for automatic performance tuning. In Proceedings of the International Symposium on Code Generation and Optimization (CGO’06). 319--332. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Spyridon Triantafyllis, Manish Vachharajani, Neil Vachharajani, and David I. August. 2003. Compiler optimization-space exploration. In Proceedings of the International Symposium on Code Generation and Optimization (CGO’03). 204--215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Jason Villarreal, Adrian Park, Walid Najjar, and Robert Halstead. 2010. Designing modular hardware accelerators in C with ROCCC 2.0. In Proceedings of the 2010 IEEE 18th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM’10). 127--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. Ramakrishna Rau. 1996. Iterative modulo scheduling. International Journal of Parallel Processing 24, 13--64.Google ScholarGoogle Scholar
  22. Xilinx. 2013. C-Based Design: High-Level Synthesis with the Vivado HLS Tool. Technical Report. Xilinx Incorporated. Available at http://www.xilinx.com/training/dsp/high-level-synthesis-with-vivado-hls.htm.Google ScholarGoogle Scholar
  23. Y. Explorations. 2012. Y Explorations—C to RTL Behavioral Synthesis. Retrieved April 9, 2015, from http://www.yxi.com.Google ScholarGoogle Scholar

Index Terms

  1. The Effect of Compiler Optimizations on High-Level Synthesis-Generated Hardware

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Reconfigurable Technology and Systems
      ACM Transactions on Reconfigurable Technology and Systems  Volume 8, Issue 3
      May 2015
      153 pages
      ISSN:1936-7406
      EISSN:1936-7414
      DOI:10.1145/2770880
      • Editor:
      • Steve Wilton
      Issue’s Table of Contents

      Copyright © 2015 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 11 May 2015
      • Accepted: 1 April 2014
      • Revised: 1 February 2014
      • Received: 1 September 2013
      Published in trets Volume 8, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!