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

A type-safe arbitrary precision arithmetic portability layer for HLS tools

Published: 06 June 2019 Publication History

Abstract

Recent studies have shown that High-Level Synthesis (HLS) is an efficient way to design operators for floating-point arithmetic, or for emerging alternative formats such as posits. However, HLS tools support different supersets of different subsets of the C language -- for example, support for arbitrary-sized bit vectors may be provided through vendor-specific data-type libraries such as ac_int, ap_int, or int1 to int64, while others only support the standard C integer types. This is a problem when carefully tuning an operator's internal data-path, as there is no portable HLS standard for arbitrary width integers, and vendor libraries may introduce implicit casts and extensions that can hide subtle bugs. Each vendor also offers varying support for important operator-building primitives, such as platform-optimized leading-zero count. To address such problems, this work introduces Hint (hardware integer), a header-only compatibility layer offering a consistent and comprehensive interface to signed and unsigned arbitrary-sized integers. To avoid bugs Hint is strongly typed, requiring exact matching of expression widths and types -- this type-checking is performed statically using the C++ template system, and adds no overhead at synthesis time. The current implementation wraps ac_int and ap_int with no performance or resource overhead when synthesized on Xilinx or Intel FPGAs. It also offers a Boost::multiprecision backend for fast simulation. Hint is open-source and extensible, and aims to provide an optimized superset of existing library primitives. This work is evaluated with arithmetic operators useful when implementing floating-point and posit operators (shifter, leading zero counter, fused shifter+sticky) deployed using two mainstream HLS tools (Xilinx VivadoHLS, and IntelHLS). A complete posit adder operator has also been written using Hint, showing no overhead when compared to the original operator written for Xilinx FPGAs.

References

[1]
Vivado Design Suite User Guide: High-Level Synthesis (UG902). https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_3/ug902-vivado-high-level-synthesis.pdf, 2018.
[2]
S. Bansal, H. Hsiao, T. Czajkowski, and J. H. Anderson. High-level synthesis of software-customizable floating-point cores. In 2018 Design, Automation & Test in Europe, pages 37--42. IEEE, 2018.
[3]
A. Canis, J. Choi, M. Aldham, V. Zhang, A. Kammoona, J. H. Anderson, S. Brown, and T. Czajkowski. LegUp: high-level synthesis for FPGA-based processor/accelerator systems. In ACM/SIGDA international symposium on Field-Programmable Gate Arrays, pages 33--36, 2011.
[4]
J. O. Coplien. Curiously recurring template patterns. C++ Report, 7(2):24--27, 1995.
[5]
F. de Dinechin and B. Pasca. Designing custom arithmetic data paths with FloPoCo. IEEE Design & Test of Computers, 28(4):18--27, July 2011.
[6]
R. Nane, V. M. Sima, C. Pilato, J. Choi, B. Fort, A. Canis, Y. T. Chen, H. Hsiao, S. Brown, F. Ferrandi, J. Anderson, and K. Bertels. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 35(10):1591--1604, Oct 2016.
[7]
A. Podobas and S. Matsuoka. Hardware implementation of POSITs and their application in FPGAs. In International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pages 138--145. IEEE, 2018.
[8]
A. Prost-Boucle, O. Muller, and F. Rousseau. Fast and standalone design space exploration for high-level synthesis under resource constraints. Journal of Systems Architecture, 60(1):79--93, 2014.
[9]
A. Takach. Algorithm c (AC) datatypes. https://github.com/hlslibs/ac_types, 2018.
[10]
D. Thomas. Templatised soft floating-point for high-level synthesis. In IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). IEEE, 2019.
[11]
Y. Uguen, F. de Dinechin, and S. Derrien. Bridging High-Level Synthesis and Application-Specific Arithmetic: The Case Study of Floating-Point Summations. In Field-Programmable Logic and Applications. IEEE, Sept. 2017.
[12]
Y. Uguen, L. Forget, and F. De Dinechin. Evaluating the hardware cost of the posit number system (Online). 2019.
[13]
X. Wang, S. Braganza, and M. Leeser. Advanced components in the variable precision floating-point library. In FCCM, pages 249--258. IEEE Computer Society, 2006.

Cited By

View all
  • (2022)FPGA Acceleration of Pre-Alignment Filters for Short Read Mapping With HLSIEEE Access10.1109/ACCESS.2022.315303210(22079-22100)Online publication date: 2022
  • (2021)OpenCL-based FPGA Accelerator for Semi-Global Approximate String Matching Using Diagonal Bit-Vectors2021 31st International Conference on Field-Programmable Logic and Applications (FPL)10.1109/FPL53798.2021.00036(174-178)Online publication date: Aug-2021
  • (2020)Application-Specific Arithmetic in High-Level Synthesis ToolsACM Transactions on Architecture and Code Optimization10.1145/337740317:1(1-23)Online publication date: 4-Mar-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
HEART '19: Proceedings of the 10th International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies
June 2019
106 pages
ISBN:9781450372558
DOI:10.1145/3337801
Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 June 2019

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

HEART 2019

Acceptance Rates

HEART '19 Paper Acceptance Rate 12 of 29 submissions, 41%;
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)1
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)FPGA Acceleration of Pre-Alignment Filters for Short Read Mapping With HLSIEEE Access10.1109/ACCESS.2022.315303210(22079-22100)Online publication date: 2022
  • (2021)OpenCL-based FPGA Accelerator for Semi-Global Approximate String Matching Using Diagonal Bit-Vectors2021 31st International Conference on Field-Programmable Logic and Applications (FPL)10.1109/FPL53798.2021.00036(174-178)Online publication date: Aug-2021
  • (2020)Application-Specific Arithmetic in High-Level Synthesis ToolsACM Transactions on Architecture and Code Optimization10.1145/337740317:1(1-23)Online publication date: 4-Mar-2020
  • (2019)Evaluating the Hardware Cost of the Posit Number System2019 29th International Conference on Field Programmable Logic and Applications (FPL)10.1109/FPL.2019.00026(106-113)Online publication date: Sep-2019

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