skip to main content
research-article

Probability type inference for flexible approximate programming

Published:23 October 2015Publication History
Skip Abstract Section

Abstract

In approximate computing, programs gain efficiency by allowing occasional errors. Controlling the probabilistic effects of this approximation remains a key challenge. We propose a new approach where programmers use a type system to communicate high-level constraints on the degree of approximation. A combination of type inference, code specialization, and optional dynamic tracking makes the system expressive and convenient. The core type system captures the probability that each operation exhibits an error and bounds the probability that each expression deviates from its correct value. Solver-aided type inference lets the programmer specify the correctness probability on only some variables—program outputs, for example—and automatically fills in other types to meet these specifications. An optional dynamic type helps cope with complex run-time behavior where static approaches are insufficient. Together, these features interact to yield a high degree of programmer control while offering a strong soundness guarantee. We use existing approximate-computing benchmarks to show how our language, DECAF, maintains a low annotation burden. Our constraint-based approach can encode hardware details, such as finite degrees of reliability, so we also use DECAF to examine implications for approximate hardware design. We find that multi-level architectures can offer advantages over simpler two-level machines and that solver-aided optimization improves efficiency.

References

  1. J. Bornholt, T. Mytkowicz, and K. S. McKinley. Uncertain<T>: A first-order type for uncertain data. In ASPLOS, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Carbin, S. Misailovic, and M. Rinard. Verifying quantitative reliability of programs that execute on unreliable hardware. In OOPSLA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Cohen, H. S. Zhu, E. E. Senem, and Y. D. Liu. Energy types. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. K. D. Cooper, M. W. Hall, and K. Kennedy. A methodology for procedure cloning. Comput. Lang., 19(2):105–117, Apr. 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. de Kruijf, S. Nomura, and K. Sankaralingam. Relax: An architectural framework for software recovery of hardware faults. In ISCA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. De Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS/ETAPS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. D. Ernst. Type Annotations specification (JSR 308). http://types.cs.washington.edu/jsr308/, September 12, 2008.Google ScholarGoogle Scholar
  8. H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. Neural acceleration for general-purpose approximate programs. In MICRO, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. Architecture support for disciplined approximate programming. In ASPLOS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. H. Esmaeilzadeh, K. Ni, and M. Naik. Expectation-oriented framework for automating approximate programming. Technical Report GT-CS-13-07, Georgia Institute of Technology, 2013. URL http://hdl.handle.net/1853/49755.Google ScholarGoogle Scholar
  11. C. Hizli. Energy aware probabilistic arithmetics. Master’s thesis, Eindhoven University of Technology, 2013.Google ScholarGoogle Scholar
  12. A. Kahng, S. Kang, R. Kumar, and J. Sartori. Designing a processor from the ground up to allow voltage/reliability tradeoffs. In HPCA, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  13. U. Karpuzcu, I. Akturk, and N. S. Kim. Accordion: Toward soft near-threshold voltage computing. In HPCA, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  14. Z. M. Kedem, V. J. Mooney, K. K. Muntimadugu, and K. V. Palem. An approach to energy-error tradeoffs in approximate ripple carry adders. In ISPLED, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Liu, K. Pattabiraman, T. Moscibroda, and B. G. Zorn. Flikker: Saving DRAM refresh-power through critical data partitioning. In ASPLOS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Misailovic, M. Carbin, S. Achour, Z. Qi, and M. C. Rinard. Chisel: Reliability- and accuracy-aware optimization of approximate computational kernels. In OOPSLA, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. P. M. Phothilimthana, T. Jelvis, R. Shah, N. Totla, S. Chasins, and R. Bodik. Chlorophyll: Synthesis-aided compiler for lowpower spatial architectures. In PLDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. F. Ringenburg, A. Sampson, I. Ackerman, L. Ceze, and D. Grossman. Monitoring and debugging the quality of results in approximate programs. In ASPLOS, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Rubio-González, C. Nguyen, H. D. Nguyen, J. Demmel, W. Kahan, K. Sen, D. H. Bailey, C. Iancu, and D. Hough. Precimonious: Tuning assistant for floating-point precision. In Supercomputing, 2013.Google ScholarGoogle Scholar
  20. M. Samadi, D. A. Jamshidi, J. Lee, and S. Mahlke. Paraprox: Pattern-based approximation for data parallel applications. In ASPLOS, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam, L. Ceze, and D. Grossman. EnerJ: Approximate data types for safe and general low-power computation. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Sampson, J. Nelson, K. Strauss, and L. Ceze. Approximate storage in solid-state memories. In MICRO, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Sampson, P. Panchekha, T. Mytkowicz, K. S. McKinley, D. Grossman, and L. Ceze. Expressing and verifying probabilistic assertions. In PLDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. E. Schkufza, R. Sharma, and A. Aiken. Stochastic optimization of floating-point programs with tunable precision. In PLDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Tobin-Hochstadt and M. Felleisen. Interlanguage migration: From scripts to programs. In Dynamic Languages Symposium (DLS), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. S. Venkataramani, V. K. Chippa, S. T. Chakradhar, K. Roy, and A. Raghunathan. Quality programmable vector processors for approximate computing. In MICRO, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Weber, M. Putic, H. Zhang, J. Lach, and J. Huang. Balancing adder for error tolerant applications. In International Symposium on Circuits and Systems (ISCAS), 2013.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Probability type inference for flexible approximate programming

    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 SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 50, Issue 10
      OOPSLA '15
      October 2015
      953 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2858965
      • Editor:
      • Andy Gill
      Issue’s Table of Contents
      • cover image ACM Conferences
        OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
        October 2015
        953 pages
        ISBN:9781450336895
        DOI:10.1145/2814270

      Copyright © 2015 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 23 October 2015

      Check for updates

      Qualifiers

      • research-article

    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!