Towards Approximate Mobile Computing
Mobile computing is one of the main drivers of innovation, yet the future growth of mobile computing capabilities remains critically threatened by hardware constraints, such as the already extremely dense transistor packing and limited battery capacity. The breakdown of Dennard scaling and stagnating energy storage improvements further amplify these threats. However, the computational burden we put on our mobile devices is not always justified. In a myriad of situations the result of a computation is further manipulated, interpreted, and finally acted upon. This allows for the computation to be relaxed, so that the result is calculated with "good enough", not perfect accuracy. For example, results of a Web search may be perfectly acceptable even if the order of the last few listed items is shuffled, as an end user decides which of the available links to follow. Similarly, the quality of a voice-over-IP call may be acceptable, despite being imperfect, as long as the two involved parties can clearly understand each other. This novel way of thinking about computation is termed Approximate Computing (AC) and promises to reduce resource usage, while ensuring that satisfactory performance is delivered to end-users. AC is already experimented with on various levels of desktop computer architecture, from the hardware level where incorrect adders have been designed to sacrifice result correctness for reduced energy consumption, to compiler-level optimisations that omit certain lines of code to speed up video encoding. AC is yet to be attempted on mobile devices and in this article we examine the potential benefits of mobile AC and present an overview of AC techniques applicable in the mobile domain.
READ FULL TEXT