Code
Perforation
Automatically and
Dynamically Trading Accuracy for Performance and Power
Research Abstract
Many modern computations
(such as video and audio encoders, Monte Carlo
simulations, and machine learning algorithms) are designed to trade off
accuracy in return for increased performance. To date, such computations
typically use ad-hoc, domain-specific techniques developed specifically for the
computation at hand. Our research explores a new general technique, code
perforation, for automatically augmenting existing computations with
the capability of trading off accuracy in return for performance. In contrast
to existing approaches, which typically require the manual development of new
algorithms, our implemented SpeedPress compiler can
automatically apply code perforation to existing computations with no developer
intervention whatsoever. The result is a transformed computation that can
respond almost immediately to a range of increased performance demands while
keeping any resulting output distortion within acceptable user-defined bounds.
We have used SpeedPress to automatically apply code perforation to
applications from the PARSEC benchmark suite. The results show that the
transformed applications can run as much as two to three times faster than the
original applications while distorting the output by less than 10%. Because the
transformed applications can operate successfully at many points in the
performance/accuracy tradeoff space, they can (dynamically and on demand)
navigate the tradeoff space to either maximize performance subject to a given
accuracy constraint, or maximize accuracy subject to a given performance
constraint. In addition we have developed the SpeedGuard
runtime system which uses code perforation to enable applications to
automatically adapt to challenging execution environments such as multicore
machines that suffer core failures or machines that dynamically adjust the
clock speed to reduce power consumption or to protect the machine from
overheating.
Publications
Papers
- Sasa Misailovic, Daniel M. Roy, Martin Rinard.
Probabilistically Accurate Program Transformations.
SAS, September, 2011
(Previous version)
- Steilos Sidiroglou, Sasa
Misailovic, Henry Hoffmann, and Martin Rinard.
Managing Performance vs. Accuracy Trade-offs With Loop Perforation.
ESEC/FSE. September, 2011
- Henry Hoffmann, Stelios
Sidiroglou, Michael Carbin,
Sasa Misailovic, Anant Agarwal, and Martin Rinard.
Dynamic Knobs for Responsive Power-Aware Computing.
ASPLOS. March, 2011 (Previous version)
- Martin Rinard, Henry Hoffmann, Sasa Misailovic, Stelios Sidiroglou. Patterns and
Statistical Analysis for Understanding Reduced Resource Computing.
OOPSLA Onward!.
October, 2010
- Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, Martin Rinard. Quality
of Service Profiling. ICSE.
May, 2010
Technical Reports
Talks
Online Resources
People