Energy versus Output Quality of Non-volatile Writes in Intermittent Computing
Rei Barjami, Antonio Miele, Luca Mottola
TL;DR
This work investigates the energy-quality trade-off of persisting state to STT-MRAM for intermittent, battery-less IoT devices. By tuning the write current, they intentionally introduce write errors to reduce energy spent on NVM writes, and evaluate the impact on output quality across nine benchmarks on seven platforms using a comprehensive error-injection framework. The key finding is that energy savings and QoR degradation are highly program- and platform-specific, with quantization and input size significantly influencing resilience to errors; in some cases, energy reductions exceeding 50% are achievable with negligible QoR loss, while in others, small energy gains cause large QoR drops. The results provide practical guidance for designing approximate intermittent computing systems, highlighting when aggressive NVM write-energy reductions are advantageous and when they risk unusable outputs.
Abstract
We explore how to improve the energy performance of battery-less Internet of Things (IoT) devices at the cost of a reduction in the quality of the output. Battery-less IoT devices are extremely resource-constrained energy-harvesting devices. Due to erratic energy patterns from the ambient, their executions become intermittent; periods of active computation are interleaved by periods of recharging small energy buffers. To cross periods of energy unavailability, a device persists application and system state onto Non-Volatile Memory (NVM) in anticipation of energy failures. We purposely control the energy invested in these operations, representing a major energy overhead, when using Spin-Transfer Torque Magnetic Random-Access Memory (STT-MRAM) as NVM. As a result, we abate the corresponding overhead, yet introduce write errors. Based on 1.9+ trillion experimental data points, we illustrate whether this is a gamble worth taking, when, and where. We measure the energy consumption and quality of output obtained from the execution of nine diverse benchmarks on top of seven different platforms. Our results allow us to draw three key observations: i) the trade-off between energy saving and reduction of output quality is program-specific; ii) the same trade-off is a function of a platform's specific compute efficiency and power figures; and iii) data encoding and input size impact a program's resilience to errors. As a paradigmatic example, we reveal cases where we achieve up to 50% reduction in energy consumption with negligible effects on output quality, as opposed to settings where a minimal energy gain causes drastic drops in output quality.
