skip to main content
research-article

TAFFO: Tuning Assistant for Floating to Fixed Point Optimization

Published: 01 March 2020 Publication History

Abstract

While many approximate computing methods are quite application-dependent, reducing the size of the data representation used in the computation has a more general applicability. We present a tuning assistant for floating to fixed point optimization (TAFFO), an LLVM-based framework designed to assist programmers in the precision tuning of software. We discuss the framework architecture and we provide guidelines to effectively tradeoff precision to improve the time-to-solution. We evaluate our framework on a well-known approximate computing benchmark suite, AxBench, achieving a speedup on 5 out of 6 benchmarks (up to 366%) with only a limited loss in precision (<3% for all benchmarks). Contrary to most related tools, TAFFO supports both C and C++ programs. It is provided as a plugin for LLVM, a design solution that improves significantly the maintainability of the tool and its ease of use.

References

[1]
L. Breiman, “Bagging predictors,” Mach. Learn., vol. 24, no. 2, pp. 123–140, Aug. 1996.
[2]
D. Cattaneo, A. D. Bello, S. Cherubin, F. Terraneo, and G. Agosta, “Embedded operating system optimization through floating to fixed point compiler transformation,” in Proc. 21st Euromicro Conf. Digit. Syst. Design (DSD), 2018, pp. 172–176.
[3]
E. Darulova and V. Kuncak, “Trustworthy numerical computation in scala,” SIGPLAN Notices, vol. 46, no. 10, pp. 325–344, Oct. 2011.
[4]
E. Darulova and V. Kuncak, “Towards a compiler for reals,” ACM Trans. Program. Lang. Syst., vol. 39, no. 2, p. 8, Mar. 2017.
[5]
L. H. de Figueiredo and J. Stolfi, “Affine arithmetic: Concepts and applications,” Numer. Algorithms, vol. 37, nos. 1–4, pp. 147–158, Dec. 2004.
[6]
IEEE Computer Society Standards Committee. Floating-Point Working Group of the Microprocessor Standards Subcommittee, IEEE Standard for Floating-Point Arithmetic, IEEE Standard, pp. 1–70, Aug. 2008.
[7]
H. Keding, M. Willems, M. Coors, and H. Meyr, “FRIDGE: A fixed-point design and simulation environment,” in Proc. Conf. Design Autom. Test Europe, Paris, France, 1998, pp. 429–435.
[8]
K.-I. Kum, J. Kang, and W. Sung, “AUTOSCALER for C: An optimizing floating-point to integer C program converter for fixed-point digital signal processors,” IEEE Trans. Circuits Syst. II, Analog Digit. Signal Process., vol. 47, no. 9, pp. 840–848, Sep. 2000.
[9]
M. O. Lam, J. K. Hollingsworth, B. R. de Supinski, and M. P. Legendre, “Automatically adapting programs for mixed-precision floating-point computation,” in Proc. 27th Int. ACM Conf. Supercomput. (ICS), Eugene, OR, USA, 2013, pp. 369–378.
[10]
C. Lattner and V. Adve, “LLVM: A compilation framework for lifelong program analysis & transformation,” in Proc. Int. Symp. Code Gener. Optim., San Jose, CA, USA, 2004, pp. 75–86.
[11]
S. Mitra, M. K. Gupta, S. Misailovic, and S. Bagchi, “Phase-aware optimization in approximate computing,” in Proc. Int. Symp. Code Gener. Optim., Austin, TX, USA, 2017, pp. 185–196.
[12]
R. E. Mooreet al., Introduction to Interval Analysis. Philadelphia, PA, USA: SIAM, 2009.
[13]
F. Pedregosaet al., “Scikit-learn: Machine learning in python,” J. Mach. Learn. Res., vol. 12, pp. 2825–2830, Oct. 2011.
[14]
C. Rubio-Gonzálezet al., “Precimonious: Tuning assistant for floating-point precision,” in Proc. Int. Conf. High Perform. Comput. Network. Storage Anal. (SC), Denver, CO, USA, Nov. 2013, pp. 1–12.
[15]
C. Rubio-Gonzálezet al., “Floating-point precision tuning using blame analysis,” in Proc. 38th Int. Conf. Softw. Eng. (ICSE), Austin, TX, USA, 2016, pp. 1074–1085.
[16]
A. Sampsonet al., “ACCEPT: A programmer-guided compiler framework for practical approximate computing,” Univ. Washington, Seattle, WA, USA, Rep. UW-CSE-15-01-01, Apr. 2015.
[17]
A. Yazdanbakhsh, D. Mahajan, H. Esmaeilzadeh, and P. Lotfi-Kamran, “AxBench: A multiplatform benchmark suite for approximate computing,” IEEE Des. Test., vol. 34, no. 2, pp. 60–68, Apr. 2017.
[18]
T. Yuki, “Understanding PolyBench/C 3.2 kernels,” in Proc. Int. Workshop Polyhedral Compilation Tech. (IMPACT), 2014, pp. 1–5.
[19]
Q. Zhang, F. Yuan, R. Ye, and Q. Xu, “Approxit: An approximate computing framework for iterative methods,” in Proc. Design Autom. Conf. (DAC), San Francisco, CA, USA, Jun. 2014, pp. 1–6.

Cited By

View all

Index Terms

  1. TAFFO: Tuning Assistant for Floating to Fixed Point Optimization
          Index terms have been assigned to the content through auto-classification.

          Recommendations

          Comments

          Information & Contributors

          Information

          Published In

          cover image IEEE Embedded Systems Letters
          IEEE Embedded Systems Letters  Volume 12, Issue 1
          March 2020
          32 pages

          Publisher

          IEEE Press

          Publication History

          Published: 01 March 2020

          Qualifiers

          • Research-article

          Contributors

          Other Metrics

          Bibliometrics & Citations

          Bibliometrics

          Article Metrics

          • Downloads (Last 12 months)0
          • Downloads (Last 6 weeks)0
          Reflects downloads up to 26 Jan 2025

          Other Metrics

          Citations

          Cited By

          View all

          View Options

          View options

          Figures

          Tables

          Media

          Share

          Share

          Share this Publication link

          Share on social media