skip to main content
10.1145/2908080.2908087acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article
Public Access

Input responsiveness: using canary inputs to dynamically steer approximation

Published:02 June 2016Publication History

ABSTRACT

This paper introduces Input Responsive Approximation (IRA), an approach that uses a canary input — a small program input carefully constructed to capture the intrinsic properties of the original input — to automatically control how program approximation is applied on an input-by-input basis. Motivating this approach is the observation that many of the prior techniques focusing on choosing how to approximate arrive at conservative decisions by discounting substantial differences between inputs when applying approximation. The main challenges in overcoming this limitation lie in making the choice of how to approximate both effectively (e.g., the fastest approximation that meets a particular accuracy target) and rapidly for every input. With IRA, each time the approximate program is run, a canary input is constructed and used dynamically to quickly test a spectrum of approximation alternatives. Based on these runtime tests, the approximation that best fits the desired accuracy constraints is selected and applied to the full input to produce an approximate result. We use IRA to select and parameterize mixes of four approximation techniques from the literature for a range of 13 image processing, machine learning, and data mining applications. Our results demonstrate that IRA significantly outperforms prior approaches, delivering an average of 10.2× speedup over exact execution while minimizing accuracy losses in program outputs.

References

  1. S. Agarwal, B. Mozafari, A. Panda, H. Milner, S. Madden, and I. Stoica. BlinkDB: Queries with bounded errors and bounded response times on very large data. In European Conference on Computer Systems (EuroSys), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. S. Amant, A. Yazdanbakhsh, J. Park, B. Thwaites, H. Esmaeilzadeh, A. Hassibi, L. Ceze, and D. Burger. Generalpurpose code acceleration with limited-precision analog computation. In International Symposium on Computer Architecture (ISCA), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Ansel, Y. L. Wong, C. Chan, M. Olszewski, A. Edelman, and S. Amarasinghe. Language and compiler support for autotuning variable-accuracy algorithms. Code Generation and Optimization (CGO), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Apple. Siri. https://www.apple.com/ios/siri/, 2016.Google ScholarGoogle Scholar
  5. {Online; accessed 10-April-2016}.Google ScholarGoogle Scholar
  6. K. Bache and M. Lichman. UCI machine learning repository. http://archive.ics.uci.edu/ml/, 2016. {Online; accessed 10-April-2016}.Google ScholarGoogle Scholar
  7. W. Baek and T. M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In Programming Language Design and Implementation (PLDI), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Barker, T. Benson, D. Campbell, D. Ediger, R. Gioiosa, A. Hoisie, D. Kerbyson, J. Manzano, A. Marquez, L. Song, N. Tallent, and A. Tumeo. PERFECT (Power Efficiency Revolution For Embedded Computing Technologies) Benchmark Suite Manual. Pacific Northwest National Laboratory and Georgia Tech Research Institute, 2013.Google ScholarGoogle Scholar
  9. E. D. Berger and B. G. Zorn. Diehard: probabilistic memory safety for unsafe languages. In Programming Language Design and Implementation (PLDI), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Bornholt, T. Mytkowicz, and K. S. McKinley. Uncertain<T>: A first-order type for uncertain data. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Byna, J. Meng, A. Raghunathan, S. Chakradhar, and S. Cadambi. Best-effort semantic document search on GPUs. In Workshop on General-Purpose Computation on Graphics Processing Units (GPGPU), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Carbin, D. Kim, S. Misailovic, and M. C. Rinard. Proving acceptability properties of relaxed nondeterministic approximate programs. In Programming Language Design and Implementation (PLDI), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Carbin, S. Misailovic, and M. C. Rinard. Verifying quantitative reliability for programs that execute on unreliable hardware. In Object Oriented Programming Systems Languages and Applications (OOPSLA), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Chaudhuri, S. Gulwani, R. Lublinerman, and S. Navidpour. Proving programs robust. In Foundations of Software Engineering (FSE), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Cohen. Statistical power analysis for the behavioral sciences. Lawrence Erlbaum, 1988.Google ScholarGoogle Scholar
  16. Y. Ding, J. Ansel, K. Veeramachaneni, X. Shen, U.-M. O’Reilly, and S. Amarasinghe. Autotuning algorithmic choice for input sensitivity. In Programming Language Design and Implementation (PLDI), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. O. J. Dunn. Multiple comparisons among means. Journal of the American Statistical Association, 1961.Google ScholarGoogle ScholarCross RefCross Ref
  18. H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. Architecture support for disciplined approximate programming. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. Neural acceleration for general-purpose approximate programs. In International Symposium on Microarchitecture (MICRO), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. I. Goiri, R. Bianchini, S. NagaraKatte, and T. Nguyen. Approxhadoop: Bringing approximations to mapreduce frameworks. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Google. Glass. https://www.google.com/glass/ start/, 2016. {Online; accessed 10-April-2016}.Google ScholarGoogle Scholar
  22. Google. Google Now. http://www.google.com/ landing/now/, 2016. {Online; accessed 10-April-2016}.Google ScholarGoogle Scholar
  23. B. Grigorian and G. Reinman. Dynamically adaptive and reliable approximate computing using light-weight error analysis. In NASA/ESA Conference on Adaptive Hardware and Systems (AHS), 2014.Google ScholarGoogle ScholarCross RefCross Ref
  24. B. Grigorian, N. Farahpour, and G. Reinman. Brainiac: Bringing reliable accuracy into neurally-implemented approximate computing. In High Performance Computer Architecture (HPCA), 2015.Google ScholarGoogle ScholarCross RefCross Ref
  25. J. R. Hauser. Handling floating-point exceptions in numeric programs. Transactions on Programming Languages and Systems (TOPLAS), 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. F. B. Hildebrand. Introduction to numerical analysis. Courier Corporation, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. H. Hoffmann, J. Eastep, M. Santambrogio, J. Miller, and A. Agarwal. Application heartbeats for software performance and health. MIT CSAIL Technical Report, 2009.Google ScholarGoogle Scholar
  28. H. Hoffmann, S. Misailovic, S. Sidiroglou, A. Agarwal, and M. Rinard. Using code perforation to improve performance, reduce energy consumption, and respond to failures. MIT CSAIL Technical Report, 2009.Google ScholarGoogle Scholar
  29. H. Hoffmann, S. Sidiroglou, M. Carbin, S. Misailovic, A. Agarwal, and M. Rinard. Dynamic knobs for responsive power-aware computing. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Holm. A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 1979.Google ScholarGoogle Scholar
  31. D. S. Khudia, B. Zamirai, M. Samadi, and S. Mahlke. Rumba: an online quality management system for approximate computing. In International Symposium on Computer Architecture (ISCA), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. L. Leem, H. Cho, J. Bau, Q. A. Jacobson, and S. Mitra. ERSA: Error resilient system architecture for probabilistic applications. In Design, Automation and Test in Europe (DATE), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. M.-L. Li, P. Ramachandran, S. K. Sahoo, S. V. Adve, V. S. Adve, and Y. Zhou. SWAT: an error resilient system. In Workshop on Silicon Errors in Logic-System Effects (SELSE), 2008.Google ScholarGoogle Scholar
  34. S. Liu, K. Pattabiraman, T. Moscibroda, and B. G. Zorn. Flikker: Saving DRAM refresh-power through data partitioning. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Meng, S. Chakradhar, and A. Raghunathan. Best-effort parallel execution framework for recognition and mining applications. In International Symposium on Parallel and Distributed Processing (IPDPS), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Meta. https://www.metavision.com/, 2016.Google ScholarGoogle Scholar
  37. {Online; accessed 10-April-2016}.Google ScholarGoogle Scholar
  38. Microsoft. Cortana. https://www.microsoft.com/ en-us/mobile/experiences/cortana/, 2016.Google ScholarGoogle Scholar
  39. {Online; accessed 10-April-2016}.Google ScholarGoogle Scholar
  40. R. G. Miller. Simultaneous Statistical Inference. Springer, 1981.Google ScholarGoogle ScholarCross RefCross Ref
  41. S. Misailovic, S. Sidiroglou, H. Hoffmann, and M. Rinard. Quality of service profiling. In International Conference on Software Engineering (ICSE), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. S. Misailovic, D. M. Roy, and M. C. Rinard. Probabilistically accurate program transformations. In Static Analysis Symposium (SAS). 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. S. Misailovic, D. Kim, and M. Rinard. Parallelizing sequential programs with statistical accuracy tests. Transactions on Embedded Computing Systems (TECS), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. T. Moreau, M. Wyse, J. Nelson, A. Sampson, H. Esmaeilzadeh, L. Ceze, and M. Oskin. Snnap: Approximate computing on programmable socs via neural acceleration. In High Performance Computer Architecture (HPCA), 2015.Google ScholarGoogle ScholarCross RefCross Ref
  45. C. Poynton. Digital video and HD: Algorithms and Interfaces. Elsevier, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. L. Renganarayana, V. Srinivasan, R. Nair, and D. Prener. Programming with relaxed synchronization. In Workshop on Relaxing Synchronization for Multicore and Manycore Scalability (RACES), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. M. Rinard. Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In International Conference on Supercomputing (ICS), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. M. Rinard. Probabilistic accuracy bounds for perforated programs. In Workshop on Partial Evaluation and Program Manipulation (PEPM), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. M. Rinard, H. Hoffmann, S. Misailovic, and S. Sidiroglou. Patterns and statistical analysis for understanding reduced resource computing. In Object Oriented Programming Systems Languages and Applications (OOPSLA), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. M. Ringenburg, A. Sampson, I. Ackerman, L. Ceze, and D. Grossman. Monitoring and debugging the quality of results in approximate programs. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. S. Russell and P. Norvig. Artificial intelligence: A modern approach. Prentice Hall Press, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. M. Samadi, J. Lee, D. A. Jamshidi, A. Hormati, and S. Mahlke. SAGE: Self-tuning approximation for graphics engines. In International Symposium on Microarchitecture (MICRO), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. M. Samadi, D. A. Jamshidi, J. Lee, and S. Mahlke. Paraprox: Pattern-based approximation for data parallel applications. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. 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 Programming Language Design and Implementation (PLDI), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. A. Sampson, J. Nelson, K. Strauss, and L. Ceze. Approximate storage in solid-state memories. In International Symposium on Microarchitecture (MICRO), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. A. Sampson, P. Panchekha, T. Mytkowicz, K. S. McKinley, D. Grossman, and L. Ceze. Expressing and verifying probabilistic assertions. In Programming Language Design and Implementation (PLDI), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. J. Sartori and R. Kumar. Branch and data herding: Reducing control and memory divergence for error-tolerant GPU applications. In IEEE Transactions on Multimedia. 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. S. Sidiroglou, O. Laadan, C. Perez, N. Viennot, J. Nieh, and A. D. Keromytis. Assure: automatic software self-healing using rescue points. Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. S. Sidiroglou, S. Misailovic, H. Hoffmann, and M. Rinard. Managing performance vs. accuracy trade-offs with loop perforation. In Foundations of Software Engineering (FSE), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. J. Sloan, D. Kesler, R. Kumar, and A. Rahimi. A numerical optimization-based methodology for application robustification: Transforming applications for error tolerance. In Dependable Systems and Networks (DSN), 2010.Google ScholarGoogle ScholarCross RefCross Ref
  61. J. Sorber, A. Kostadinov, M. Garber, M. Brennan, M. D. Corner, and E. D. Berger. Eon: A language and runtime system for perpetual systems. In Conference on Embedded Networked Sensor Systems (Sensys), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. D. Ungar, D. Kimelman, and S. Adams. Inconsistency robustness for scalability in interactive concurrent-update inmemory molap cubes. Inconsistency Robustness (IR), 2011.Google ScholarGoogle Scholar
  63. J. S. Witte, R. C. Elston, and L. R. Cardon. On the relative sample size required for multiple comparisons. Statistics in medicine, 2000.Google ScholarGoogle Scholar
  64. T. Y. Yeh, P. Faloutsos, M. Ercegovac, S. J. Patel, and G. Reinman. The art of deception: Adaptive precision reduction for area efficient physics acceleration. In International Symposium on Microarchitecture (MICRO), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Z. A. Zhu, S. Misailovic, J. A. Kelner, and M. Rinard. Randomized accuracy-aware program transformations for efficient approximate computations. In Principles of Programming Languages (POPL), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Input responsiveness: using canary inputs to dynamically steer approximation

        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
        • Published in

          cover image ACM Conferences
          PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation
          June 2016
          726 pages
          ISBN:9781450342612
          DOI:10.1145/2908080
          • General Chair:
          • Chandra Krintz,
          • Program Chair:
          • Emery Berger
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 51, Issue 6
            PLDI '16
            June 2016
            726 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/2980983
            • Editor:
            • Andy Gill
            Issue’s Table of Contents

          Copyright © 2016 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 2 June 2016

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate406of2,067submissions,20%

          Upcoming Conference

          PLDI '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader