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 2016 Publication 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.
[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.
[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.
[4]
Apple. Siri. https://www.apple.com/ios/siri/, 2016.
[5]
{Online; accessed 10-April-2016}.
[6]
K. Bache and M. Lichman. UCI machine learning repository. http://archive.ics.uci.edu/ml/, 2016. {Online; accessed 10-April-2016}.
[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.
[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.
[9]
E. D. Berger and B. G. Zorn. Diehard: probabilistic memory safety for unsafe languages. In Programming Language Design and Implementation (PLDI), 2006.
[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.
[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.
[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.
[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.
[14]
S. Chaudhuri, S. Gulwani, R. Lublinerman, and S. Navidpour. Proving programs robust. In Foundations of Software Engineering (FSE), 2011.
[15]
J. Cohen. Statistical power analysis for the behavioral sciences. Lawrence Erlbaum, 1988.
[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.
[17]
O. J. Dunn. Multiple comparisons among means. Journal of the American Statistical Association, 1961.
[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.
[19]
H. Esmaeilzadeh, A. Sampson, L. Ceze, and D. Burger. Neural acceleration for general-purpose approximate programs. In International Symposium on Microarchitecture (MICRO), 2012.
[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.
[21]
Google. Glass. https://www.google.com/glass/ start/, 2016. {Online; accessed 10-April-2016}.
[22]
Google. Google Now. http://www.google.com/ landing/now/, 2016. {Online; accessed 10-April-2016}.
[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.
[24]
B. Grigorian, N. Farahpour, and G. Reinman. Brainiac: Bringing reliable accuracy into neurally-implemented approximate computing. In High Performance Computer Architecture (HPCA), 2015.
[25]
J. R. Hauser. Handling floating-point exceptions in numeric programs. Transactions on Programming Languages and Systems (TOPLAS), 1996.
[26]
F. B. Hildebrand. Introduction to numerical analysis. Courier Corporation, 1987.
[27]
H. Hoffmann, J. Eastep, M. Santambrogio, J. Miller, and A. Agarwal. Application heartbeats for software performance and health. MIT CSAIL Technical Report, 2009.
[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.
[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.
[30]
S. Holm. A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 1979.
[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.
[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.
[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.
[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.
[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.
[36]
Meta. https://www.metavision.com/, 2016.
[37]
{Online; accessed 10-April-2016}.
[38]
Microsoft. Cortana. https://www.microsoft.com/ en-us/mobile/experiences/cortana/, 2016.
[39]
{Online; accessed 10-April-2016}.
[40]
R. G. Miller. Simultaneous Statistical Inference. Springer, 1981.
[41]
S. Misailovic, S. Sidiroglou, H. Hoffmann, and M. Rinard. Quality of service profiling. In International Conference on Software Engineering (ICSE), 2010.
[42]
S. Misailovic, D. M. Roy, and M. C. Rinard. Probabilistically accurate program transformations. In Static Analysis Symposium (SAS). 2011.
[43]
S. Misailovic, D. Kim, and M. Rinard. Parallelizing sequential programs with statistical accuracy tests. Transactions on Embedded Computing Systems (TECS), 2013.
[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.
[45]
C. Poynton. Digital video and HD: Algorithms and Interfaces. Elsevier, 2012.
[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.
[47]
M. Rinard. Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In International Conference on Supercomputing (ICS), 2006.
[48]
M. Rinard. Probabilistic accuracy bounds for perforated programs. In Workshop on Partial Evaluation and Program Manipulation (PEPM), 2011.
[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.
[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.
[51]
S. Russell and P. Norvig. Artificial intelligence: A modern approach. Prentice Hall Press, 1995.
[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.
[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.
[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.
[55]
A. Sampson, J. Nelson, K. Strauss, and L. Ceze. Approximate storage in solid-state memories. In International Symposium on Microarchitecture (MICRO), 2013.
[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.
[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.
[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.
[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.
[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.
[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.
[62]
D. Ungar, D. Kimelman, and S. Adams. Inconsistency robustness for scalability in interactive concurrent-update inmemory molap cubes. Inconsistency Robustness (IR), 2011.
[63]
J. S. Witte, R. C. Elston, and L. R. Cardon. On the relative sample size required for multiple comparisons. Statistics in medicine, 2000.
[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.
[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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 June 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Approximate Computing
  2. Compilers
  3. Performance
  4. Runtime Systems

Qualifiers

  • Research-article

Funding Sources

Conference

PLDI '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)75
  • Downloads (Last 6 weeks)15
Reflects downloads up to 14 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media