Imprecise Computing Yavuz Yetim
Overview Motivation Background Definition and Causes of Imprecision Solution Approaches Discussion of Two Methods Future Work
Motivation Precision = Overkill Applications inherently imprecision tolerant Cosmic Rays Perfect timing, High V dd, ECC, CRC, checker circuits Power Performance
Background Vulnerability Factor [Mukherjee, Weaver, Emer, Reinhardt, Austin, 2003] – Not all bits are important (Architectural) – The important bits are not always important (Timing) Evaluation Method
Background Algorithmic Noise Tolerance [Hegde, Shanbhag, 1999] – Reduce noise in predictable signals DSP Applications
Background Error Resilient System Architecture Inflexible, Suboptimal
Definition of Imprecise Data Stochastic Process – Probabilistic Issues – Time Issues Imprecision Time PDF Google Page Rank Or MIS Memory bit: Reverse time
Causes of Imprecision Unit: Hardware Faults Input: Data From Noisy Channel Operation: Software Bugs Unit InputOutput Operation
Solution Approaches Decrease imprecision by estimation – ANT approach in software Tolerate imprecision by controlling it – ERSA only handles exceptions – Numerical control Input: 10 -3, Output: 10 -2
Software Support Information flow – Hardware-Software – Data-Data Ease of use Efficiency Resource Management
Two Analysis Methods Probabilistic Method Heuristic Method
Probabilistic Method int b, c; imp int a, d, e;. // some code modifying b, c a = b + c;. // some code modifying e. d = a + e; # bc ae d
Heuristic Method Keep performance metric for variables Update all with info from hardware Feedback for adjusting imprecision
Comparison Probabilistic – Probabilistic – Operational Overhead – Both online and offline optimization Heuristic – Definite – Hardware Overhead – Only online optimization
Future Work Combine two methods Better evaluation for different methods Compiler, architecture and hardware support Power and Performance evaluations
Thank you…